145 lines
4.6 KiB
C++
145 lines
4.6 KiB
C++
|
|
|
|
#include "toonz/tpalettehandle.h"
|
|
|
|
//=============================================================================
|
|
// TPaletteHandle
|
|
//-----------------------------------------------------------------------------
|
|
|
|
TPaletteHandle::TPaletteHandle()
|
|
: m_palette(0), m_styleIndex(-1), m_styleParamIndex(-1) {
|
|
connectBroadcasts(this);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
TPaletteHandle::~TPaletteHandle() {}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
TPalette *TPaletteHandle::getPalette() const { return m_palette; }
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
int TPaletteHandle::getStyleIndex() const { return m_styleIndex; }
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
int TPaletteHandle::getStyleParamIndex() const { return m_styleParamIndex; }
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
TColorStyle *TPaletteHandle::getStyle() const {
|
|
if (!m_palette || m_styleIndex == -1) return 0;
|
|
return m_palette->getStyle(m_styleIndex);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
bool TPaletteHandle::connectBroadcasts(const QObject *receiver) {
|
|
bool ret = true;
|
|
|
|
ret = connect(this, SIGNAL(broadcastPaletteChanged()), receiver,
|
|
SIGNAL(paletteChanged())) &&
|
|
ret;
|
|
ret = connect(this, SIGNAL(broadcastPaletteTitleChanged()), receiver,
|
|
SIGNAL(paletteTitleChanged())) &&
|
|
ret;
|
|
ret = connect(this, SIGNAL(broadcastColorStyleSwitched()), receiver,
|
|
SIGNAL(colorStyleSwitched())) &&
|
|
ret;
|
|
ret = connect(this, SIGNAL(broadcastColorStyleChanged()), receiver,
|
|
SIGNAL(colorStyleChanged())) &&
|
|
ret;
|
|
ret = connect(this, SIGNAL(broadcastColorStyleChangedOnMouseRelease()),
|
|
receiver, SIGNAL(colorStyleChangedOnMouseRelease())) &&
|
|
ret;
|
|
|
|
return ret;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
bool TPaletteHandle::disconnectBroadcasts(const QObject *receiver) {
|
|
bool ret = true;
|
|
|
|
ret = disconnect(this, SIGNAL(broadcastPaletteChanged()), receiver,
|
|
SIGNAL(paletteChanged())) &&
|
|
ret;
|
|
ret = disconnect(this, SIGNAL(broadcastPaletteTitleChanged()), receiver,
|
|
SIGNAL(paletteTitleChanged())) &&
|
|
ret;
|
|
ret = disconnect(this, SIGNAL(broadcastColorStyleSwitched()), receiver,
|
|
SIGNAL(colorStyleSwitched())) &&
|
|
ret;
|
|
ret = disconnect(this, SIGNAL(broadcastColorStyleChanged()), receiver,
|
|
SIGNAL(colorStyleChanged())) &&
|
|
ret;
|
|
ret = disconnect(this, SIGNAL(broadcastColorStyleChangedOnMouseRelease()),
|
|
receiver, SIGNAL(colorStyleChangedOnMouseRelease())) &&
|
|
ret;
|
|
|
|
return ret;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void TPaletteHandle::setPalette(TPalette *palette, int styleIndex) {
|
|
if (m_palette == palette)
|
|
setStyleIndex(styleIndex);
|
|
else {
|
|
m_palette = palette;
|
|
m_styleIndex = styleIndex;
|
|
m_styleParamIndex = 0;
|
|
|
|
emit paletteSwitched();
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void TPaletteHandle::setStyleIndex(int index) {
|
|
// if(m_styleIndex != index)
|
|
// {
|
|
m_styleIndex = index;
|
|
m_styleParamIndex = 0;
|
|
emit broadcastColorStyleSwitched();
|
|
// }
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void TPaletteHandle::setStyleParamIndex(int index) {
|
|
if (m_styleParamIndex != index) {
|
|
m_styleParamIndex = index;
|
|
emit broadcastColorStyleSwitched();
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void TPaletteHandle::notifyPaletteChanged() { emit broadcastPaletteChanged(); }
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void TPaletteHandle::notifyPaletteTitleChanged() {
|
|
emit broadcastPaletteTitleChanged();
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void TPaletteHandle::notifyColorStyleSwitched() {
|
|
emit broadcastColorStyleSwitched();
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void TPaletteHandle::notifyColorStyleChanged(bool onDragging,
|
|
bool setDirtyFlag) {
|
|
if (setDirtyFlag && getPalette() && !getPalette()->getDirtyFlag())
|
|
getPalette()->setDirtyFlag(true);
|
|
|
|
emit broadcastColorStyleChanged();
|
|
|
|
if (!onDragging) emit broadcastColorStyleChangedOnMouseRelease();
|
|
}
|