X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=5a435a21ae3e6bfe8d82cffdf3408afaa9181f82;hb=8d80165e3ab9173b8689b3b3420b40bf3020161f;hp=2049a097ca354b54e69297fcbc48d91753b7d528;hpb=f507d97c1b1118834a70332f5f79d8479a6964c0;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 2049a09..5a435a2 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -47,6 +47,7 @@ #include "painter.h" //#include "rotateaction.h" #include "settingsdialog.h" +#include "structs.h" //#include "triangulateaction.h" //#include "trimaction.h" @@ -105,7 +106,7 @@ ApplicationWindow::ApplicationWindow(): void ApplicationWindow::closeEvent(QCloseEvent * event) { WriteSettings(); - event->accept(); // Use ignore() if can't close for some reason + event->accept(); // Use ignore() if can't close for some reason //Do we have a memory leak here if we don't delete the font in the Object??? } @@ -113,7 +114,6 @@ void ApplicationWindow::closeEvent(QCloseEvent * event) void ApplicationWindow::FileNew(void) { // Should warn the user if drawing hasn't been saved... -// drawing->document.Clear(); drawing->document.objects.empty(); drawing->update(); documentName.clear(); @@ -232,20 +232,17 @@ void ApplicationWindow::FixLength(void) } -// We want certain tools to be exclusive, and this approach isn't working correctly... void ApplicationWindow::DeleteTool(void) { // For this tool, we check first to see if anything is selected. If so, we // delete those and *don't* select the delete tool. -#if 0 - if (drawing->document.ItemsSelected() > 0) + if (drawing->numSelected > 0) { - drawing->document.DeleteSelectedItems(); + drawing->DeleteSelectedItems(); drawing->update(); deleteAct->setChecked(false); return; } -#endif // Otherwise, toggle the state of the tool ClearUIToolStatesExcept(deleteAct); @@ -402,45 +399,23 @@ x 2 = (-426, -301) void ApplicationWindow::ClearUIToolStatesExcept(QAction * exception) { - if (exception != addArcAct) - addArcAct->setChecked(false); - - if (exception != addCircleAct) - addCircleAct->setChecked(false); - - if (exception != addDimensionAct) - addDimensionAct->setChecked(false); - - if (exception != addLineAct) - addLineAct->setChecked(false); - - if (exception != addPolygonAct) - addPolygonAct->setChecked(false); - - if (exception != addSplineAct) - addSplineAct->setChecked(false); + QAction * actionList[] = { + addArcAct, addLineAct, addCircleAct, addDimensionAct, addPolygonAct, + addSplineAct, deleteAct, rotateAct, mirrorAct, trimAct, triangulateAct, 0 + }; - if (exception != deleteAct) - deleteAct->setChecked(false); - - if (exception != rotateAct) - rotateAct->setChecked(false); - - if (exception != mirrorAct) - mirrorAct->setChecked(false); - - if (exception != trimAct) - trimAct->setChecked(false); - - if (exception != triangulateAct) - triangulateAct->setChecked(false); + for(int i=0; actionList[i]!=0; i++) + { + if (actionList[i] != exception) + actionList[i]->setChecked(false); + } } void ApplicationWindow::SetInternalToolStates(void) { - Global::deleteActive = deleteAct->isChecked(); - Global::dimensionActive = addDimensionAct->isChecked(); +// 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 @@ -465,6 +440,31 @@ void ApplicationWindow::SetInternalToolStates(void) if (drawing->toolAction) Global::ignoreClicks = true; +#else + if (addLineAct->isChecked()) + Global::tool = TTLine; + else if (addCircleAct->isChecked()) + Global::tool = TTCircle; + else if (addArcAct->isChecked()) + Global::tool = TTArc; + else if (addDimensionAct->isChecked()) + Global::tool = TTDimension; + else if (addSplineAct->isChecked()) + Global::tool = TTSpline; + else if (addPolygonAct->isChecked()) + Global::tool = TTPolygon; + else if (deleteAct->isChecked()) + Global::tool = TTDelete; + else if (mirrorAct->isChecked()) + Global::tool = TTMirror; + else if (rotateAct->isChecked()) + Global::tool = TTRotate; + else if (trimAct->isChecked()) + Global::tool = TTTrim; + else if (triangulateAct->isChecked()) + Global::tool = TTTriangulate; + else + Global::tool = TTNone; #endif drawing->update();