]> Shamusworld >> Repos - architektonas/blobdiff - src/applicationwindow.cpp
Added rotation tool.
[architektonas] / src / applicationwindow.cpp
index 8220a0eeca1138d6523c884ae70b26c828f92980..71e8a087d5618225543d37438e1e5b8c23986d53 100644 (file)
 #include "layerwidget.h"
 #include "mirroraction.h"
 #include "painter.h"
+#include "rotateaction.h"
 #include "settingsdialog.h"
 
 
+// Class variables
+DrawingView * ApplicationWindow::drawing;
+
+
 ApplicationWindow::ApplicationWindow():
        baseUnitInput(new QLineEdit),
        dimensionSizeInput(new QLineEdit),
@@ -85,6 +90,8 @@ ApplicationWindow::ApplicationWindow():
        ReadSettings();
        setUnifiedTitleAndToolBarOnMac(true);
        Object::SetFont(new QFont("Verdana", 15, QFont::Bold));
+
+       connect(lw, SIGNAL(LayerSelected(int)), drawing, SLOT(SetCurrentLayer(int)));
 }
 
 
@@ -395,7 +402,6 @@ void ApplicationWindow::SetInternalToolStates(void)
 {
        Object::SetDeleteActive(deleteAct->isChecked());
        Object::SetDimensionActive(addDimensionAct->isChecked());
-       drawing->SetRotateToolActive(rotateAct->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
@@ -404,22 +410,20 @@ void ApplicationWindow::SetInternalToolStates(void)
        {
                delete drawing->toolAction;
                drawing->toolAction = NULL;
+               Object::ignoreClicks = false;
        }
 
-#if 0
-       drawing->SetAddLineToolActive(addLineAct->isChecked());
-       drawing->SetAddCircleToolActive(addCircleAct->isChecked());
-       drawing->SetAddArcToolActive(addArcAct->isChecked());
-       drawing->SetAddDimensionToolActive(addDimensionAct->isChecked());
-#else
        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(mirrorAct->isChecked() ? new MirrorAction() : NULL);
-#endif
+       drawing->SetToolActive(rotateAct->isChecked() ? new RotateAction() : NULL);
+
+       if (drawing->toolAction)
+               Object::ignoreClicks = true;
 
-       update();
+       drawing->update();
 }