]> Shamusworld >> Repos - architektonas/blob - src/forms/dlgoptionsgeneral.cpp
Initial import
[architektonas] / src / forms / dlgoptionsgeneral.cpp
1 // dlgoptionsgeneral.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/18/2010  Added this text. :-)
13 //
14
15 #include "dlgoptionsgeneral.h"
16
17 #include "rs.h"
18 #include "rs_debug.h"
19 #include "settings.h"
20 #include "rs_system.h"
21 #include "rs_units.h"
22
23 DlgOptionsGeneral::DlgOptionsGeneral(QWidget * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
24         QDialog(parent, flags)
25 {
26         ui.setupUi(this);
27
28 #ifdef QC_PREDEFINED_LOCALE
29         bgLanguage->hide();
30         Widget9Layout->addMultiCellWidget(bgGraphicView, 0, 2, 0, 0); //use empty space as well
31 #endif
32         // Fill combobox with languages:
33         QStringList languageList = RS_SYSTEM->getLanguageList();
34         languageList.prepend("en");
35
36         for(QStringList::Iterator it=languageList.begin(); it!=languageList.end(); it++)
37         {
38                 RS_DEBUG->print("DlgOptionsGeneral::init: adding %s to combobox", (*it).toLatin1().data());
39
40                 QString l = RS_SYSTEM->symbolToLanguage(*it);
41
42                 if (l.isEmpty() == false)
43                 {
44                         RS_DEBUG->print("DlgOptionsGeneral::init: %s", l.toLatin1().data());
45                         ui.cbLanguage->addItem(l);
46                         ui.cbLanguageCmd->addItem(l);
47                 }
48         }
49
50         settings.beginGroup("Appearance");
51
52         // set current language:
53         QString def_lang = "en";
54 #ifdef QC_PREDEFINED_LOCALE
55         def_lang = QC_PREDEFINED_LOCALE;
56 #endif
57         QString lang = settings.value("Language", def_lang).toString();
58 //      ui.cbLanguage->setCurrentText(RS_SYSTEM->symbolToLanguage(lang));
59         ui.cbLanguage->setItemText(ui.cbLanguage->currentIndex(), RS_SYSTEM->symbolToLanguage(lang));
60
61         QString langCmd = settings.value("LanguageCmd", def_lang).toString();
62 //      ui.cbLanguageCmd->setCurrentText(RS_SYSTEM->symbolToLanguage(langCmd));
63         ui.cbLanguageCmd->setItemText(ui.cbLanguageCmd->currentIndex(), RS_SYSTEM->symbolToLanguage(langCmd));
64
65         // graphic view:
66         // crosshairs:
67         bool showCrosshairs = settings.value("ShowCrosshairs", true).toBool();
68         ui.cbShowCrosshairs->setChecked(showCrosshairs);
69
70         // scale grid:
71         bool scaleGrid = settings.value("ScaleGrid", true).toBool();
72         ui.cbScaleGrid->setChecked(scaleGrid);
73         QString minGridSpacing = settings.value("MinGridSpacing", "10").toString();
74 //      ui.cbMinGridSpacing->setCurrentText(minGridSpacing);
75         ui.cbMinGridSpacing->setItemText(ui.cbMinGridSpacing->currentIndex(), minGridSpacing);
76
77         // preview:
78         QString maxPreview = settings.value("MaxPreview", "100").toString();
79 //      ui.cbMaxPreview->setCurrentText(maxPreview);
80         ui.cbMaxPreview->setItemText(ui.cbMaxPreview->currentIndex(), maxPreview);
81
82         // colors:
83         QString backgroundColor = settings.value("BackgroundColor", "Black").toString();
84 //      ui.cbBackgroundColor->setCurrentText(backgroundColor);
85         ui.cbBackgroundColor->setItemText(ui.cbBackgroundColor->currentIndex(), backgroundColor);
86         QString gridColor = settings.value("GridColor", "Gray").toString();
87 //      ui.cbGridColor->setCurrentText(gridColor);
88         ui.cbGridColor->setItemText(ui.cbGridColor->currentIndex(), gridColor);
89         QString metaGridColor = settings.value("MetaGridColor", "#404040").toString();
90 //      ui.cbMetaGridColor->setCurrentText(metaGridColor);
91         ui.cbMetaGridColor->setItemText(ui.cbMetaGridColor->currentIndex(), metaGridColor);
92         QString selectedColor = settings.value("SelectedColor", "#a54747").toString();
93 //      ui.cbSelectedColor->setCurrentText(selectedColor);
94         ui.cbSelectedColor->setItemText(ui.cbSelectedColor->currentIndex(), selectedColor);
95         QString highlightedColor = settings.value("HighlightedColor", "#739373").toString();
96 //      ui.cbHighlightedColor->setCurrentText(highlightedColor);
97         ui.cbHighlightedColor->setItemText(ui.cbHighlightedColor->currentIndex(), highlightedColor);
98
99         // font size:
100         QString sizeStatus = settings.value("StatusBarFontSize", "9").toString();
101 //      ui.cbSizeStatus->setCurrentText(sizeStatus);
102         ui.cbSizeStatus->setItemText(ui.cbSizeStatus->currentIndex(), sizeStatus);
103
104         settings.endGroup();
105
106         settings.beginGroup("Paths");
107         ui.lePathTranslations->setText(settings.value("Translations", "").toString());
108         ui.lePathHatch->setText(settings.value("Patterns", "").toString());
109         ui.lePathFonts->setText(settings.value("Fonts", "").toString());
110         ui.lePathScripts->setText(settings.value("Scripts", "").toString());
111         ui.lePathLibrary->setText(settings.value("Library", "").toString());
112         settings.endGroup();
113
114         ui.cbUnit->setInsertPolicy(QComboBox::InsertAlphabetically);
115
116         // units:
117         for(int i=RS2::None; i<RS2::LastUnit; i++)
118         {
119                 if (i != (int)RS2::None)
120                         ui.cbUnit->addItem(RS_Units::unitToString((RS2::Unit)i));
121         }
122
123 //should be [DONE]
124 //#warning "Need to port to Qt4... !!! FIX !!!"
125 //#if 0
126 //      cbUnit->listBox()->sort();
127 //#endif
128         ui.cbUnit->setInsertPolicy(QComboBox::InsertAtBottom);
129         ui.cbUnit->addItem(RS_Units::unitToString(RS2::None), 0);
130
131         QString def_unit = "Millimeter";
132 #ifdef QC_PREDEFINED_UNIT
133         def_unit = QC_PREDEFINED_UNIT;
134 #endif
135         settings.beginGroup("Defaults");
136 //      ui.cbUnit->setCurrentText(QObject::tr(RS_SETTINGS->readEntry("/Unit", def_unit)));
137 //      ui.cbUnit->setItemText(ui.cbUnit->currentIndex(), QObject::tr(RS_SETTINGS->readEntry("/Unit", def_unit)));
138         ui.cbUnit->setItemText(ui.cbUnit->currentIndex(), (settings.value("Unit", def_unit).toString()));
139         settings.endGroup();
140
141         restartNeeded = false;
142 }
143
144 DlgOptionsGeneral::~DlgOptionsGeneral()
145 {
146 }
147
148 void DlgOptionsGeneral::setRestartNeeded()
149 {
150         restartNeeded = true;
151 }
152
153 void DlgOptionsGeneral::ok()
154 {
155         //RS_SYSTEM->loadTranslation(cbLanguage->currentText());
156         settings.beginGroup("Appearance");
157         settings.setValue("Language", RS_SYSTEM->languageToSymbol(ui.cbLanguage->currentText()));
158         settings.setValue("LanguageCmd", RS_SYSTEM->languageToSymbol(ui.cbLanguageCmd->currentText()));
159         settings.setValue("ShowCrosshairs", ui.cbShowCrosshairs->isChecked());
160         settings.setValue("ScaleGrid", ui.cbScaleGrid->isChecked());
161         settings.setValue("MinGridSpacing", ui.cbMinGridSpacing->currentText());
162         settings.setValue("MaxPreview", ui.cbMaxPreview->currentText());
163         settings.setValue("BackgroundColor", ui.cbBackgroundColor->currentText());
164         settings.setValue("GridColor", ui.cbGridColor->currentText());
165         settings.setValue("MetaGridColor", ui.cbMetaGridColor->currentText());
166         settings.setValue("SelectedColor", ui.cbSelectedColor->currentText());
167         settings.setValue("HighlightedColor", ui.cbHighlightedColor->currentText());
168         settings.setValue("StatusBarFontSize", ui.cbSizeStatus->currentText());
169         settings.endGroup();
170
171         settings.beginGroup("Paths");
172         settings.setValue("Translations", ui.lePathTranslations->text());
173         settings.setValue("Patterns", ui.lePathHatch->text());
174         settings.setValue("Fonts", ui.lePathFonts->text());
175         settings.setValue("Scripts", ui.lePathScripts->text());
176         settings.setValue("Library", ui.lePathLibrary->text());
177         settings.endGroup();
178
179         settings.beginGroup("Defaults");
180         settings.setValue("Unit", RS_Units::unitToString(RS_Units::stringToUnit(ui.cbUnit->currentText()), false/*untr.*/));
181         settings.endGroup();
182
183         if (restartNeeded == true)
184         {
185                 QMessageBox::warning( this, tr("Preferences"),
186                         tr("Please restart the application to apply all changes."), QMessageBox::Ok, Qt::NoButton);
187         }
188
189         accept();
190         //return true;
191 }