]> Shamusworld >> Repos - architektonas/blobdiff - src/forms/cadtoolbarlines.cpp
Successfully refactored CadToolBarLines to use predefined actions.
[architektonas] / src / forms / cadtoolbarlines.cpp
index 04554ad96b2b7fe8abbee47f24abd7719fd732ba..a02ad624fe17b66e46a52bdcc87c64e4847cd4a3 100644 (file)
@@ -1,5 +1,6 @@
 // cadtoolbarlines.cpp
 //
+// Part of the Architektonas Project
 // Originally part of QCad Community Edition by Andrew Mustun
 // Extensively rewritten and refactored by James L. Hammons
 // (C) 2010 Underground Software
 // Who  When        What
 // ---  ----------  -----------------------------------------------------------
 // JLH  05/10/2010  Created this file. :-)
+// JLH  06/18/2010  Changed this class to use predefined actions instead of
+//                  reinventing the wheel. Also changed construction to use
+//                  type CadToolBar instead of QWidget.
 //
 
 #include "cadtoolbarlines.h"
 
 #include "cadtoolbar.h"
-#include "qg_actionhandler.h"
-#include "rs_debug.h"
-
-CadToolBarLines::CadToolBarLines(QWidget * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
-       QWidget(parent, flags), actionHandler(NULL), cadToolBar(NULL)
-{
-       ui.setupUi(this);
+#include "createqtactions.h"
+
+CadToolBarLines::CadToolBarLines(CadToolBar * parent, Qt::WindowFlags flags/*= 0*/):
+       QWidget((QWidget *)parent, flags), cadToolBar(parent)
+{
+       QGridLayout * gridLayout = new QGridLayout(this);
+       gridLayout->setSpacing(0);
+       gridLayout->setContentsMargins(0, 0, 0, 0);
+
+       QAction * actionBack = new QAction(QIcon(":/res/qg_back"), tr("Back"), this);
+       QToolButton * button = new QToolButton(this);
+       button->setDefaultAction(actionBack);
+       QSizePolicy policy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
+       button->setSizePolicy(policy);
+       gridLayout->addWidget(button, 0, 0, 1, 2);
+       connect(button, SIGNAL(triggered(QAction *)), this, SLOT(back()));
+
+       gridLayout->addWidget(CreateToolButton(actionDrawLine), 1, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineAngle), 1, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineHorizontal), 2, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineVertical), 2, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineRectangle), 3, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineBisector), 3, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineParallel), 4, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineParallelThrough), 4, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineTangent1), 5, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineTangent2), 5, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineOrthogonal), 6, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineRelAngle), 6, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLinePolygon), 7, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLinePolygon2), 7, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDrawLineFree), 8, 0, 1, 1);
 }
 
 CadToolBarLines::~CadToolBarLines()
 {
 }
 
-void CadToolBarLines::contextMenuEvent(QContextMenuEvent * e)
-{
-       e->accept();
-}
-
-void CadToolBarLines::setCadToolBar(CadToolBar * tb)
-{
-       cadToolBar = tb;
-
-       if (tb != NULL)
-               actionHandler = tb->getActionHandler();
-       else
-               RS_DEBUG->print(RS_Debug::D_ERROR, "CadToolBarLines::setCadToolBar(): No valid toolbar set.");
-}
-
-void CadToolBarLines::drawLine()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLine();
-}
-
-void CadToolBarLines::drawLineAngle()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineAngle();
-}
-
-void CadToolBarLines::drawLineHorizontal()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineHorizontal();
-}
-
-void CadToolBarLines::drawLineHorVert()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineHorVert();
-}
-
-void CadToolBarLines::drawLineVertical()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineVertical();
-}
-
-void CadToolBarLines::drawLineParallel()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineParallel();
-}
-
-void CadToolBarLines::drawLineParallelThrough()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineParallelThrough();
-}
-
-void CadToolBarLines::drawLineRectangle()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineRectangle();
-}
-
-void CadToolBarLines::drawLineBisector()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineBisector();
-}
-
-void CadToolBarLines::drawLineTangent1()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineTangent1();
-}
-
-void CadToolBarLines::drawLineTangent2()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineTangent2();
-}
-
-void CadToolBarLines::drawLineOrthogonal()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineOrthogonal();
-}
-
-void CadToolBarLines::drawLineRelAngle()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineRelAngle();
-}
-
-void CadToolBarLines::drawLineFree()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLineFree();
-}
-
-void CadToolBarLines::drawLinePolygon()
+void CadToolBarLines::back()
 {
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLinePolygon();
+       cadToolBar->back();
 }
 
-void CadToolBarLines::drawLinePolygon2()
+QToolButton * CadToolBarLines::CreateToolButton(QAction * action)
 {
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDrawLinePolygon2();
-}
+       QToolButton * button = new QToolButton(this);
+       button->setDefaultAction(action);
+       button->setIconSize(QSize(18, 18));
 
-void CadToolBarLines::back()
-{
-       if (cadToolBar != NULL)
-               cadToolBar->back();
+       return button;
 }