#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(); }