X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=ad3bc8d9ec0b4c209087f7d58d39e8c79c427fc2;hb=7f3a6b11585376eecd80979ec3da2346c5314d88;hp=23c865427f64ecc2971695db553567908cb870ff;hpb=c85958d34fac175452fe420ff24ea82f26d6f1f3;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 23c8654..ad3bc8d 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -46,6 +46,7 @@ #include "painter.h" #include "rotateaction.h" #include "settingsdialog.h" +#include "triangulateaction.h" #include "trimaction.h" @@ -276,6 +277,13 @@ void ApplicationWindow::TrimTool(void) } +void ApplicationWindow::TriangulateTool(void) +{ + ClearUIToolStatesExcept(triangulateAct); + SetInternalToolStates(); +} + + void ApplicationWindow::AddLineTool(void) { ClearUIToolStatesExcept(addLineAct); @@ -419,6 +427,9 @@ void ApplicationWindow::ClearUIToolStatesExcept(QAction * exception) if (exception != trimAct) trimAct->setChecked(false); + + if (exception != triangulateAct) + triangulateAct->setChecked(false); } @@ -445,6 +456,7 @@ void ApplicationWindow::SetInternalToolStates(void) 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) Object::ignoreClicks = true; @@ -730,6 +742,9 @@ void ApplicationWindow::CreateActions(void) 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())); + triangulateAct = CreateAction(tr("&Triangulate"), tr("Triangulate"), tr("Make triangles from selected lines, preserving their lengths."), QIcon(":/res/triangulate-tool.png"), QKeySequence("t,g"), true); + connect(triangulateAct, SIGNAL(triggered()), this, SLOT(TriangulateTool())); + //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. @@ -801,6 +816,7 @@ void ApplicationWindow::CreateMenus(void) menu->addAction(rotateAct); menu->addAction(mirrorAct); menu->addAction(trimAct); + menu->addAction(triangulateAct); menu->addAction(connectAct); menu->addAction(disconnectAct); menu->addSeparator(); @@ -851,6 +867,7 @@ void ApplicationWindow::CreateToolbars(void) toolbar->addAction(rotateAct); toolbar->addAction(mirrorAct); toolbar->addAction(trimAct); + toolbar->addAction(triangulateAct); toolbar->addAction(deleteAct); toolbar->addAction(connectAct); toolbar->addAction(disconnectAct);