]> Shamusworld >> Repos - architektonas/blob - src/forms/dlgrotate2.cpp
824b7a7f5bcda762e497fb8fd6735f6cd1c26992
[architektonas] / src / forms / dlgrotate2.cpp
1 // dlgrotate2.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/12/2010  Created this file. :-)
13 //
14
15 #include "dlgrotate2.h"
16
17 #include "rs_modification.h"
18 #include "settings.h"
19
20 DlgRotate2::DlgRotate2(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
21         QDialog(parent, flags)
22 {
23         ui.setupUi(this);
24
25         settings.beginGroup("Modify");
26         copies = settings.value("Rotate2Copies", "10").toString();
27         numberMode = settings.value("Rotate2Mode", 0).toInt();
28         useCurrentLayer = settings.value("Rotate2UseCurrentLayer", false).toBool();
29         useCurrentAttributes = settings.value("MoveRotate2UseCurrentAttributes", false).toBool();
30         angle1 = settings.value("Rotate2Angle1", "30.0").toString();
31         angle2 = settings.value("Rotate2Angle2", "-30.0").toString();
32         settings.endGroup();
33
34         switch (numberMode)
35         {
36         case 0:
37                 ui.rbMove->setChecked(true);
38                 break;
39
40         case 1:
41                 ui.rbCopy->setChecked(true);
42                 break;
43
44         case 2:
45                 ui.rbMultiCopy->setChecked(true);
46                 break;
47
48         default:
49                 break;
50         }
51
52         ui.leNumber->setText(copies);
53         ui.leAngle1->setText(angle1);
54         ui.leAngle2->setText(angle2);
55         ui.cbCurrentAttributes->setChecked(useCurrentAttributes);
56         ui.cbCurrentLayer->setChecked(useCurrentLayer);
57 }
58
59 DlgRotate2::~DlgRotate2()
60 {
61         settings.beginGroup("Modify");
62         settings.setValue("Rotate2Copies", ui.leNumber->text());
63
64         if (ui.rbMove->isChecked())
65                 numberMode = 0;
66         else if (ui.rbCopy->isChecked())
67                 numberMode = 1;
68         else
69                 numberMode = 2;
70
71         settings.setValue("Rotate2Mode", numberMode);
72         settings.setValue("Rotate2Angle1", ui.leAngle1->text());
73         settings.setValue("Rotate2Angle2", ui.leAngle2->text());
74         settings.setValue("Rotate2UseCurrentLayer", ui.cbCurrentLayer->isChecked());
75         settings.setValue("Rotate2UseCurrentAttributes", ui.cbCurrentAttributes->isChecked());
76         settings.endGroup();
77 }
78
79 void DlgRotate2::setData(RS_Rotate2Data * d)
80 {
81         data = d;
82
83         //leAngle1->setText(QString("%1").arg(RS_Math::rad2deg(data->angle1)));
84         //leAngle2->setText(QString("%1").arg(RS_Math::rad2deg(data->angle2)));
85 }
86
87 void DlgRotate2::updateData()
88 {
89         if (ui.rbMove->isChecked())
90                 data->number = 0;
91         else if (ui.rbCopy->isChecked())
92                 data->number = 1;
93         else
94                 data->number = ui.leNumber->text().toInt();
95
96         data->angle1 = RS_Math::deg2rad(RS_Math::eval(ui.leAngle1->text()));
97         data->angle2 = RS_Math::deg2rad(RS_Math::eval(ui.leAngle2->text()));
98         data->useCurrentAttributes = ui.cbCurrentAttributes->isChecked();
99         data->useCurrentLayer = ui.cbCurrentLayer->isChecked();
100 }