]> Shamusworld >> Repos - architektonas/blob - src/forms/dlginsert.cpp
Final round of dialogs/forms needing to be converted from Qt3 to 4
[architektonas] / src / forms / dlginsert.cpp
1 // dlginsert.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  06/11/2010  Created this file. :-)
13 //
14
15 #include "dlginsert.h"
16
17 #include "rs_insert.h"
18 #include "drawing.h"
19 #include "rs_math.h"
20
21 DlgInsert::DlgInsert(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
22         QDialog(parent, flags)
23 {
24         ui.setupUi(this);
25 }
26
27 DlgInsert::~DlgInsert()
28 {
29 }
30
31 void DlgInsert::setInsert(RS_Insert & i)
32 {
33         insert = &i;
34         //pen = insert->getPen();
35         ui.wPen->setPen(insert->getPen(false), true, false, "Pen");
36         Drawing * graphic = insert->getGraphic();
37
38         if (graphic)
39                 ui.cbLayer->init(*(graphic->getLayerList()), false, false);
40
41         RS_Layer * lay = insert->getLayer(false);
42
43         if (lay)
44                 ui.cbLayer->setLayer(*lay);
45
46         QString s;
47         s.setNum(insert->getInsertionPoint().x);
48         ui.leInsertionPointX->setText(s);
49         s.setNum(insert->getInsertionPoint().y);
50         ui.leInsertionPointY->setText(s);
51         s.setNum(insert->getScale().x);
52         ui.leScale->setText(s);
53         s.setNum(RS_Math::rad2deg(insert->getAngle()));
54         ui.leAngle->setText(s);
55         s.setNum(insert->getRows());
56         ui.leRows->setText(s);
57         s.setNum(insert->getCols());
58         ui.leCols->setText(s);
59         s.setNum(insert->getSpacing().x);
60         ui.leRowSpacing->setText(s);
61         s.setNum(insert->getSpacing().y);
62         ui.leColSpacing->setText(s);
63 }
64
65 void DlgInsert::updateInsert()
66 {
67         insert->setInsertionPoint(Vector(RS_Math::eval(ui.leInsertionPointX->text()),
68                 RS_Math::eval(ui.leInsertionPointY->text())));
69         insert->setScale(Vector(RS_Math::eval(ui.leScale->text()),
70                 RS_Math::eval(ui.leScale->text())));
71         insert->setAngle(RS_Math::deg2rad(RS_Math::eval(ui.leAngle->text())));
72         insert->setRows(RS_Math::round(RS_Math::eval(ui.leRows->text())));
73         insert->setCols(RS_Math::round(RS_Math::eval(ui.leCols->text())));
74         insert->setSpacing(Vector(RS_Math::eval(ui.leRowSpacing->text()),
75                 RS_Math::eval(ui.leColSpacing->text())));
76         insert->setPen(ui.wPen->getPen());
77         insert->setLayer(ui.cbLayer->currentText());
78 }