| |
| |
|
|
| #include "toonz/stage2.h" |
| #include "toonz/tpalettehandle.h" |
| #include "toonz/tscenehandle.h" |
| #include "toonz/txshlevelhandle.h" |
| #include "toonz/txshlevel.h" |
| |
| |
| #include "tenv.h" |
| |
| #include "toonz/palettecontroller.h" |
| |
| TEnv::IntVar PaletteControllerAutoApplyState("PaletteControllerAutoApplyState", |
| 1); |
| |
| PaletteController::PaletteController() |
| : QObject() |
| , m_currentLevelPalette(0) |
| , m_currentCleanupPalette(0) |
| , m_originalCurrentPalette(0) |
| , m_currentPalette(0) |
| , m_colorAutoApplyEnabled(PaletteControllerAutoApplyState != 0) |
| , m_colorSample() { |
| m_currentLevelPalette = new TPaletteHandle; |
| m_currentCleanupPalette = new TPaletteHandle; |
| m_currentPalette = new TPaletteHandle; |
| |
| QObject::connect(m_currentCleanupPalette, SIGNAL(paletteSwitched()), this, |
| SLOT(editCleanupPalette())); |
| QObject::connect(m_currentCleanupPalette, SIGNAL(colorStyleSwitched()), this, |
| SLOT(editCleanupPalette())); |
| |
| QObject::connect(m_currentLevelPalette, SIGNAL(paletteSwitched()), this, |
| SLOT(editLevelPalette())); |
| QObject::connect(m_currentLevelPalette, SIGNAL(colorStyleSwitched()), this, |
| SLOT(editLevelPalette())); |
| |
| |
| |
| QObject::connect(m_currentLevelPalette, SIGNAL(paletteLockChanged()), this, |
| SLOT(editLevelPalette())); |
| } |
| |
| |
| |
| PaletteController::~PaletteController() { |
| delete m_currentLevelPalette; |
| delete m_currentCleanupPalette; |
| delete m_currentPalette; |
| } |
| |
| |
| |
| void PaletteController::setCurrentPalette(TPaletteHandle *paletteHandle) { |
| |
| |
| |
| |
| |
| |
| |
| |
| if (m_originalCurrentPalette) { |
| m_originalCurrentPalette->disconnectBroadcasts(m_currentPalette); |
| m_currentPalette->disconnectBroadcasts(m_originalCurrentPalette); |
| } |
| |
| m_originalCurrentPalette = paletteHandle; |
| |
| if (!paletteHandle) return; |
| |
| m_currentPalette->setPalette(paletteHandle->getPalette(), |
| paletteHandle->getStyleIndex()); |
| |
| m_originalCurrentPalette->connectBroadcasts(m_currentPalette); |
| m_currentPalette->connectBroadcasts(m_originalCurrentPalette); |
| } |
| |
| |
| |
| void PaletteController::editLevelPalette() { |
| setCurrentPalette(m_currentLevelPalette); |
| } |
| |
| |
| |
| void PaletteController::editCleanupPalette() { |
| setCurrentPalette(m_currentCleanupPalette); |
| } |
| |
| |
| |
| void PaletteController::enableColorAutoApply(bool enabled) { |
| if (m_colorAutoApplyEnabled != enabled) { |
| m_colorAutoApplyEnabled = enabled; |
| PaletteControllerAutoApplyState = (enabled) ? 1 : 0; |
| emit colorAutoApplyEnabled(m_colorAutoApplyEnabled); |
| } |
| } |
| |
| |
| |
| void PaletteController::setColorSample(const TPixel32 &color) { |
| if (m_colorSample != color) { |
| m_colorSample = color; |
| emit colorSampleChanged(m_colorSample); |
| } |
| } |
| |