X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=8220a0eeca1138d6523c884ae70b26c828f92980;hb=428876081ee41d40e32f5b4f2bfcfdb7a835e6e1;hp=72948f8a3907e6643201ecee05c6bb089f0c99b4;hpb=669a05b5a52bd759f0ea08772e0ed17222b015a0;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 72948f8..8220a0e 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -38,6 +38,7 @@ #include "fileio.h" #include "generaltab.h" #include "layerwidget.h" +#include "mirroraction.h" #include "painter.h" #include "settingsdialog.h" @@ -243,6 +244,13 @@ void ApplicationWindow::RotateTool(void) } +void ApplicationWindow::MirrorTool(void) +{ + ClearUIToolStatesExcept(mirrorAct); + SetInternalToolStates(); +} + + void ApplicationWindow::AddLineTool(void) { ClearUIToolStatesExcept(addLineAct); @@ -377,6 +385,9 @@ void ApplicationWindow::ClearUIToolStatesExcept(QAction * exception) if (exception != rotateAct) rotateAct->setChecked(false); + + if (exception != mirrorAct) + mirrorAct->setChecked(false); } @@ -405,6 +416,7 @@ void ApplicationWindow::SetInternalToolStates(void) 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 update(); @@ -605,6 +617,10 @@ void ApplicationWindow::CreateActions(void) disconnectAct = CreateAction(tr("&Disconnect"), tr("Disconnect"), tr("Disconnect objects joined at point."), QIcon(":/res/disconnect-tool.png"), QKeySequence("d,d")); + mirrorAct = CreateAction(tr("&Mirror"), tr("Mirror"), tr("Mirror selected objects around a line."), QIcon(":/res/mirror-tool.png"), QKeySequence("m,i"), true); + connect(mirrorAct, SIGNAL(triggered()), this, SLOT(MirrorTool())); + + //Hm. I think we'll have to have separate logic to do the "Radio Group Toolbar" thing... // Yup, in order to turn them off, we'd have to have an "OFF" toolbar button. Ick. /* QActionGroup * group = new QActionGroup(this); @@ -673,6 +689,7 @@ void ApplicationWindow::CreateMenus(void) menu->addAction(fixAngleAct); menu->addAction(fixLengthAct); menu->addAction(rotateAct); + menu->addAction(mirrorAct); menu->addAction(connectAct); menu->addAction(disconnectAct); menu->addSeparator(); @@ -720,6 +737,7 @@ void ApplicationWindow::CreateToolbars(void) toolbar->addAction(fixAngleAct); toolbar->addAction(fixLengthAct); toolbar->addAction(rotateAct); + toolbar->addAction(mirrorAct); toolbar->addAction(deleteAct); toolbar->addAction(connectAct); toolbar->addAction(disconnectAct);