From: Shamus Hammons Date: Sat, 19 Jun 2010 21:13:53 +0000 (+0000) Subject: Successfully refactored CadToolBarLines to use predefined actions. X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=658ad9ec22e868cc5f575e6c4f3d38c153f6af51;p=architektonas Successfully refactored CadToolBarLines to use predefined actions. --- diff --git a/src/forms/cadtoolbar.cpp b/src/forms/cadtoolbar.cpp index ec5929d..2ae0746 100644 --- a/src/forms/cadtoolbar.cpp +++ b/src/forms/cadtoolbar.cpp @@ -101,7 +101,7 @@ void CadToolBar::createSubToolBars(QG_ActionHandler * ah) tbPoints->hide(); tbLines = new CadToolBarLines(this); - tbLines->setCadToolBar(this); +// tbLines->setCadToolBar(this); tbLines->hide(); tbArcs = new CadToolBarArcs(this); diff --git a/src/forms/cadtoolbararcs.cpp b/src/forms/cadtoolbararcs.cpp index 35cb974..6ea2bd0 100644 --- a/src/forms/cadtoolbararcs.cpp +++ b/src/forms/cadtoolbararcs.cpp @@ -1,5 +1,6 @@ // cadtoolbararcs.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 diff --git a/src/forms/cadtoolbarcircles.cpp b/src/forms/cadtoolbarcircles.cpp index b6ebd27..0ca00d6 100644 --- a/src/forms/cadtoolbarcircles.cpp +++ b/src/forms/cadtoolbarcircles.cpp @@ -1,5 +1,6 @@ // cadtoolbarcircles.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 diff --git a/src/forms/cadtoolbardim.cpp b/src/forms/cadtoolbardim.cpp index f7dd4c8..b6eb567 100644 --- a/src/forms/cadtoolbardim.cpp +++ b/src/forms/cadtoolbardim.cpp @@ -1,5 +1,6 @@ // cadtoolbardim.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 diff --git a/src/forms/cadtoolbarellipses.cpp b/src/forms/cadtoolbarellipses.cpp index d764528..6e38532 100644 --- a/src/forms/cadtoolbarellipses.cpp +++ b/src/forms/cadtoolbarellipses.cpp @@ -1,5 +1,6 @@ // cadtoolbarellipses.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 diff --git a/src/forms/cadtoolbarinfo.cpp b/src/forms/cadtoolbarinfo.cpp index e0f4143..98daa80 100644 --- a/src/forms/cadtoolbarinfo.cpp +++ b/src/forms/cadtoolbarinfo.cpp @@ -1,5 +1,6 @@ // cadtoolbarinfo.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 diff --git a/src/forms/cadtoolbarlines.cpp b/src/forms/cadtoolbarlines.cpp index 04554ad..a02ad62 100644 --- a/src/forms/cadtoolbarlines.cpp +++ b/src/forms/cadtoolbarlines.cpp @@ -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 @@ -9,137 +10,62 @@ // 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; } diff --git a/src/forms/cadtoolbarlines.h b/src/forms/cadtoolbarlines.h index 9081e2a..e1161a0 100644 --- a/src/forms/cadtoolbarlines.h +++ b/src/forms/cadtoolbarlines.h @@ -1,46 +1,26 @@ #ifndef __CADTOOLBARLINES_H__ #define __CADTOOLBARLINES_H__ -#include "ui_cadtoolbarlines.h" +#include class CadToolBar; -class QG_ActionHandler; class CadToolBarLines: public QWidget { Q_OBJECT public: - CadToolBarLines(QWidget * parent = 0, Qt::WindowFlags flags = 0); + CadToolBarLines(CadToolBar * parent, Qt::WindowFlags flags = 0); ~CadToolBarLines(); - public slots: - void contextMenuEvent(QContextMenuEvent * e); - void setCadToolBar(CadToolBar * tb); - void drawLine(); - void drawLineAngle(); - void drawLineHorizontal(); - void drawLineHorVert(); - void drawLineVertical(); - void drawLineParallel(); - void drawLineParallelThrough(); - void drawLineRectangle(); - void drawLineBisector(); - void drawLineTangent1(); - void drawLineTangent2(); - void drawLineOrthogonal(); - void drawLineRelAngle(); - void drawLineFree(); - void drawLinePolygon(); - void drawLinePolygon2(); + protected slots: void back(); + private: + QToolButton * CreateToolButton(QAction * action); + protected: - QG_ActionHandler * actionHandler; CadToolBar * cadToolBar; - - private: - Ui::CadToolBarLines ui; }; #endif // __CADTOOLBARLINES_H__ diff --git a/src/forms/cadtoolbarpoints.cpp b/src/forms/cadtoolbarpoints.cpp index 5f1245e..89758ab 100644 --- a/src/forms/cadtoolbarpoints.cpp +++ b/src/forms/cadtoolbarpoints.cpp @@ -1,5 +1,6 @@ // cadtoolbarpoints.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 diff --git a/src/forms/cadtoolbarpolylines.cpp b/src/forms/cadtoolbarpolylines.cpp index 0b75c2b..17ab7bc 100644 --- a/src/forms/cadtoolbarpolylines.cpp +++ b/src/forms/cadtoolbarpolylines.cpp @@ -1,5 +1,6 @@ // cadtoolbarpolylines.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 diff --git a/src/forms/cadtoolbarselect.cpp b/src/forms/cadtoolbarselect.cpp index 3f03ab8..14fa5dd 100644 --- a/src/forms/cadtoolbarselect.cpp +++ b/src/forms/cadtoolbarselect.cpp @@ -1,5 +1,6 @@ // cadtoolbarselect.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 diff --git a/src/forms/cadtoolbarsnap.cpp b/src/forms/cadtoolbarsnap.cpp index 90800f0..9acce48 100644 --- a/src/forms/cadtoolbarsnap.cpp +++ b/src/forms/cadtoolbarsnap.cpp @@ -1,5 +1,6 @@ // cadtoolbarsnap.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 diff --git a/src/forms/cadtoolbarsplines.cpp b/src/forms/cadtoolbarsplines.cpp index 7fcd384..6b6aff7 100644 --- a/src/forms/cadtoolbarsplines.cpp +++ b/src/forms/cadtoolbarsplines.cpp @@ -1,5 +1,6 @@ // cadtoolbarsplines.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 diff --git a/src/mainapp/applicationwindow.cpp b/src/mainapp/applicationwindow.cpp index a0cb971..7e3e989 100644 --- a/src/mainapp/applicationwindow.cpp +++ b/src/mainapp/applicationwindow.cpp @@ -56,10 +56,11 @@ #include "mousewidget.h" #include "selectionwidget.h" -#include "mdiwindow.h" -#include "qc_dialogfactory.h" #include "createqtactions.h" +#include "qc_dialogfactory.h" +#include "qg_graphicview.h" #include "main.h" +#include "mdiwindow.h" ApplicationWindow * ApplicationWindow::appWindow = NULL; @@ -89,6 +90,7 @@ ApplicationWindow::ApplicationWindow(): // setIcon(qPixmapFromMimeSource(QC_APP_ICON)); // setWindowIcon(qPixmapFromMimeSource(QC_APP_ICON)); setWindowIcon(QIcon(":/res/" QC_APP_ICON)); + CreateQtActions(this); RS_DEBUG->print("ApplicationWindow::ApplicationWindow: creating action handler"); actionHandler = new QG_ActionHandler(this); @@ -359,7 +361,6 @@ void ApplicationWindow::initMDI() void ApplicationWindow::initActions() { RS_DEBUG->print("ApplicationWindow::initActions()"); - CreateQtActions(this); // // File actions: diff --git a/src/mainapp/applicationwindow.h b/src/mainapp/applicationwindow.h index bb1b0f6..abb835f 100644 --- a/src/mainapp/applicationwindow.h +++ b/src/mainapp/applicationwindow.h @@ -5,7 +5,7 @@ #include "rs_document.h" #include "qc_dialogfactory.h" -#include "qc_graphicview.h" +//#include "qc_graphicview.h" #include "mdiwindow.h" #include "qg_actionhandler.h" #include "qg_blockwidget.h" diff --git a/src/mainapp/commands.cpp b/src/mainapp/commands.cpp index 429c04e..2b31db5 100644 --- a/src/mainapp/commands.cpp +++ b/src/mainapp/commands.cpp @@ -25,7 +25,7 @@ Commands * Commands::uniqueInstance = NULL; */ Commands::Commands() { - // This is NOT necessary; we don't anything out of the hash + // This is NOT necessary; we don't take anything out of the hash // mainCommands.setAutoDelete(true); // shortCommands.setAutoDelete(true); diff --git a/src/mainapp/mdiwindow.h b/src/mainapp/mdiwindow.h index fdd8215..c3b782b 100644 --- a/src/mainapp/mdiwindow.h +++ b/src/mainapp/mdiwindow.h @@ -2,7 +2,6 @@ #define QC_MDIWINDOW_H #include -//#include "qc_graphicview.h" #include "qg_layerwidget.h" #include "qg_pentoolbar.h" #include "rs_document.h" diff --git a/src/mainapp/qc_dialogfactory.cpp b/src/mainapp/qc_dialogfactory.cpp index 4e46d6d..716b50c 100644 --- a/src/mainapp/qc_dialogfactory.cpp +++ b/src/mainapp/qc_dialogfactory.cpp @@ -15,6 +15,7 @@ #include "qc_dialogfactory.h" #include "applicationwindow.h" +#include "qg_graphicview.h" QC_DialogFactory::QC_DialogFactory(QWidget * parent, QToolBar * ow): QG_DialogFactory(parent, ow) { diff --git a/src/widgets/qg_mainwindowinterface.h b/src/widgets/qg_mainwindowinterface.h index 4fbdf5c..8d00ff0 100644 --- a/src/widgets/qg_mainwindowinterface.h +++ b/src/widgets/qg_mainwindowinterface.h @@ -1,10 +1,7 @@ #ifndef QG_MAINWINDOWINTERFACE_H #define QG_MAINWINDOWINTERFACE_H -//#include "rs_document.h" #include "rs_mainwindowinterface.h" -//#include "qg_graphicview.h" -//#include "qg_actionhandler.h" class QMainWindow; class QG_ActionHandler;