]> Shamusworld >> Repos - architektonas/blob - src/forms/dlgscale.cpp
Bugfixes related to removing Snapper class.
[architektonas] / src / forms / dlgscale.cpp
1 // dlgscale.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 // Portions copyright (C) 2001-2003 RibbonSoft
7 // Copyright (C) 2010 Underground Software
8 // See the README and GPLv2 files for licensing and warranty information
9 //
10 // JLH = James L. Hammons <jlhamm@acm.org>
11 //
12 // Who  When        What
13 // ---  ----------  -----------------------------------------------------------
14 // JLH  06/12/2010  Created this file. :-)
15 //
16
17 #include "dlgscale.h"
18
19 #include "modification.h"
20 #include "settings.h"
21
22 DlgScale::DlgScale(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
23         QDialog(parent, flags)
24 {
25         ui.setupUi(this);
26
27         settings.beginGroup("Modify");
28         copies = settings.value("ScaleCopies", "10").toString();
29         numberMode = settings.value("ScaleMode", 0).toInt();
30         factor = settings.value("ScaleFactor", "0.5").toString();
31         useCurrentLayer = settings.value("ScaleUseCurrentLayer", false).toBool();
32         useCurrentAttributes = settings.value("ScaleUseCurrentAttributes", false).toBool();
33         settings.endGroup();
34
35         switch (numberMode)
36         {
37         case 0:
38                 ui.rbMove->setChecked(true);
39                 break;
40
41         case 1:
42                 ui.rbCopy->setChecked(true);
43                 break;
44
45         case 2:
46                 ui.rbMultiCopy->setChecked(true);
47                 break;
48
49         default:
50                 break;
51         }
52
53         ui.leNumber->setText(copies);
54         ui.leFactor->setText(factor);
55         ui.cbCurrentAttributes->setChecked(useCurrentAttributes);
56         ui.cbCurrentLayer->setChecked(useCurrentLayer);
57 }
58
59 DlgScale::~DlgScale()
60 {
61         settings.beginGroup("Modify");
62         settings.setValue("ScaleCopies", ui.leNumber->text());
63         settings.setValue("ScaleFactor", ui.leFactor->text());
64
65         if (ui.rbMove->isChecked())
66                 numberMode = 0;
67         else if (ui.rbCopy->isChecked())
68                 numberMode = 1;
69         else
70                 numberMode = 2;
71
72         settings.setValue("ScaleMode", numberMode);
73         settings.setValue("ScaleUseCurrentLayer", ui.cbCurrentLayer->isChecked());
74         settings.setValue("ScaleUseCurrentAttributes", ui.cbCurrentAttributes->isChecked());
75         settings.endGroup();
76 }
77
78 void DlgScale::setData(ScaleData * d)
79 {
80         data = d;
81 }
82
83 void DlgScale::updateData()
84 {
85         if (ui.rbMove->isChecked())
86                 data->number = 0;
87         else if (ui.rbCopy->isChecked())
88                 data->number = 1;
89         else
90                 data->number = ui.leNumber->text().toInt();
91
92         data->factor = Math::eval(ui.leFactor->text());
93         data->useCurrentAttributes = ui.cbCurrentAttributes->isChecked();
94         data->useCurrentLayer = ui.cbCurrentLayer->isChecked();
95 }