]> Shamusworld >> Repos - architektonas/blobdiff - src/forms/cadtoolbardim.cpp
Refactored CAD tool bars to use predefined actions.
[architektonas] / src / forms / cadtoolbardim.cpp
index b6eb56757ebc8cfe57a784f19e52b49f453f598d..8d7caf1ce2ced45245e32994176fec79bcd461dd 100644 (file)
 #include "cadtoolbardim.h"
 
 #include "cadtoolbar.h"
-#include "qg_actionhandler.h"
-#include "rs_debug.h"
+#include "createqtactions.h"
 
-CadToolBarDim::CadToolBarDim(QWidget * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
-       QWidget(parent, flags), actionHandler(NULL), cadToolBar(NULL)
+CadToolBarDim::CadToolBarDim(CadToolBar * parent, Qt::WindowFlags flags/*= 0*/):
+       QWidget((QWidget *)parent, flags), cadToolBar(parent)
 {
-       ui.setupUi(this);
-}
-
-CadToolBarDim::~CadToolBarDim()
-{
-}
-
-void CadToolBarDim::mousePressEvent(QMouseEvent * e)
-{
-       if (e->button() == Qt::RightButton && cadToolBar != NULL)
-       {
-               cadToolBar->back();
-               e->accept();
-       }
-}
-
-void CadToolBarDim::contextMenuEvent(QContextMenuEvent * e)
-{
-       e->accept();
-}
-
-void CadToolBarDim::setCadToolBar(CadToolBar * tb)
-{
-       cadToolBar = tb;
-
-       if (tb != NULL)
-               actionHandler = tb->getActionHandler();
-       else
-               RS_DEBUG->print(RS_Debug::D_ERROR, "CadToolBarDim::setCadToolBar(): No valid toolbar set.");
-}
-
-void CadToolBarDim::drawDimAligned()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDimAligned();
-}
-
-void CadToolBarDim::drawDimLinear()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDimLinear();
-}
-
-void CadToolBarDim::drawDimLinearHor()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDimLinearHor();
-}
+       QGridLayout * gridLayout = new QGridLayout(this);
+       gridLayout->setSpacing(0);
+       gridLayout->setContentsMargins(0, 0, 0, 0);
 
-void CadToolBarDim::drawDimLinearVer()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDimLinearVer();
-}
+       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()));
 
-void CadToolBarDim::drawDimRadial()
-{
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDimRadial();
+       gridLayout->addWidget(CreateToolButton(actionDimAligned), 1, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDimLinear), 1, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDimLinearHor), 2, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDimLinearVer), 2, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDimRadial), 3, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDimDiametric), 3, 1, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDimAngular), 4, 0, 1, 1);
+       gridLayout->addWidget(CreateToolButton(actionDimLeader), 4, 1, 1, 1);
 }
 
-void CadToolBarDim::drawDimDiametric()
+CadToolBarDim::~CadToolBarDim()
 {
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDimDiametric();
 }
 
-void CadToolBarDim::drawDimAngular()
+void CadToolBarDim::back()
 {
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDimAngular();
+       cadToolBar->back();
 }
 
-void CadToolBarDim::drawDimLeader()
+QToolButton * CadToolBarDim::CreateToolButton(QAction * action)
 {
-       if (cadToolBar != NULL && actionHandler != NULL)
-               actionHandler->slotDimLeader();
-}
+       QToolButton * button = new QToolButton(this);
+       button->setDefaultAction(action);
+       button->setIconSize(QSize(18, 18));
 
-void CadToolBarDim::back()
-{
-       if (cadToolBar != NULL)
-               cadToolBar->back();
+       return button;
 }