tahoma2d/toonz/sources/include/toonzqt/paletteviewer.h

186 lines
4.5 KiB
C
Raw Normal View History

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"
#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
//-----------------------------------------------------------------------------
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);
bool getIsFrozen() { return m_frozen; }
void setIsFrozen(bool frozen);
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;
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;
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;
QToolButton *m_freezePaletteToolButton;
bool m_frozen = false;
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
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);
void onSwitchToPage(int pageIndex);
2020-07-26 17:23:46 +12:00
void onShowNewStyleButtonToggled();
signals:
void frozenChanged(bool frozen);
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