Changeset View
Changeset View
Standalone View
Standalone View
src/Gui/KSMainWindow.h
Show All 24 Lines | |||||
25 | #include <QMenu> | 25 | #include <QMenu> | ||
26 | #include <QFrame> | 26 | #include <QFrame> | ||
27 | #include <QToolButton> | 27 | #include <QToolButton> | ||
28 | #include <QDialogButtonBox> | 28 | #include <QDialogButtonBox> | ||
29 | 29 | | |||
30 | #include <KMessageWidget> | 30 | #include <KMessageWidget> | ||
31 | #include <KNS3/KMoreToolsMenuFactory> | 31 | #include <KNS3/KMoreToolsMenuFactory> | ||
32 | 32 | | |||
33 | #include "SpectacleCommon.h" | 33 | #include "BackendInterfaces/ScreenshotInterface.h" | ||
34 | #include "SpectacleConfig.h" | 34 | #include "SpectacleConfig.h" | ||
35 | #include "KSWidget.h" | 35 | #include "KSWidget.h" | ||
36 | #include "ExportMenu.h" | 36 | #include "ExportMenu.h" | ||
37 | #include "Platforms/Platform.h" | | |||
38 | 37 | | |||
39 | #include <memory> | 38 | #include <memory> | ||
40 | 39 | | |||
41 | class KSMainWindow: public QDialog | 40 | class KSMainWindow: public QDialog | ||
42 | { | 41 | { | ||
43 | Q_OBJECT | 42 | Q_OBJECT | ||
44 | 43 | | |||
45 | public: | 44 | public: | ||
46 | 45 | | |||
47 | explicit KSMainWindow(const Platform::GrabModes &theGrabModes, const Platform::ShutterModes &theShutterModes, QWidget *parent = nullptr); | 46 | explicit KSMainWindow(const CaptureModes &theCaptureModes, const ShutterModes &theShutterModes, QWidget *parent = nullptr); | ||
48 | virtual ~KSMainWindow() = default; | 47 | virtual ~KSMainWindow() = default; | ||
49 | 48 | | |||
50 | private: | 49 | private: | ||
51 | 50 | | |||
52 | enum class QuitBehavior { | 51 | enum class QuitBehavior { | ||
53 | QuitImmediately, | 52 | QuitImmediately, | ||
54 | QuitExternally | 53 | QuitExternally | ||
55 | }; | 54 | }; | ||
56 | void quit(const QuitBehavior quitBehavior = QuitBehavior::QuitImmediately); | 55 | void quit(const QuitBehavior quitBehavior = QuitBehavior::QuitImmediately); | ||
57 | 56 | | |||
58 | enum class MessageDuration { | 57 | enum class MessageDuration { | ||
59 | AutoHide, | 58 | AutoHide, | ||
60 | Persistent | 59 | Persistent | ||
61 | }; | 60 | }; | ||
62 | void showInlineMessage(const QString& message, | 61 | void showInlineMessage(const QString& message, | ||
63 | const KMessageWidget::MessageType messageType, | 62 | const KMessageWidget::MessageType messageType, | ||
64 | const MessageDuration messageDuration = MessageDuration::AutoHide, | 63 | const MessageDuration messageDuration = MessageDuration::AutoHide, | ||
65 | const QList<QAction*>& actions = {}); | 64 | const QList<QAction*>& actions = {}); | ||
66 | 65 | | |||
67 | private Q_SLOTS: | 66 | private Q_SLOTS: | ||
68 | 67 | | |||
69 | void captureScreenshot(Spectacle::CaptureMode theCaptureMode, int theTimeout, bool theIncludePointer, bool theIncludeDecorations); | 68 | void captureScreenshot(CaptureMode theCaptureMode, int theTimeout, bool theIncludePointer, bool theIncludeDecorations); | ||
70 | void showPrintDialog(); | 69 | void showPrintDialog(); | ||
71 | void openScreenshotsFolder(); | 70 | void openScreenshotsFolder(); | ||
72 | void showPreferencesDialog(); | 71 | void showPreferencesDialog(); | ||
73 | void showImageSharedFeedback(bool error, const QString &message); | 72 | void showImageSharedFeedback(bool error, const QString &message); | ||
74 | void sendToClipboard(); | 73 | void sendToClipboard(); | ||
75 | void init(); | 74 | void init(); | ||
76 | void setDefaultSaveAction(); | 75 | void setDefaultSaveAction(); | ||
77 | void save(); | 76 | void save(); | ||
78 | void saveAs(); | 77 | void saveAs(); | ||
79 | int windowWidth(const QPixmap &pixmap) const; | 78 | int windowWidth(const QPixmap &pixmap) const; | ||
80 | void restoreWindowTitle(); | 79 | void restoreWindowTitle(); | ||
81 | 80 | | |||
82 | public Q_SLOTS: | 81 | public Q_SLOTS: | ||
83 | 82 | | |||
83 | void setCaptureModes(const CaptureModes &theCaptureModes); | ||||
84 | void setShutterModes(const ShutterModes &theShutterModes); | ||||
85 | | ||||
84 | void setScreenshotAndShow(const QPixmap &pixmap); | 86 | void setScreenshotAndShow(const QPixmap &pixmap); | ||
85 | void imageSaved(const QUrl &location); | 87 | void imageSaved(const QUrl &location); | ||
86 | 88 | | |||
87 | Q_SIGNALS: | 89 | Q_SIGNALS: | ||
88 | 90 | | |||
89 | void newScreenshotRequest(Spectacle::CaptureMode theCaptureMode, int theTimeout, bool theIncludePointer, bool theIncludeDecorations); | 91 | void newScreenshotRequest(CaptureMode theCaptureMode, int theTimeout, bool theIncludePointer, bool theIncludeDecorations); | ||
90 | void dragAndDropRequest(); | 92 | void dragAndDropRequest(); | ||
91 | 93 | | |||
92 | protected: | 94 | protected: | ||
93 | 95 | | |||
94 | void moveEvent(QMoveEvent *event) override; | 96 | void moveEvent(QMoveEvent *event) override; | ||
95 | 97 | | |||
96 | private: | 98 | private: | ||
97 | 99 | | |||
98 | KSWidget *mKSWidget; | 100 | KSWidget *mKSWidget; | ||
99 | QFrame *mDivider; | 101 | QFrame *mDivider; | ||
100 | QDialogButtonBox *mDialogButtonBox; | 102 | QDialogButtonBox *mDialogButtonBox; | ||
101 | QToolButton *mConfigureButton; | 103 | QToolButton *mConfigureButton; | ||
102 | QPushButton *mToolsButton; | 104 | QPushButton *mToolsButton; | ||
103 | QPushButton *mSendToButton; | 105 | QPushButton *mSendToButton; | ||
104 | QToolButton *mClipboardButton; | 106 | QToolButton *mClipboardButton; | ||
105 | QToolButton *mSaveButton; | 107 | QToolButton *mSaveButton; | ||
106 | QMenu *mSaveMenu; | 108 | QMenu *mSaveMenu; | ||
107 | QAction *mSaveAsAction; | 109 | QAction *mSaveAsAction; | ||
108 | QAction *mSaveAction; | 110 | QAction *mSaveAction; | ||
109 | KMessageWidget *mMessageWidget; | 111 | KMessageWidget *mMessageWidget; | ||
110 | QMenu *mToolsMenu; | 112 | QMenu *mToolsMenu; | ||
111 | QMenu *mScreenRecorderToolsMenu; | 113 | QMenu *mScreenRecorderToolsMenu; | ||
112 | std::unique_ptr<KMoreToolsMenuFactory> mScreenrecorderToolsMenuFactory; | 114 | std::unique_ptr<KMoreToolsMenuFactory> mScreenrecorderToolsMenuFactory; | ||
113 | ExportMenu *mExportMenu; | 115 | ExportMenu *mExportMenu; | ||
114 | Platform::ShutterModes mShutterModes; | 116 | ShutterModes mShutterModes; | ||
115 | QTimer *mHideMessageWidgetTimer; | 117 | QTimer *mHideMessageWidgetTimer; | ||
116 | }; | 118 | }; |