File indexing completed on 2024-06-16 04:16:16
0001 /* 0002 * SPDX-FileCopyrightText: 2013 Sven Langkamp <sven.langkamp@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 0008 #ifndef PALETTEDOCKER_DOCK_H 0009 #define PALETTEDOCKER_DOCK_H 0010 0011 #include <QDockWidget> 0012 #include <QModelIndex> 0013 #include <QScopedPointer> 0014 #include <QVector> 0015 #include <QPointer> 0016 #include <QPair> 0017 #include <QAction> 0018 #include <QMenu> 0019 0020 #include <KoResourceServer.h> 0021 #include <KoResourceServer.h> 0022 #include <resources/KoColorSet.h> 0023 0024 #include <kis_canvas2.h> 0025 #include <kis_mainwindow_observer.h> 0026 #include <KisView.h> 0027 #include <kis_workspace_resource.h> 0028 #include <kis_signal_auto_connection.h> 0029 0030 0031 class KisViewManager; 0032 class KisCanvasResourceProvider; 0033 class KisPaletteChooser; 0034 class KisPaletteModel; 0035 0036 class KisPaletteEditor; 0037 class Ui_WdgPaletteDock; 0038 0039 class PaletteDockerDock : public QDockWidget, public KisMainwindowObserver, public KoResourceServerObserver<KoColorSet> 0040 { 0041 Q_OBJECT 0042 public: 0043 PaletteDockerDock(); 0044 ~PaletteDockerDock() override; 0045 0046 public: // QDockWidget 0047 void setCanvas(KoCanvasBase *canvas) override; 0048 void unsetCanvas() override; 0049 0050 public: // KisMainWindowObserver 0051 void setViewManager(KisViewManager* kisview) override; 0052 0053 public: //KoResourceServerObserver 0054 void unsetResourceServer() override; 0055 void resourceAdded(QSharedPointer<KoColorSet> resource) override; 0056 void removingResource(QSharedPointer<KoColorSet> resource) override; 0057 void resourceChanged(QSharedPointer<KoColorSet> resource) override; 0058 0059 private Q_SLOTS: 0060 void slotContextMenu(const QModelIndex &); 0061 0062 void slotAddPalette(); 0063 void slotRemovePalette(KoColorSetSP ); 0064 void slotImportPalette(); 0065 void slotExportPalette(KoColorSetSP ); 0066 0067 void slotAddColor(); 0068 void slotRemoveColor(); 0069 void slotEditEntry(); 0070 void slotEditPalette(); 0071 void slotSavePalette(); 0072 0073 void slotPaletteIndexSelected(const QModelIndex &index); 0074 void slotPaletteIndexClicked(const QModelIndex &index); 0075 void slotPaletteIndexDoubleClicked(const QModelIndex &index); 0076 void slotNameListSelection(const KoColor &color); 0077 void slotSetColorSet(KoColorSetSP colorSet); 0078 0079 void slotFGColorResourceChanged(const KoColor& color); 0080 0081 void slotStoragesChanged(const QString &location); 0082 0083 void slotUpdateLblPaletteName(); 0084 0085 void slotLockPalette(bool locked); 0086 0087 void setUndoToolTip(const QString &text); 0088 void setRedoToolTip(const QString &text); 0089 0090 void undo(); 0091 void redo(); 0092 0093 private: 0094 void setEntryByForeground(const QModelIndex &index); 0095 void setFGColorByPalette(const KisSwatch &entry); 0096 0097 0098 private /* member variables */: 0099 QScopedPointer<Ui_WdgPaletteDock> m_ui; 0100 KisPaletteModel *m_model; 0101 KisPaletteChooser *m_paletteChooser; 0102 0103 QPointer<KisViewManager> m_view; 0104 KisCanvasResourceProvider *m_resourceProvider; 0105 0106 KoResourceServer<KoColorSet> * const m_rServer; 0107 0108 QPointer<KisDocument> m_activeDocument; 0109 QSharedPointer<KoColorSet> m_currentColorSet; 0110 QScopedPointer<KisPaletteEditor> m_paletteEditor; 0111 0112 QScopedPointer<QAction> m_actAdd; 0113 QScopedPointer<QAction> m_actRemove; 0114 QScopedPointer<QAction> m_actModify; 0115 QScopedPointer<QAction> m_actEditPalette; 0116 QScopedPointer<QAction> m_actSavePalette; 0117 QMenu m_viewContextMenu; 0118 0119 bool m_colorSelfUpdate; 0120 }; 0121 0122 0123 #endif