X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=4f1be35d14a453acfdf3d6b082cf6b0360873d65;hb=31dd33b097661175a86b6799df525972055099fb;hp=5261dd11a2488037d601f1b0e44e836edb51f16f;hpb=51de783e1c8d149c9dd9bd0999f2ad25dbe6edf2;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 5261dd1..4f1be35 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -45,6 +45,7 @@ #include "painter.h" #include "rotateaction.h" #include "settingsdialog.h" +#include "trimaction.h" // Class variables @@ -267,6 +268,13 @@ void ApplicationWindow::MirrorTool(void) } +void ApplicationWindow::TrimTool(void) +{ + ClearUIToolStatesExcept(trimAct); + SetInternalToolStates(); +} + + void ApplicationWindow::AddLineTool(void) { ClearUIToolStatesExcept(addLineAct); @@ -397,6 +405,9 @@ void ApplicationWindow::ClearUIToolStatesExcept(QAction * exception) if (exception != mirrorAct) mirrorAct->setChecked(false); + + if (exception != trimAct) + trimAct->setChecked(false); } @@ -421,6 +432,7 @@ void ApplicationWindow::SetInternalToolStates(void) drawing->SetToolActive(addDimensionAct->isChecked() ? new DrawDimensionAction() : NULL); drawing->SetToolActive(mirrorAct->isChecked() ? new MirrorAction() : NULL); drawing->SetToolActive(rotateAct->isChecked() ? new RotateAction() : NULL); + drawing->SetToolActive(trimAct->isChecked() ? new TrimAction() : NULL); if (drawing->toolAction) Object::ignoreClicks = true; @@ -700,6 +712,9 @@ void ApplicationWindow::CreateActions(void) 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())); + trimAct = CreateAction(tr("&Trim"), tr("Trim"), tr("Trim extraneous lines from selected objects."), QIcon(":/res/trim-tool.png"), QKeySequence("t,r"), true); + connect(trimAct, SIGNAL(triggered()), this, SLOT(TrimTool())); + //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. @@ -770,6 +785,7 @@ void ApplicationWindow::CreateMenus(void) menu->addAction(fixLengthAct); menu->addAction(rotateAct); menu->addAction(mirrorAct); + menu->addAction(trimAct); menu->addAction(connectAct); menu->addAction(disconnectAct); menu->addSeparator(); @@ -818,6 +834,7 @@ void ApplicationWindow::CreateToolbars(void) toolbar->addAction(fixLengthAct); toolbar->addAction(rotateAct); toolbar->addAction(mirrorAct); + toolbar->addAction(trimAct); toolbar->addAction(deleteAct); toolbar->addAction(connectAct); toolbar->addAction(disconnectAct);