on xenial help sign in
Rename plugin to ScreenGrabber
86331aeAlberto Aguirre
debian/unity8-private.install+1−1
@@ -5,7 +5,7 @@ usr/lib/*/unity8/qml/LightDM
5usr/lib/*/unity8/qml/Lights
5usr/lib/*/unity8/qml/Lights
6usr/lib/*/unity8/qml/Powerd
6usr/lib/*/unity8/qml/Powerd
7usr/lib/*/unity8/qml/SessionBroadcast
7usr/lib/*/unity8/qml/SessionBroadcast
8−usr/lib/*/unity8/qml/Screenshotter
8+usr/lib/*/unity8/qml/ScreenGrabber
9usr/lib/*/unity8/qml/Ubuntu
9usr/lib/*/unity8/qml/Ubuntu
10usr/lib/*/unity8/qml/Unity
10usr/lib/*/unity8/qml/Unity
11usr/lib/*/unity8/qml/Utils
11usr/lib/*/unity8/qml/Utils
plugins/CMakeLists.txt+1−1
@@ -18,7 +18,7 @@ add_subdirectory(Lights)
18add_subdirectory(Dash)
18add_subdirectory(Dash)
19add_subdirectory(Powerd)
19add_subdirectory(Powerd)
20add_subdirectory(SessionBroadcast)
20add_subdirectory(SessionBroadcast)
21−add_subdirectory(Screenshotter)
21+add_subdirectory(ScreenGrabber)
22add_subdirectory(Ubuntu)
22add_subdirectory(Ubuntu)
23add_subdirectory(Unity)
23add_subdirectory(Unity)
24add_subdirectory(Utils)
24add_subdirectory(Utils)
plugins/ScreenGrabber/CMakeLists.txtnew file+13
@@ -0,0 +1,13 @@
1+include_directories(
2+ ${CMAKE_CURRENT_BINARY_DIR}
3+)
4+
5+set(SCREENGRABBERSOURCES
6+ screengrabber.cpp
7+ plugin.cpp
8+)
9+
10+add_library(ScreenGrabber-qml MODULE ${SCREENGRABBERSOURCES})
11+qt5_use_modules(ScreenGrabber-qml Qml Gui Quick)
12+
13+add_unity8_plugin(ScreenGrabber 0.1 ScreenGrabber TARGETS ScreenGrabber-qml)
plugins/Screenshotter/Screenshotter.qmltypes → plugins/ScreenGrabber/ScreenGrabber.qmltypesrenamed+4−4
@@ -4,14 +4,14 @@ import QtQuick.tooling 1.1
4// It is used for QML tooling purposes only.
4// It is used for QML tooling purposes only.
5//
5//
6// This file was auto-generated by:
6// This file was auto-generated by:
7−// 'qmlplugindump -nonrelocatable Screenshotter 0.1 plugins'
7+// 'qmlplugindump -nonrelocatable ScreenGrabber 0.1 plugins'
8
8
9Module {
9Module {
10 Component {
10 Component {
11− name: "ScreenShotter"
11+ name: "ScreenGrabber"
12 prototype: "QObject"
12 prototype: "QObject"
13− exports: ["Screenshotter/Screenshotter 0.1"]
13+ exports: ["ScreenGrabber/ScreenGrabber 0.1"]
14 exportMetaObjectRevisions: [0]
14 exportMetaObjectRevisions: [0]
15− Method { name: "takeScreenshot" }
15+ Method { name: "captureAndSave" }
16 }
16 }
17}
17}
plugins/Screenshotter/plugin.cpp → plugins/ScreenGrabber/plugin.cpprenamed+4−4
@@ -17,12 +17,12 @@
17 */
17 */
18
18
19#include "plugin.h"
19#include "plugin.h"
20−#include "screenshotter.h"
20+#include "screengrabber.h"
21
21
22#include <QtQml/qqml.h>
22#include <QtQml/qqml.h>
23
23
24−void ScreenshotterPlugin::registerTypes(const char *uri)
24+void ScreenGrabberPlugin::registerTypes(const char *uri)
25{
25{
26− Q_ASSERT(uri == QLatin1String("Screenshotter"));
26+ Q_ASSERT(uri == QLatin1String("ScreenGrabber"));
27− qmlRegisterType<ScreenShotter>(uri, 0, 1, "Screenshotter");
27+ qmlRegisterType<ScreenGrabber>(uri, 0, 1, "ScreenGrabber");
28}
28}
plugins/Screenshotter/plugin.h → plugins/ScreenGrabber/plugin.hrenamed+4−4
@@ -16,12 +16,12 @@
16 * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
16 * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
17 */
17 */
18
18
19−#ifndef SCREENSHOTTER_PLUGIN_H
19+#ifndef SCREENGRABBER_PLUGIN_H
20−#define SCREENSHOTTER_PLUGIN_H
20+#define SCREENGRABBER_PLUGIN_H
21
21
22#include <QtQml/QQmlExtensionPlugin>
22#include <QtQml/QQmlExtensionPlugin>
23
23
24−class ScreenshotterPlugin : public QQmlExtensionPlugin
24+class ScreenGrabberPlugin : public QQmlExtensionPlugin
25{
25{
26 Q_OBJECT
26 Q_OBJECT
27 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
@@ -30,4 +30,4 @@ public:
30 void registerTypes(const char *uri);
30 void registerTypes(const char *uri);
31};
31};
32
32
33−#endif // SCREENSHOTTER_PLUGIN_H
33+#endif // SCREENGRABBER_PLUGIN_H
plugins/ScreenGrabber/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module ScreenGrabber
2+plugin ScreenGrabber-qml
3+typeinfo ScreenGrabber.qmltypes
plugins/Screenshotter/screenshotter.cpp → plugins/ScreenGrabber/screengrabber.cpprenamed+15−9
@@ -16,17 +16,24 @@
16 * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
16 * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
17 */
17 */
18
18
19−#include "screenshotter.h"
19+#include "screengrabber.h"
20
20
21#include <QDir>
21#include <QDir>
22#include <QDateTime>
22#include <QDateTime>
23#include <QStandardPaths>
23#include <QStandardPaths>
24+#include <QtGui/QImage>
24#include <QtGui/QGuiApplication>
25#include <QtGui/QGuiApplication>
25#include <QtQuick/QQuickWindow>
26#include <QtQuick/QQuickWindow>
26
27
27#include <QDebug>
28#include <QDebug>
28
29
29−ScreenShotter::ScreenShotter(QObject *parent)
30+void saveScreenshot(QImage screenshot, QString filename, QString format, int quality)
31+{
32+ if (!screenshot.save(filename, format.toLatin1().data(), quality))
33+ qWarning() << "ScreenShotter: failed to save snapshot!";
34+}
35+
36+ScreenGrabber::ScreenGrabber(QObject *parent)
30 : QObject(parent),
37 : QObject(parent),
31 screenshotQuality(90)
38 screenshotQuality(90)
32{
39{
@@ -44,7 +51,7 @@ ScreenShotter::ScreenShotter(QObject *parent)
44 }
51 }
45}
52}
46
53
47−void ScreenShotter::takeScreenshot()
54+void ScreenGrabber::captureAndSave()
48{
55{
49 if (fileNamePrefix.isEmpty())
56 if (fileNamePrefix.isEmpty())
50 {
57 {
@@ -66,12 +73,11 @@ void ScreenShotter::takeScreenshot()
66 return;
73 return;
67 }
74 }
68
75
69− QImage snapshot = main_window->grabWindow();
76+ QImage screenshot = main_window->grabWindow();
70− if (!snapshot.save(makeFileName(), getFormat().toLatin1().data(), screenshotQuality))
77+ saveScreenshot(screenshot, makeFileName(), getFormat(), screenshotQuality);
71− qWarning() << "ScreenShotter: failed to save snapshot!";
72}
78}
73
79
74−QString ScreenShotter::makeFileName()
80+QString ScreenGrabber::makeFileName()
75{
81{
76 QString fileName(fileNamePrefix);
82 QString fileName(fileNamePrefix);
77 fileName.append(QDateTime::currentDateTime().toString("yyyymmdd_hhmmsszzz"));
83 fileName.append(QDateTime::currentDateTime().toString("yyyymmdd_hhmmsszzz"));
@@ -80,8 +86,8 @@ QString ScreenShotter::makeFileName()
80 return fileName;
86 return fileName;
81}
87}
82
88
83−QString ScreenShotter::getFormat()
89+QString ScreenGrabber::getFormat()
84{
90{
85− //TODO: Maybe this could be configurable
91+ //TODO: This should be configurable (perhaps through gsettings?)
86 return "jpg";
92 return "jpg";
87}
93}
plugins/Screenshotter/screenshotter.h → plugins/ScreenGrabber/screengrabber.hrenamed+3−3
@@ -22,15 +22,15 @@
22#include <QObject>
22#include <QObject>
23#include <QString>
23#include <QString>
24
24
25−class ScreenShotter: public QObject
25+class ScreenGrabber: public QObject
26{
26{
27 Q_OBJECT
27 Q_OBJECT
28
28
29public:
29public:
30− explicit ScreenShotter(QObject *parent = 0);
30+ explicit ScreenGrabber(QObject *parent = 0);
31
31
32public Q_SLOTS:
32public Q_SLOTS:
33− void takeScreenshot();
33+ void captureAndSave();
34
34
35private:
35private:
36 QString makeFileName();
36 QString makeFileName();
plugins/Screenshotter/CMakeLists.txtdeleted−13
@@ -1,13 +0,0 @@
1−include_directories(
2− ${CMAKE_CURRENT_BINARY_DIR}
3−)
4−
5−set(SCREENSHOTTERSOURCES
6− screenshotter.cpp
7− plugin.cpp
8−)
9−
10−add_library(Screenshotter-qml MODULE ${SCREENSHOTTERSOURCES})
11−qt5_use_modules(Screenshotter-qml Qml Gui Quick)
12−
13−add_unity8_plugin(Screenshotter 0.1 Screenshotter TARGETS Screenshotter-qml)
plugins/Screenshotter/qmldirdeleted−3
@@ -1,3 +0,0 @@
1−module Screenshotter
2−plugin Screenshotter-qml
3−typeinfo Screenshotter.qmltypes