]> Shamusworld >> Repos - architektonas/blobdiff - src/applicationwindow.cpp
Rotation tool now works properly for Lines. Need to fix Arcs.
[architektonas] / src / applicationwindow.cpp
index 866750d82fc8dce1326ff8b007be6bf8045a80fd..825eb6dd30d451cf4cefd37438aa8c34d4558c37 100644 (file)
 
 #include "about.h"
 #include "blockwidget.h"
-//#include "dimension.h"
 #include "drawingview.h"
-//#include "drawarcaction.h"
-//#include "drawcircleaction.h"
-//#include "drawdimensionaction.h"
-//#include "drawlineaction.h"
-//#include "drawsplineaction.h"
 #include "fileio.h"
 #include "generaltab.h"
-//#include "geometry.h"
 #include "global.h"
 #include "layerwidget.h"
-//#include "line.h"
-//#include "mirroraction.h"
 #include "painter.h"
-//#include "rotateaction.h"
 #include "settingsdialog.h"
 #include "structs.h"
-//#include "triangulateaction.h"
-//#include "trimaction.h"
+#include "utils.h"
 
 
 // Class variables
@@ -238,7 +227,8 @@ void ApplicationWindow::DeleteTool(void)
        // delete those and *don't* select the delete tool.
        if (drawing->numSelected > 0)
        {
-               drawing->DeleteSelectedItems();
+//             drawing->DeleteSelectedItems();
+               DeleteSelectedObjects(drawing->document.objects);
                drawing->update();
                deleteAct->setChecked(false);
                return;
@@ -260,6 +250,11 @@ void ApplicationWindow::DimensionTool(void)
 void ApplicationWindow::RotateTool(void)
 {
        ClearUIToolStatesExcept(rotateAct);
+
+       // Do tear-down if Rotate tool has been turned off
+       if (!rotateAct->isChecked())
+               drawing->RotateHandler(ToolCleanup, Point(0, 0));
+
        SetInternalToolStates();
 }
 
@@ -414,34 +409,11 @@ void ApplicationWindow::ClearUIToolStatesExcept(QAction * exception)
 
 void ApplicationWindow::SetInternalToolStates(void)
 {
-//     Global::deleteActive = deleteAct->isChecked();
-//     Global::dimensionActive = addDimensionAct->isChecked();
-
        // We can be sure that if we've come here, then either an active tool is
        // being deactivated, or a new tool is being created. In either case, the
        // old tool needs to be deleted.
        Global::toolState = TSNone;
-#if 0
-       if (drawing->toolAction)
-       {
-               delete drawing->toolAction;
-               drawing->toolAction = NULL;
-               Global::ignoreClicks = false;
-       }
 
-       drawing->SetToolActive(addLineAct->isChecked() ? new DrawLineAction() : NULL);
-       drawing->SetToolActive(addCircleAct->isChecked() ? new DrawCircleAction() : NULL);
-       drawing->SetToolActive(addArcAct->isChecked() ? new DrawArcAction() : NULL);
-       drawing->SetToolActive(addDimensionAct->isChecked() ? new DrawDimensionAction() : NULL);
-       drawing->SetToolActive(addSplineAct->isChecked() ? new DrawSplineAction() : NULL);
-       drawing->SetToolActive(mirrorAct->isChecked() ? new MirrorAction() : NULL);
-       drawing->SetToolActive(rotateAct->isChecked() ? new RotateAction() : NULL);
-       drawing->SetToolActive(trimAct->isChecked() ? new TrimAction() : NULL);
-       drawing->SetToolActive(triangulateAct->isChecked() ? new TriangulateAction() : NULL);
-
-       if (drawing->toolAction)
-               Global::ignoreClicks = true;
-#else
        if (addLineAct->isChecked())
                Global::tool = TTLine;
        else if (addCircleAct->isChecked())
@@ -466,7 +438,6 @@ void ApplicationWindow::SetInternalToolStates(void)
                Global::tool = TTTriangulate;
        else
                Global::tool = TTNone;
-#endif
 
        drawing->update();
 }