X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=2f78dfc61a6f92ac53229faba2091adea2ac1847;hb=5d8c9e52606315fbfe857f2715b8f051b4f97491;hp=b80130e8989cf77740f5e66ad97dcc9ba801c092;hpb=742d2aa9bb46bce4f690474fa22f5980e175e55e;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index b80130e..2f78dfc 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -31,6 +31,7 @@ #include #include "about.h" #include "blockwidget.h" +#include "consolewidget.h" #include "drawingview.h" #include "fileio.h" #include "generaltab.h" @@ -80,10 +81,16 @@ ApplicationWindow::ApplicationWindow(): ObjectWidget * ow = new ObjectWidget; dock3->setWidget(ow); addDockWidget(Qt::RightDockWidgetArea, dock3); + QDockWidget * dock4 = new QDockWidget(tr("Command"), this); + ConsoleWidget * cw = new ConsoleWidget; + dock4->setWidget(cw); + addDockWidget(Qt::BottomDockWidgetArea, dock4); + // Needed for saveState() dock1->setObjectName("Layers"); dock2->setObjectName("Blocks"); dock3->setObjectName("Object"); + dock4->setObjectName("Commands"); // Create status bar zoomIndicator = new QLabel("Zoom: 100% Grid: 12.0\" BU: Inch"); @@ -300,6 +307,7 @@ void ApplicationWindow::HandlePrintRequest(QPrinter * printer) void ApplicationWindow::contextMenuEvent(QContextMenuEvent * event) { + // Proof of concept, still need to code up the real thing QMenu menu(this); menu.addAction(mirrorAct); menu.addAction(rotateAct); @@ -374,6 +382,12 @@ void ApplicationWindow::TrimTool(void) SetInternalToolStates(); } +void ApplicationWindow::ParallelTool(void) +{ + ClearUIToolStatesExcept(parallelAct); + SetInternalToolStates(); +} + void ApplicationWindow::TriangulateTool(void) { ClearUIToolStatesExcept(triangulateAct); @@ -516,6 +530,8 @@ void ApplicationWindow::SetInternalToolStates(void) Global::tool = TTRotate; else if (trimAct->isChecked()) Global::tool = TTTrim; + else if (parallelAct->isChecked()) + Global::tool = TTParallel; else if (triangulateAct->isChecked()) Global::tool = TTTriangulate; else @@ -846,6 +862,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())); + parallelAct = CreateAction(tr("&Parallel"), tr("Parallel"), tr("Create copies of objects parallel to the original."), QIcon(":/res/parallel-tool.png"), QKeySequence("p,a"), true); + connect(parallelAct, SIGNAL(triggered()), this, SLOT(ParallelTool())); + 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())); @@ -934,6 +953,7 @@ void ApplicationWindow::CreateMenus(void) menu->addAction(rotateAct); menu->addAction(mirrorAct); menu->addAction(trimAct); + menu->addAction(parallelAct); menu->addAction(triangulateAct); menu->addAction(connectAct); menu->addAction(disconnectAct); @@ -988,6 +1008,7 @@ void ApplicationWindow::CreateToolbars(void) toolbar->addAction(rotateAct); toolbar->addAction(mirrorAct); toolbar->addAction(trimAct); + toolbar->addAction(parallelAct); toolbar->addAction(triangulateAct); toolbar->addAction(editCutAct); toolbar->addAction(editCopyAct);