]> Shamusworld >> Repos - architektonas/blobdiff - src/applicationwindow.cpp
Added key modifiers to Actions.
[architektonas] / src / applicationwindow.cpp
index daae37cf0e4fd61898f1eac1998d1184e7c91922..8600d2d16fee6fc1ca3a88523fc1c9069c4856b5 100644 (file)
 #include "about.h"
 #include "blockwidget.h"
 #include "drawingview.h"
+#include "drawarcaction.h"
+#include "drawcircleaction.h"
+#include "drawdimensionaction.h"
+#include "drawlineaction.h"
 #include "fileio.h"
 #include "generaltab.h"
 #include "layerwidget.h"
@@ -45,6 +49,7 @@ ApplicationWindow::ApplicationWindow():
 {
        drawing = new DrawingView(this);
        drawing->setMouseTracking(true);                // We want *all* mouse events...!
+       drawing->setFocusPolicy(Qt::StrongFocus);
        setCentralWidget(drawing);
 
        aboutWin = new AboutWindow(this);
@@ -295,13 +300,16 @@ when zooming in, new origin will be (xCenter - origin.x) / 2, (yCenter - origin.
        // This just zooms leaving origin intact... should zoom in at the current center! [DONE]
        // This should actually be calculated by drawing->gridPixels / grid size.
        Painter::zoom *= zoomFactor;
-       drawing->gridSpacing = drawing->gridPixels / Painter::zoom;
+//     drawing->gridSpacing = drawing->gridPixels / Painter::zoom;
+       Object::gridSpacing = drawing->gridPixels / Painter::zoom;
 //     zoomIndicator->setText(QString("Grid: %2\" Zoom: %1%").arg(Painter::zoom * 100.0 * SCREEN_ZOOM).arg(drawing->gridSpacing));
-       zoomIndicator->setText(QString("Grid: %1\", BU: Inch").arg(drawing->gridSpacing));
+//     zoomIndicator->setText(QString("Grid: %1\", BU: Inch").arg(drawing->gridSpacing));
+       zoomIndicator->setText(QString("Grid: %1\", BU: Inch").arg(Object::gridSpacing));
        drawing->UpdateGridBackground();
        drawing->update();
 
-       baseUnitInput->setText(QString("%1").arg(drawing->gridSpacing));
+//     baseUnitInput->setText(QString("%1").arg(drawing->gridSpacing));
+       baseUnitInput->setText(QString("%1").arg(Object::gridSpacing));
 }
 
 
@@ -334,13 +342,16 @@ x 2 = (-426, -301)
 //printf("Zoom out...\n");
        // This just zooms leaving origin intact... should zoom out at the current center! [DONE]
        Painter::zoom /= zoomFactor;
-       drawing->gridSpacing = drawing->gridPixels / Painter::zoom;
+//     drawing->gridSpacing = drawing->gridPixels / Painter::zoom;
+       Object::gridSpacing = drawing->gridPixels / Painter::zoom;
 //     zoomIndicator->setText(QString("Grid: %2\" Zoom: %1%").arg(Painter::zoom * 100.0 * SCREEN_ZOOM).arg(drawing->gridSpacing));
-       zoomIndicator->setText(QString("Grid: %1\", BU: Inch").arg(drawing->gridSpacing));
+//     zoomIndicator->setText(QString("Grid: %1\", BU: Inch").arg(drawing->gridSpacing));
+       zoomIndicator->setText(QString("Grid: %1\", BU: Inch").arg(Object::gridSpacing));
        drawing->UpdateGridBackground();
        drawing->update();
 
-       baseUnitInput->setText(QString("%1").arg(drawing->gridSpacing));
+//     baseUnitInput->setText(QString("%1").arg(drawing->gridSpacing));
+       baseUnitInput->setText(QString("%1").arg(Object::gridSpacing));
 }
 
 
@@ -384,9 +395,19 @@ void ApplicationWindow::SetInternalToolStates(void)
                drawing->toolAction = NULL;
        }
 
+#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);
+#endif
+
+       update();
 }
 
 
@@ -486,8 +507,10 @@ void ApplicationWindow::HandleGridSizeInBaseUnits(QString text)
        if (!ok || value == 0)
                return;
 
-       drawing->gridSpacing = value;
-       Painter::zoom = drawing->gridPixels / drawing->gridSpacing;
+//     drawing->gridSpacing = value;
+//     Painter::zoom = drawing->gridPixels / drawing->gridSpacing;
+       Object::gridSpacing = value;
+       Painter::zoom = drawing->gridPixels / Object::gridSpacing;
        drawing->UpdateGridBackground();
        drawing->update();
 }