on xenial help sign in
rotate screenshots according to the orientation
commitc9777f7486a1bfeaccba0478c12c748902da3b52 authorLukáš Tinkl <lukas.tinkl@canonical.com> dateMon 12 Oct 2015, 12:25 (11 years ago) parent08f6f81
3 files changed+7−4
plugins/ScreenGrabber/screengrabber.cpp+4−2 plugins/ScreenGrabber/screengrabber.h+1−1 qml/Components/ScreenGrabber.qml+2−1
plugins/ScreenGrabber/screengrabber.cpp+4−2
@@ -60,8 +60,10 @@ ScreenGrabber::ScreenGrabber(QObject *parent)
6060 }
6161}
6262
63−void ScreenGrabber::captureAndSave()
63+void ScreenGrabber::captureAndSave(int angle)
6464{
65+ qDebug() << Q_FUNC_INFO << angle;
66+
6567 if (fileNamePrefix.isEmpty())
6668 {
6769 qWarning() << "ScreenShotter: no directory to save screenshot";
@@ -82,7 +84,7 @@ void ScreenGrabber::captureAndSave()
8284 return;
8385 }
8486
85− const QImage screenshot = main_window->grabWindow();
87+ const QImage screenshot = main_window->grabWindow().transformed(QTransform().rotate(angle));
8688 const QString filename = makeFileName();
8789 qDebug() << "Saving screenshot to" << filename;
8890 auto saveOp = QtConcurrent::run(saveScreenshot, screenshot, filename, getFormat(), screenshotQuality);
plugins/ScreenGrabber/screengrabber.h+1−1
@@ -29,7 +29,7 @@ public:
2929 ~ScreenGrabber() = default;
3030
3131public Q_SLOTS:
32− void captureAndSave();
32+ void captureAndSave(int angle = 0);
3333
3434Q_SIGNALS:
3535 void screenshotSaved(const QString &filename);
qml/Components/ScreenGrabber.qml+2−1
@@ -18,6 +18,7 @@ import QtQuick 2.0
1818import QtMultimedia 5.0
1919import ScreenGrabber 0.1
2020import GlobalShortcut 1.0
21+import QtQuick.Window 2.2
2122
2223Rectangle {
2324 id: root
@@ -67,7 +68,7 @@ Rectangle {
6768 to: 0.0
6869 onStopped: {
6970 if (visible) {
70− screenGrabber.captureAndSave();
71+ screenGrabber.captureAndSave(Screen.angleBetween(Screen.orientation, Screen.primaryOrientation));
7172 visible = false;
7273 }
7374 }