111 lines
2.8 KiB
C++
111 lines
2.8 KiB
C++
|
|
|
|
#ifndef STYLESELECTION_INCLUDED
|
|
#define STYLESELECTION_INCLUDED
|
|
|
|
#include "toonzqt/selection.h"
|
|
#include "toonz/tpalettehandle.h"
|
|
#include "tpalette.h"
|
|
#include <set>
|
|
#include <QString>
|
|
|
|
class QByteArray;
|
|
|
|
#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 TXsheetHandle;
|
|
class TXshLevelHandle;
|
|
|
|
//=============================================================================
|
|
// TStyleSelection
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class DVAPI TStyleSelection : public TSelection
|
|
{
|
|
TPaletteHandle *m_paletteHandle;
|
|
|
|
//Used to change level palette; in other palette (cleanup, ...) xsheetHandle is not necessary.
|
|
TXsheetHandle *m_xsheetHandle;
|
|
//for clearing cache when the pastestyle command is executed
|
|
TXshLevelHandle *m_levelHandle;
|
|
|
|
int m_pageIndex;
|
|
std::set<int> m_styleIndicesInPage;
|
|
|
|
public:
|
|
TStyleSelection();
|
|
TStyleSelection(TStyleSelection *styleSelection)
|
|
: m_paletteHandle(styleSelection->getPaletteHandle()), m_pageIndex(styleSelection->getPageIndex()), m_styleIndicesInPage(styleSelection->getIndicesInPage())
|
|
{
|
|
}
|
|
~TStyleSelection();
|
|
|
|
void select(int pageIndex);
|
|
void select(int pageIndex, int styleIndexInPage, bool on);
|
|
bool isSelected(int pageIndex, int styleIndexInPage) const;
|
|
bool isPageSelected(int pageIndex) const;
|
|
bool canHandleStyles();
|
|
void selectNone();
|
|
bool isEmpty() const;
|
|
int getStyleCount() const;
|
|
TPaletteHandle *getPaletteHandle() const
|
|
{
|
|
return m_paletteHandle;
|
|
}
|
|
void setPaletteHandle(TPaletteHandle *paletteHandle)
|
|
{
|
|
m_paletteHandle = paletteHandle;
|
|
}
|
|
TPalette *getPalette() const
|
|
{
|
|
return m_paletteHandle->getPalette();
|
|
}
|
|
int getPageIndex() const
|
|
{
|
|
return m_pageIndex;
|
|
}
|
|
const std::set<int> &getIndicesInPage() const
|
|
{
|
|
return m_styleIndicesInPage;
|
|
}
|
|
|
|
void getIndices(std::set<int> &indices) const;
|
|
|
|
//Used to change level palette; in other palette (cleanup, ...) xsheetHandle is not necessary.
|
|
void setXsheetHandle(TXsheetHandle *xsheetHandle) { m_xsheetHandle = xsheetHandle; }
|
|
TXsheetHandle *getXsheetHandle() const { return m_xsheetHandle; }
|
|
void setLevelHandle(TXshLevelHandle *levelHandle) { m_levelHandle = levelHandle; }
|
|
|
|
// commands
|
|
void cutStyles();
|
|
void copyStyles();
|
|
void pasteStyles();
|
|
void pasteStylesValues(bool pasteName, bool pasteColor = true);
|
|
void pasteStylesValue();
|
|
void pasteStylesColor();
|
|
void pasteStylesName();
|
|
void deleteStyles();
|
|
void eraseUnsedStyle();
|
|
void blendStyles();
|
|
void toggleLink();
|
|
void eraseToggleLink();
|
|
|
|
void enableCommands();
|
|
|
|
void toggleKeyframe(int frame);
|
|
|
|
// remove link from the studio palette (if linked)
|
|
bool removeLink();
|
|
// get back the style from the studio palette (if linked)
|
|
void getBackOriginalStyle();
|
|
};
|
|
|
|
#endif //STYLESELECTION_INCLUDED
|