2016-05-17 03:04:11 +12:00
|
|
|
#pragma once
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
#ifndef PALETTEVIEWER_H
|
|
|
|
#define PALETTEVIEWER_H
|
|
|
|
|
|
|
|
#include "paletteviewergui.h"
|
|
|
|
#include "toonz/tpalettehandle.h"
|
2021-09-17 02:48:32 +12:00
|
|
|
#include "toonz/tapplication.h"
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
#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
|
|
|
|
|
|
|
|
// forward declaration
|
|
|
|
class QScrollArea;
|
|
|
|
class QToolBar;
|
|
|
|
class PaletteKeyframeNavigator;
|
|
|
|
class TFrameHandle;
|
|
|
|
|
|
|
|
using namespace PaletteViewerGUI;
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
class DVAPI ChangeStyleCommand {
|
2016-03-19 06:57:51 +13:00
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
ChangeStyleCommand() {}
|
|
|
|
virtual ~ChangeStyleCommand() {}
|
|
|
|
virtual bool onStyleChanged() = 0;
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
// DAFARE: non mi piace, forse e' meglio un comando esterno!!
|
2016-03-19 06:57:51 +13:00
|
|
|
class TXsheetHandle;
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
// PaletteViewer
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2016-06-29 18:17:12 +12:00
|
|
|
class DVAPI PaletteViewer final : public QFrame {
|
2016-06-15 18:43:10 +12:00
|
|
|
Q_OBJECT
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
PaletteViewer(QWidget *parent = 0, PaletteViewType viewType = LEVEL_PALETTE,
|
|
|
|
bool hasSaveToolBar = true, bool hasPageCommand = true,
|
|
|
|
bool hasPasteColors = true);
|
|
|
|
~PaletteViewer();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
const TPaletteHandle *getPaletteHandle() const { return m_paletteHandle; }
|
|
|
|
void setPaletteHandle(TPaletteHandle *paletteHandle);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
const TFrameHandle *getFrameHandle() const { return m_frameHandle; }
|
|
|
|
void setFrameHandle(TFrameHandle *frameHandle);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
const TXsheetHandle *getXsheetHandle() const { return m_xsheetHandle; }
|
|
|
|
void setXsheetHandle(TXsheetHandle *xsheetHandle);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
// for clearing level cache after "paste style" command called from style
|
|
|
|
// selection
|
|
|
|
void setLevelHandle(TXshLevelHandle *levelHandle);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TPalette *getPalette();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void setChangeStyleCommand(ChangeStyleCommand *); // gets ownership
|
|
|
|
ChangeStyleCommand *getChangeStyleCommand() const {
|
|
|
|
return m_changeStyleCommand;
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
int getViewMode() const { return m_pageViewer->getViewMode(); }
|
|
|
|
void setViewMode(int mode) {
|
|
|
|
m_pageViewer->setViewMode((PaletteViewerGUI::PageViewer::ViewMode)mode);
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void updateView();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void enableSaveAction(bool enable);
|
2020-10-22 04:01:28 +13:00
|
|
|
bool getIsFrozen() { return m_frozen; }
|
|
|
|
void setIsFrozen(bool frozen);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2021-09-17 02:48:32 +12:00
|
|
|
void setApplication(TApplication *app) { m_app = app; }
|
|
|
|
TApplication *getApplication() { return m_app; }
|
|
|
|
|
|
|
|
int geCurrentPageIndex() { return m_currentIndexPage; }
|
|
|
|
|
2016-03-19 06:57:51 +13:00
|
|
|
protected:
|
2016-06-15 18:43:10 +12:00
|
|
|
TPaletteHandle *m_paletteHandle;
|
|
|
|
TFrameHandle *m_frameHandle;
|
|
|
|
TXsheetHandle *m_xsheetHandle;
|
2020-01-22 16:14:07 +13:00
|
|
|
TXshLevelHandle *m_levelHandle;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
QScrollArea *m_pageViewerScrollArea;
|
|
|
|
PaletteViewerGUI::PageViewer *m_pageViewer;
|
2021-09-17 02:48:32 +12:00
|
|
|
int m_currentIndexPage;
|
2016-06-15 18:43:10 +12:00
|
|
|
TabBarContainter *m_tabBarContainer;
|
|
|
|
PaletteTabBar *m_pagesBar;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
QToolBar *m_paletteToolBar;
|
|
|
|
QToolBar *m_savePaletteToolBar;
|
2020-06-12 18:11:25 +12:00
|
|
|
QToolBar *m_newPageToolbar;
|
2020-05-24 20:37:30 +12:00
|
|
|
QMenu *m_viewMode;
|
2020-08-20 02:56:24 +12:00
|
|
|
QAction *m_showStyleIndex;
|
2016-06-15 18:43:10 +12:00
|
|
|
int m_indexPageToDelete;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
PaletteViewType m_viewType;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
PaletteKeyframeNavigator *m_keyFrameButton;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
ChangeStyleCommand *m_changeStyleCommand;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
bool m_hasSavePaletteToolbar;
|
|
|
|
bool m_hasPageCommand;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
bool m_isSaveActionEnabled;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
QAction *m_lockPaletteAction;
|
|
|
|
QToolButton *m_lockPaletteToolButton;
|
2020-10-22 04:01:28 +13:00
|
|
|
QToolButton *m_freezePaletteToolButton;
|
|
|
|
bool m_frozen = false;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2021-09-17 02:48:32 +12:00
|
|
|
TApplication *m_app;
|
|
|
|
|
2016-03-19 06:57:51 +13:00
|
|
|
protected:
|
2016-06-15 18:43:10 +12:00
|
|
|
void createTabBar();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void createToolBar() {
|
|
|
|
createPaletteToolBar();
|
|
|
|
createSavePaletteToolBar();
|
|
|
|
}
|
|
|
|
void createPaletteToolBar();
|
|
|
|
void createSavePaletteToolBar();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void updateTabBar();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void updateToolBar() {
|
|
|
|
updatePaletteToolBar();
|
|
|
|
updateSavePaletteToolBar();
|
|
|
|
}
|
|
|
|
void updatePaletteToolBar();
|
|
|
|
void updateSavePaletteToolBar();
|
2020-05-24 20:37:30 +12:00
|
|
|
void updatePaletteMenu();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-19 20:06:29 +12:00
|
|
|
void resizeEvent(QResizeEvent *event) override;
|
|
|
|
void contextMenuEvent(QContextMenuEvent *event) override;
|
2020-01-22 16:14:07 +13:00
|
|
|
void mousePressEvent(QMouseEvent *event) override;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-19 20:06:29 +12:00
|
|
|
void showEvent(QShowEvent *) override;
|
|
|
|
void hideEvent(QHideEvent *) override;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2021-09-17 02:48:32 +12:00
|
|
|
void enterEvent(QEvent *) override;
|
|
|
|
|
2016-06-19 20:06:29 +12:00
|
|
|
void dragEnterEvent(QDragEnterEvent *event) override;
|
|
|
|
void dropEvent(QDropEvent *event) override;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void clearStyleSelection();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
protected slots:
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void setPageView(int currentIndexPage);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void addNewPage();
|
|
|
|
void addNewColor();
|
|
|
|
void deletePage();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void saveStudioPalette();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void onColorStyleSwitched();
|
|
|
|
void onPaletteChanged();
|
|
|
|
void onPaletteSwitched();
|
|
|
|
void onFrameSwitched();
|
|
|
|
void onTabTextChanged(int tabIndex);
|
|
|
|
void onViewMode(QAction *);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void changeWindowTitle();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void movePage(int srcIndex, int dstIndex);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void startDragDrop();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void onNameDisplayMode(QAction *);
|
|
|
|
void setIsLocked(bool lock);
|
2019-07-12 03:57:23 +12:00
|
|
|
|
|
|
|
void onSwitchToPage(int pageIndex);
|
2020-07-26 17:23:46 +12:00
|
|
|
void onShowNewStyleButtonToggled();
|
2020-07-26 16:51:26 +12:00
|
|
|
|
2020-10-22 04:01:28 +13:00
|
|
|
signals:
|
|
|
|
void frozenChanged(bool frozen);
|
|
|
|
|
2020-07-26 16:51:26 +12:00
|
|
|
private:
|
|
|
|
void setSaveDefaultText(QAction *action, int levelType);
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
#endif // PALETTEVIEWER_H
|