void setCurrentColorWithUndo(const TPixel32 &color) { TTool::Application *app = TTool::getApplication(); TPaletteHandle *ph = app->getPaletteController()->getCurrentPalette(); int styleId = ph->getStyleIndex(); TPalette *palette = ph->getPalette(); TXshSimpleLevel *level = app->getCurrentLevel()->getSimpleLevel(); if (palette) TUndoManager::manager()->add( new UndoPickRGBM(palette, styleId, color, level)); setCurrentColor(color); if (level) { std::vector<TFrameId> fids; level->getFids(fids); invalidateIcons(level, fids); } }
/*! switch the current level when the current index of m_chooseLevelCombo is * changed */ void Filmstrip::onChooseLevelComboChanged(int index) { TApp *tapp = TApp::instance(); // empty level if (index == m_chooseLevelCombo->findText(tr("- No Current Level -"))) tapp->getCurrentLevel()->setLevel(0); else { std::vector<TFrameId> fids; m_levels[index]->getFids(fids); tapp->getCurrentFrame()->setFrameIds(fids); // retrieve to the current working frame of the level TFrameId WF; std::map<TXshSimpleLevel *, TFrameId>::iterator WFit; WFit = m_workingFrames.find(m_levels[index]); if (WFit != m_workingFrames.end()) WF = WFit->second; else WF = fids[0]; // this function emits xshLevelSwitched() signal and eventually calls // FlipConsole::UpdateRange // it may move the current frame so we need to keep the current frameId // before calling setLevel. tapp->getCurrentLevel()->setLevel(m_levels[index]); if (tapp->getCurrentSelection()->getSelection()) tapp->getCurrentSelection()->getSelection()->selectNone(); // move to the current working frame tapp->getCurrentFrame()->setFid(WF); QApplication::setOverrideCursor(Qt::WaitCursor); invalidateIcons(m_levels[index], fids); QApplication::restoreOverrideCursor(); } }