File indexing completed on 2024-05-26 04:32:47
0001 /* 0002 * SPDX-FileCopyrightText: 2017 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef TOUCHDOCKER_DOCK_H 0008 #define TOUCHDOCKER_DOCK_H 0009 0010 #include <QDockWidget> 0011 #include <QIcon> 0012 #include <KoCanvasObserverBase.h> 0013 #include <QPointer> 0014 0015 #include <kis_canvas2.h> 0016 0017 class KoDialog; 0018 class QQuickWidget; 0019 0020 class TouchDockerDock : public QDockWidget, public KoCanvasObserverBase { 0021 Q_OBJECT 0022 Q_PROPERTY(bool allowClose READ allowClose WRITE setAllowClose) 0023 Q_PROPERTY(QString currentSketchPage READ currentSketchPage WRITE setCurrentSketchPage NOTIFY currentSketchPageChanged) 0024 Q_PROPERTY(QObject* sketchKisView READ sketchKisView WRITE setSketchKisView NOTIFY sketchKisViewChanged) 0025 0026 public: 0027 TouchDockerDock(); 0028 ~TouchDockerDock() override; 0029 QString observerName() override { return "TouchDockerDock"; } 0030 void setCanvas(KoCanvasBase *canvas) override; 0031 void unsetCanvas() override; 0032 0033 bool allowClose() const; 0034 void setAllowClose(bool allow); 0035 0036 QString currentSketchPage() const; 0037 void setCurrentSketchPage(QString newPage); 0038 0039 QObject *sketchKisView() const; 0040 void setSketchKisView(QObject *newView); 0041 0042 void closeEvent(QCloseEvent *event) override; 0043 0044 Q_SIGNALS: 0045 void closeRequested(); 0046 void currentSketchPageChanged(); 0047 void sketchKisViewChanged(); 0048 0049 public Q_SLOTS: 0050 0051 void slotButtonPressed(const QString &id); 0052 void slotOpenImage(QString path); 0053 void slotSaveAs(QString path, QString mime); 0054 0055 void hideFileOpenDialog(); 0056 void hideFileSaveAsDialog(); 0057 0058 QString imageForButton(QString id); 0059 QString iconForButton(QString id, bool useDarkIcons); 0060 QString textForButton(QString id); 0061 QAction *action(QString id) const; 0062 0063 private: 0064 0065 void showFileOpenDialog(); 0066 void showFileSaveAsDialog(); 0067 void changeEvent(QEvent* event) override; 0068 0069 void tabletEvent(QTabletEvent *event) override; 0070 0071 KoDialog *createDialog(const QString qml); 0072 0073 QPointer<KisCanvas2> m_canvas; 0074 QQuickWidget *m_quickWidget {0}; 0075 0076 class Private; 0077 const QScopedPointer<Private> d; 0078 0079 }; 0080 0081 0082 #endif 0083