void EditorToolThreaded::slotAnalyserFinished(bool success) { if (success) { kDebug() << "Analys " << toolName() << " completed..."; analyserCompleted(); } else { kDebug() << "Analys " << toolName() << " failed..."; slotAbort(); } }
void EditorToolThreaded::slotPreview() { // Computation already in process. if (d->currentRenderingMode != EditorToolThreaded::NoneRendering) { return; } d->currentRenderingMode = EditorToolThreaded::PreviewRendering; kDebug() << "Preview " << toolName() << " started..."; toolSettings()->enableButton(EditorToolSettings::Ok, false); toolSettings()->enableButton(EditorToolSettings::SaveAs, false); toolSettings()->enableButton(EditorToolSettings::Load, false); toolSettings()->enableButton(EditorToolSettings::Default, false); toolSettings()->enableButton(EditorToolSettings::Try, false); toolView()->setEnabled(false); EditorToolIface::editorToolIface()->setToolStartProgress(d->progressMess.isEmpty() ? toolName() : d->progressMess); kapp->setOverrideCursor(Qt::WaitCursor); if (d->delFilter && d->threadedFilter) { delete d->threadedFilter; d->threadedFilter = 0; } preparePreview(); }
void EditorToolThreaded::setAnalyser(DImgThreadedAnalyser* const analyser) { kDebug() << "Analys " << toolName() << " started..."; toolSettings()->enableButton(EditorToolSettings::Ok, false); toolSettings()->enableButton(EditorToolSettings::SaveAs, false); toolSettings()->enableButton(EditorToolSettings::Load, false); toolSettings()->enableButton(EditorToolSettings::Default, false); toolSettings()->enableButton(EditorToolSettings::Try, false); toolView()->setEnabled(false); EditorToolIface::editorToolIface()->setToolStartProgress(d->progressMess.isEmpty() ? toolName() : d->progressMess); kapp->setOverrideCursor(Qt::WaitCursor); delete d->threadedAnalyser; d->threadedAnalyser = analyser; connect(d->threadedAnalyser, SIGNAL(started()), this, SLOT(slotAnalyserStarted())); connect(d->threadedAnalyser, SIGNAL(finished(bool)), this, SLOT(slotAnalyserFinished(bool))); connect(d->threadedAnalyser, SIGNAL(progress(int)), this, SLOT(slotProgress(int))); d->threadedAnalyser->startFilter(); }
void EditorTool::setToolSettings(EditorToolSettings* const settings) { d->settings = settings; d->settings->setToolIcon(toolIcon()); d->settings->setToolName(toolName()); connect(d->settings, SIGNAL(signalOkClicked()), this, SLOT(slotOk())); connect(d->settings, SIGNAL(signalCancelClicked()), this, SLOT(slotCancel())); connect(d->settings, SIGNAL(signalDefaultClicked()), this, SLOT(slotResetSettings())); connect(d->settings, SIGNAL(signalSaveAsClicked()), this, SLOT(slotSaveAsSettings())); connect(d->settings, SIGNAL(signalLoadClicked()), this, SLOT(slotLoadSettings())); connect(d->settings, SIGNAL(signalTryClicked()), this, SLOT(slotPreview())); connect(d->settings, SIGNAL(signalChannelChanged()), this, SLOT(slotChannelChanged())); connect(d->settings, SIGNAL(signalScaleChanged()), this, SLOT(slotScaleChanged())); // Will be unblocked in slotInit() // This will prevent signals emit during tool init. d->settings->blockSignals(true); }
void EditorToolThreaded::slotOk() { writeSettings(); d->currentRenderingMode = EditorToolThreaded::FinalRendering; kDebug() << "Final " << toolName() << " started..."; toolSettings()->enableButton(EditorToolSettings::Ok, false); toolSettings()->enableButton(EditorToolSettings::SaveAs, false); toolSettings()->enableButton(EditorToolSettings::Load, false); toolSettings()->enableButton(EditorToolSettings::Default, false); toolSettings()->enableButton(EditorToolSettings::Try, false); toolView()->setEnabled(false); EditorToolIface::editorToolIface()->setToolStartProgress(d->progressMess.isEmpty() ? toolName() : d->progressMess); kapp->setOverrideCursor( Qt::WaitCursor ); if (d->delFilter && d->threadedFilter) { delete d->threadedFilter; d->threadedFilter = 0; } prepareFinal(); }
void EditorToolThreaded::slotFilterFinished(bool success) { if (success) // Computation Completed ! { switch (d->currentRenderingMode) { case EditorToolThreaded::PreviewRendering: { kDebug() << "Preview " << toolName() << " completed..."; setPreviewImage(); slotAbort(); break; } case EditorToolThreaded::FinalRendering: { kDebug() << "Final" << toolName() << " completed..."; setFinalImage(); EditorToolIface::editorToolIface()->setToolStopProgress(); kapp->restoreOverrideCursor(); emit okClicked(); break; } default: break; } } else // Computation Failed ! { switch (d->currentRenderingMode) { case EditorToolThreaded::PreviewRendering: { kDebug() << "Preview " << toolName() << " failed..."; slotAbort(); break; } case EditorToolThreaded::FinalRendering: default: break; } } }
void MeaPositionLogMgr::Position::Show() const { MeaToolMgr& toolMgr = MeaToolMgr::Instance(); MeaUnitsMgr& unitsMgr = MeaUnitsMgr::Instance(); // Change the radio tool, if needed. Note that if the position // used the cursor tool, we display it using the point tool so // that the cursor is not pulled out from under the user. In // addition, if the position used the window tool, we display // it using the rectangle tool. // CString toolName(m_toolName); if (toolName == MeaCursorTool::kToolName) { toolName = MeaPointTool::kToolName; } else if (toolName == MeaWindowTool::kToolName) { toolName = MeaRectTool::kToolName; } if (toolName != toolMgr.GetToolName()) { toolMgr.SetRadioTool(toolName); } // Change the units if needed. If these are custom units perform // additional configuration. // const DesktopInfo& desktopInfo = m_mgr->GetDesktopInfo(m_desktopInfoId); CString unitsStr = desktopInfo.GetLinearUnits()->GetUnitsStr(); CString anglesStr = desktopInfo.GetAngularUnits()->GetUnitsStr(); if (unitsStr != unitsMgr.GetLinearUnitsStr()) { MeaLinearUnitsId unitsId = desktopInfo.GetLinearUnits()->GetUnitsId(); if (unitsId == MeaCustomId) { MeaCustomUnits* custom = unitsMgr.GetCustomUnits(); custom->SetName(desktopInfo.GetCustomName()); custom->SetAbbrev(desktopInfo.GetCustomAbbrev()); custom->SetScaleBasis(desktopInfo.GetCustomBasisStr()); custom->SetScaleFactor(desktopInfo.GetCustomFactor()); custom->SetDisplayPrecisions(desktopInfo.GetCustomPrecisions()); } unitsMgr.SetLinearUnits(unitsStr); toolMgr.UpdateTools(UnitsChanged); } if (anglesStr != unitsMgr.GetAngularUnitsStr()) { unitsMgr.SetAngularUnits(anglesStr); toolMgr.UpdateTools(UnitsChanged); } // Set the origin and y-axis orientation. // bool invertY = desktopInfo.GetInvertY(); if ((invertY && !unitsMgr.GetInvertY()) || (!invertY && unitsMgr.GetInvertY())) { unitsMgr.SetInvertY(invertY); toolMgr.UpdateTools(); } POINT newOrigin = unitsMgr.UnconvertCoord(desktopInfo.GetOrigin()); if ((newOrigin.x != unitsMgr.GetOrigin().x) || (newOrigin.y != unitsMgr.GetOrigin().y)) { unitsMgr.SetOrigin(newOrigin); toolMgr.UpdateTools(OriginChanged); } // Show the points. // PointMap::const_iterator iter; MeaRadioTool::PointMap toolPoints; for (iter = m_points.begin(); iter != m_points.end(); ++iter) { toolPoints[(*iter).first] = unitsMgr.UnconvertCoord((*iter).second); } toolMgr.SetPosition(toolPoints); }