void PreviewToggleCommand::enable() { // Cleanup Preview and Camera Test are exclusive. In case, disable the latter. // NOTE: This is done *before* attaching, since attach may invoke a preview // rebuild. CameraTestCheck *tc = CameraTestCheck::instance(); tc->setIsEnabled(false); // Attach to the model CleanupSettingsModel *model = CleanupSettingsModel::instance(); model->attach(CleanupSettingsModel::LISTENER | CleanupSettingsModel::PREVIEWER); // Connect signals bool ret = true; ret = ret && connect(model, SIGNAL(previewDataChanged()), this, SLOT(onPreviewDataChanged())); ret = ret && connect(model, SIGNAL(modelChanged(bool)), this, SLOT(onModelChanged(bool))); ret = ret && connect(&m_timer, SIGNAL(timeout()), this, SLOT(postProcess())); TPaletteHandle *ph = TApp::instance()->getPaletteController()->getCurrentCleanupPalette(); ret = ret && connect(ph, SIGNAL(colorStyleChanged()), &m_timer, SLOT(start())); ret = ret && connect(ph, SIGNAL(paletteChanged()), &m_timer, SLOT(start())); assert(ret); onPreviewDataChanged(); // in preview cleanup mode, tools are forbidden! Reverting to hand... TApp::instance()->getCurrentTool()->setTool(T_Hand); }
void PreviewToggleCommand::disable() { CleanupSettingsModel *model = CleanupSettingsModel::instance(); model->detach(CleanupSettingsModel::LISTENER | CleanupSettingsModel::PREVIEWER); bool ret = true; ret = ret && disconnect(model, SIGNAL(previewDataChanged()), this, SLOT(onPreviewDataChanged())); ret = ret && disconnect(model, SIGNAL(modelChanged(bool)), this, SLOT(onModelChanged(bool))); ret = ret && disconnect(&m_timer, SIGNAL(timeout()), this, SLOT(postProcess())); // Cleanup palette changes all falls under post-processing stuff. And do not // involve the model. TPaletteHandle *ph = TApp::instance()->getPaletteController()->getCurrentCleanupPalette(); ret = ret && disconnect(ph, SIGNAL(colorStyleChanged()), &m_timer, SLOT(start())); ret = ret && disconnect(ph, SIGNAL(paletteChanged()), &m_timer, SLOT(start())); assert(ret); clean(); TApp::instance()->getCurrentLevel()->notifyLevelChange(); }
void CleanupColorFieldEditorController::edit( DVGui::CleanupColorField *colorField) { if (m_currentColorField && m_currentColorField->isEditing()) m_currentColorField->setIsEditing(false); m_currentColorField = colorField; if (!colorField) return; m_currentColorField->setIsEditing(true); // Setto come stile corrente quello del colorField TColorStyle *fieldStyle = colorField->getStyle(); m_blackColor = dynamic_cast<TBlackCleanupStyle *>(fieldStyle); if (m_blackColor) { m_palette->setStyle(1, new TSolidColorStyle); m_palette->getStyle(1)->setMainColor(fieldStyle->getColorParamValue(1)); } else { m_palette->setStyle(1, new TColorCleanupStyle); TColorStyle *style = m_palette->getStyle(1); style->setMainColor(fieldStyle->getMainColor()); style->setColorParamValue(1, fieldStyle->getColorParamValue(1)); } // Setto m_colorFieldHandle come paletteHandle corrente. TApp::instance()->getPaletteController()->setCurrentPalette( m_colorFieldHandle); connect(m_colorFieldHandle, SIGNAL(colorStyleChanged()), SLOT(onColorStyleChanged())); }
void ColorFieldEditorController::edit(DVGui::ColorField *colorField) { if (m_currentColorField && m_currentColorField->isEditing()) m_currentColorField->setIsEditing(false); m_currentColorField = colorField; m_currentColorField->setIsEditing(true); // Setto come stile corrente quello del colorField TColorStyle *style = m_palette->getStyle(1); style->setMainColor(m_currentColorField->getColor()); // Setto m_colorFieldHandle come paletteHandle corrente. TApp::instance()->getPaletteController()->setCurrentPalette( m_colorFieldHandle); connect(m_currentColorField, SIGNAL(colorChanged(const TPixel32 &, bool)), SLOT(onColorChanged(const TPixel32 &, bool))); connect(m_colorFieldHandle, SIGNAL(colorStyleChanged()), SLOT(onColorStyleChanged())); }
void CleanupColorFieldEditorController::hide() { disconnect(m_colorFieldHandle, SIGNAL(colorStyleChanged()), this, SLOT(onColorStyleChanged())); }