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