X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=bf9baf45781fb076e8c9f9c733969f3f5784ba53;hb=642cf72c11b49a9e00128ab6258a2438c785a5ab;hp=72948f8a3907e6643201ecee05c6bb089f0c99b4;hpb=669a05b5a52bd759f0ea08772e0ed17222b015a0;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 72948f8..bf9baf4 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" @@ -84,6 +85,8 @@ ApplicationWindow::ApplicationWindow(): ReadSettings(); setUnifiedTitleAndToolBarOnMac(true); Object::SetFont(new QFont("Verdana", 15, QFont::Bold)); + + connect(lw, SIGNAL(LayerSelected(int)), drawing, SLOT(SetCurrentLayer(int))); } @@ -243,6 +246,13 @@ void ApplicationWindow::RotateTool(void) } +void ApplicationWindow::MirrorTool(void) +{ + ClearUIToolStatesExcept(mirrorAct); + SetInternalToolStates(); +} + + void ApplicationWindow::AddLineTool(void) { ClearUIToolStatesExcept(addLineAct); @@ -377,6 +387,9 @@ void ApplicationWindow::ClearUIToolStatesExcept(QAction * exception) if (exception != rotateAct) rotateAct->setChecked(false); + + if (exception != mirrorAct) + mirrorAct->setChecked(false); } @@ -405,6 +418,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 +619,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 +691,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 +739,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);