]> Shamusworld >> Repos - architektonas/blob - src/forms/cadtoolbarlines.cpp
Successfully refactored CadToolBarLines to use predefined actions.
[architektonas] / src / forms / cadtoolbarlines.cpp
1 // cadtoolbarlines.cpp
2 //
3 // Part of the Architektonas Project
4 // Originally part of QCad Community Edition by Andrew Mustun
5 // Extensively rewritten and refactored by James L. Hammons
6 // (C) 2010 Underground Software
7 //
8 // JLH = James L. Hammons <jlhamm@acm.org>
9 //
10 // Who  When        What
11 // ---  ----------  -----------------------------------------------------------
12 // JLH  05/10/2010  Created this file. :-)
13 // JLH  06/18/2010  Changed this class to use predefined actions instead of
14 //                  reinventing the wheel. Also changed construction to use
15 //                  type CadToolBar instead of QWidget.
16 //
17
18 #include "cadtoolbarlines.h"
19
20 #include "cadtoolbar.h"
21 #include "createqtactions.h"
22
23 CadToolBarLines::CadToolBarLines(CadToolBar * parent, Qt::WindowFlags flags/*= 0*/):
24         QWidget((QWidget *)parent, flags), cadToolBar(parent)
25 {
26         QGridLayout * gridLayout = new QGridLayout(this);
27         gridLayout->setSpacing(0);
28         gridLayout->setContentsMargins(0, 0, 0, 0);
29
30         QAction * actionBack = new QAction(QIcon(":/res/qg_back"), tr("Back"), this);
31         QToolButton * button = new QToolButton(this);
32         button->setDefaultAction(actionBack);
33         QSizePolicy policy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
34         button->setSizePolicy(policy);
35         gridLayout->addWidget(button, 0, 0, 1, 2);
36         connect(button, SIGNAL(triggered(QAction *)), this, SLOT(back()));
37
38         gridLayout->addWidget(CreateToolButton(actionDrawLine), 1, 0, 1, 1);
39         gridLayout->addWidget(CreateToolButton(actionDrawLineAngle), 1, 1, 1, 1);
40         gridLayout->addWidget(CreateToolButton(actionDrawLineHorizontal), 2, 0, 1, 1);
41         gridLayout->addWidget(CreateToolButton(actionDrawLineVertical), 2, 1, 1, 1);
42         gridLayout->addWidget(CreateToolButton(actionDrawLineRectangle), 3, 0, 1, 1);
43         gridLayout->addWidget(CreateToolButton(actionDrawLineBisector), 3, 1, 1, 1);
44         gridLayout->addWidget(CreateToolButton(actionDrawLineParallel), 4, 0, 1, 1);
45         gridLayout->addWidget(CreateToolButton(actionDrawLineParallelThrough), 4, 1, 1, 1);
46         gridLayout->addWidget(CreateToolButton(actionDrawLineTangent1), 5, 0, 1, 1);
47         gridLayout->addWidget(CreateToolButton(actionDrawLineTangent2), 5, 1, 1, 1);
48         gridLayout->addWidget(CreateToolButton(actionDrawLineOrthogonal), 6, 0, 1, 1);
49         gridLayout->addWidget(CreateToolButton(actionDrawLineRelAngle), 6, 1, 1, 1);
50         gridLayout->addWidget(CreateToolButton(actionDrawLinePolygon), 7, 0, 1, 1);
51         gridLayout->addWidget(CreateToolButton(actionDrawLinePolygon2), 7, 1, 1, 1);
52         gridLayout->addWidget(CreateToolButton(actionDrawLineFree), 8, 0, 1, 1);
53 }
54
55 CadToolBarLines::~CadToolBarLines()
56 {
57 }
58
59 void CadToolBarLines::back()
60 {
61         cadToolBar->back();
62 }
63
64 QToolButton * CadToolBarLines::CreateToolButton(QAction * action)
65 {
66         QToolButton * button = new QToolButton(this);
67         button->setDefaultAction(action);
68         button->setIconSize(QSize(18, 18));
69
70         return button;
71 }