Esempio n. 1
0
void EditorToolThreaded::slotAnalyserFinished(bool success)
{
    if (success)
    {
        kDebug() << "Analys " << toolName() << " completed...";
        analyserCompleted();
    }
    else
    {
        kDebug() << "Analys " << toolName() << " failed...";
        slotAbort();
    }
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
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();
}
Esempio n. 4
0
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);
}
Esempio n. 5
0
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();
}
Esempio n. 6
0
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;
        }
    }
}
Esempio n. 7
0
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);
}