| |
| |
| #include "toonz/tpalettehandle.h" |
| |
| |
| |
| |
| |
| 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) { |
| |
| |
| 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(); |
| } |
| |