| #pragma once |
| |
| #ifndef STUDIOPALETTEVIEWER_H |
| #define STUDIOPALETTEVIEWER_H |
| |
| #include "toonz/studiopalette.h" |
| #include "toonz/tproject.h" |
| |
| #include <QTreeWidget> |
| #include <QSplitter> |
| |
| #undef DVAPI |
| #undef DVVAR |
| #ifdef TOONZQT_EXPORTS |
| #define DVAPI DV_EXPORT_API |
| #define DVVAR DV_EXPORT_VAR |
| #else |
| #define DVAPI DV_IMPORT_API |
| #define DVVAR DV_IMPORT_VAR |
| #endif |
| |
| |
| class QLabel; |
| class TPaletteHandle; |
| class TFrameHandle; |
| class PalettesScanPopup; |
| class TXsheetHandle; |
| class TXshLevelHandle; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class DVAPI StudioPaletteTreeViewer final : public QTreeWidget, |
| public StudioPalette::Listener, |
| public TProjectManager::Listener { |
| Q_OBJECT |
| |
| TPaletteP m_currentPalette; |
| |
| PalettesScanPopup *m_palettesScanPopup; |
| QTreeWidgetItem *m_dropItem; |
| TPaletteHandle *m_levelPaletteHandle; |
| TPaletteHandle *m_studioPaletteHandle; |
| TXsheetHandle *m_xsheetHandle; |
| TXshLevelHandle *m_currentLevelHandle; |
| |
| QIcon m_folderIcon; |
| QIcon m_levelPaletteIcon; |
| QIcon m_studioPaletteIcon; |
| |
| QSet<QTreeWidgetItem *> m_openedItems; |
| |
| public: |
| StudioPaletteTreeViewer(QWidget *parent, TPaletteHandle *studioPaletteHandle, |
| TPaletteHandle *levelPaletteHandle, |
| TXsheetHandle *xsheetHandle, |
| TXshLevelHandle *currentLevelHandle); |
| ~StudioPaletteTreeViewer(); |
| |
| void setLevelPaletteHandle(TPaletteHandle *paletteHandle); |
| TPaletteHandle *getLevelPaletteHandle() const { return m_levelPaletteHandle; } |
| |
| void setCurrentLevelHandle(TXshLevelHandle *currentLevelHandle); |
| TXshLevelHandle *getCurrentLevelHandle() const { |
| return m_currentLevelHandle; |
| } |
| |
| void setStdPaletteHandle(TPaletteHandle *stdPaletteHandle); |
| TPaletteHandle *getStdPaletteHandle() const { return m_studioPaletteHandle; } |
| |
| |
| void onStudioPaletteTreeChange() override { refresh(); } |
| |
| void onStudioPaletteMove(const TFilePath &dstPath, |
| const TFilePath &srcPath) override { |
| refresh(); |
| } |
| |
| void onStudioPaletteChange(const TFilePath &palette) override { refresh(); } |
| |
| |
| void onProjectSwitched() override { resetProjectPaletteFolder(); } |
| |
| void onProjectChanged() override { resetProjectPaletteFolder(); } |
| |
| TFilePath getCurrentItemPath() { return getItemPath(currentItem()); } |
| |
| protected slots: |
| |
| void refresh(); |
| |
| |
| |
| |
| |
| void refreshItem(QTreeWidgetItem *); |
| |
| |
| void resetProjectPaletteFolder(); |
| |
| void onItemClicked(QTreeWidgetItem *item, int column); |
| |
| void onItemChanged(QTreeWidgetItem *item, int column); |
| |
| void onCurrentItemChanged(QTreeWidgetItem *current, |
| QTreeWidgetItem *previous); |
| |
| void onTreeItemExpanded(QTreeWidgetItem *); |
| |
| void onRefreshTreeShortcutTriggered(); |
| |
| public slots: |
| |
| void addNewPalette(); |
| |
| void addNewFolder(); |
| |
| void deleteItems(); |
| |
| void searchForPalette(); |
| |
| void loadInCurrentPalette(); |
| void loadInCurrentPaletteAndAdaptLevel(); |
| |
| void replaceCurrentPalette(); |
| |
| void mergeToCurrentPalette(); |
| |
| void convertToStudioPalette(); |
| |
| protected: |
| |
| |
| void deleteItem(QTreeWidgetItem *item); |
| |
| |
| QTreeWidgetItem *createRootItem(const TFilePath path); |
| |
| |
| bool isRootItem(QTreeWidgetItem *item); |
| |
| |
| QTreeWidgetItem *createItem(const TFilePath path); |
| |
| |
| TFilePath getItemPath(QTreeWidgetItem *); |
| |
| |
| TFilePath getCurrentFolderPath(); |
| |
| QTreeWidgetItem *getItem(const TFilePath path); |
| |
| |
| QTreeWidgetItem *getFolderItem(QTreeWidgetItem *parent, const TFilePath path); |
| |
| void resetDropItem(); |
| |
| void paintEvent(QPaintEvent *event) override; |
| |
| void contextMenuEvent(QContextMenuEvent *event) override; |
| |
| |
| void createMenuAction(QMenu &menu, const char *id, QString name, |
| const char *slot); |
| |
| void mouseMoveEvent(QMouseEvent *event) override; |
| |
| void startDragDrop(); |
| |
| |
| |
| void dragEnterEvent(QDragEnterEvent *event) override; |
| |
| void dragMoveEvent(QDragMoveEvent *event) override; |
| |
| |
| void dropEvent(QDropEvent *event) override; |
| |
| void dragLeaveEvent(QDragLeaveEvent *event) override; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class DVAPI StudioPaletteViewer final : public QSplitter { |
| Q_OBJECT |
| |
| StudioPaletteTreeViewer *m_studioPaletteTreeViewer; |
| |
| public: |
| StudioPaletteViewer(QWidget *parent, TPaletteHandle *studioPaletteHandle, |
| TPaletteHandle *levelPaletteHandle, |
| TFrameHandle *frameHandle, TXsheetHandle *xsheetHandle, |
| TXshLevelHandle *currentLevelHandle); |
| ~StudioPaletteViewer(); |
| |
| |
| TFilePath getCurrentItemPath(); |
| }; |
| |
| #endif |