X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=ac4122da777394a32d15ff908afd487ac88bb682;hb=ff2a28347dc30eccc28e7cd7298cccde7aa49d2c;hp=866750d82fc8dce1326ff8b007be6bf8045a80fd;hpb=a398911ea125eb6b25320e96599e0ae39b720cf8;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 866750d..ac4122d 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -30,26 +30,15 @@ #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 @@ -100,6 +89,9 @@ ApplicationWindow::ApplicationWindow(): Global::font = new QFont("Verdana", 15, QFont::Bold); connect(lw, SIGNAL(LayerSelected(int)), drawing, SLOT(SetCurrentLayer(int))); + connect(lw, SIGNAL(LayerDeleted(int)), drawing, SLOT(DeleteCurrentLayer(int))); + connect(lw, SIGNAL(LayerToggled()), drawing, SLOT(HandleLayerToggle())); + connect(lw, SIGNAL(LayersSwapped(int, int)), drawing, SLOT(HandleLayerSwap(int, int))); } @@ -238,7 +230,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 +253,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(); } @@ -267,6 +265,11 @@ void ApplicationWindow::RotateTool(void) void ApplicationWindow::MirrorTool(void) { ClearUIToolStatesExcept(mirrorAct); + + // Do tear-down if Rotate tool has been turned off + if (!mirrorAct->isChecked()) + drawing->MirrorHandler(ToolCleanup, Point(0, 0)); + SetInternalToolStates(); } @@ -414,34 +417,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 +446,6 @@ void ApplicationWindow::SetInternalToolStates(void) Global::tool = TTTriangulate; else Global::tool = TTNone; -#endif drawing->update(); }