1 // dlgoptionsgeneral.cpp
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
8 // JLH = James L. Hammons <jlhamm@acm.org>
11 // --- ---------- -----------------------------------------------------------
12 // JLH 05/18/2010 Added this text. :-)
15 #include "dlgoptionsgeneral.h"
20 #include "rs_system.h"
23 DlgOptionsGeneral::DlgOptionsGeneral(QWidget * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
24 QDialog(parent, flags)
28 #ifdef QC_PREDEFINED_LOCALE
30 Widget9Layout->addMultiCellWidget(bgGraphicView, 0, 2, 0, 0); //use empty space as well
32 // Fill combobox with languages:
33 QStringList languageList = RS_SYSTEM->getLanguageList();
34 languageList.prepend("en");
36 for(QStringList::Iterator it=languageList.begin(); it!=languageList.end(); it++)
38 RS_DEBUG->print("DlgOptionsGeneral::init: adding %s to combobox", (*it).toLatin1().data());
40 QString l = RS_SYSTEM->symbolToLanguage(*it);
42 if (l.isEmpty() == false)
44 RS_DEBUG->print("DlgOptionsGeneral::init: %s", l.toLatin1().data());
45 ui.cbLanguage->addItem(l);
46 ui.cbLanguageCmd->addItem(l);
50 settings.beginGroup("Appearance");
52 // set current language:
53 QString def_lang = "en";
54 #ifdef QC_PREDEFINED_LOCALE
55 def_lang = QC_PREDEFINED_LOCALE;
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));
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));
67 bool showCrosshairs = settings.value("ShowCrosshairs", true).toBool();
68 ui.cbShowCrosshairs->setChecked(showCrosshairs);
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);
78 QString maxPreview = settings.value("MaxPreview", "100").toString();
79 // ui.cbMaxPreview->setCurrentText(maxPreview);
80 ui.cbMaxPreview->setItemText(ui.cbMaxPreview->currentIndex(), maxPreview);
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);
100 QString sizeStatus = settings.value("StatusBarFontSize", "9").toString();
101 // ui.cbSizeStatus->setCurrentText(sizeStatus);
102 ui.cbSizeStatus->setItemText(ui.cbSizeStatus->currentIndex(), sizeStatus);
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());
114 ui.cbUnit->setInsertPolicy(QComboBox::InsertAlphabetically);
117 for(int i=RS2::None; i<RS2::LastUnit; i++)
119 if (i != (int)RS2::None)
120 ui.cbUnit->addItem(RS_Units::unitToString((RS2::Unit)i));
124 //#warning "Need to port to Qt4... !!! FIX !!!"
126 // cbUnit->listBox()->sort();
128 ui.cbUnit->setInsertPolicy(QComboBox::InsertAtBottom);
129 ui.cbUnit->addItem(RS_Units::unitToString(RS2::None), 0);
131 QString def_unit = "Millimeter";
132 #ifdef QC_PREDEFINED_UNIT
133 def_unit = QC_PREDEFINED_UNIT;
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()));
141 restartNeeded = false;
144 DlgOptionsGeneral::~DlgOptionsGeneral()
148 void DlgOptionsGeneral::setRestartNeeded()
150 restartNeeded = true;
153 void DlgOptionsGeneral::ok()
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());
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());
179 settings.beginGroup("Defaults");
180 settings.setValue("Unit", RS_Units::unitToString(RS_Units::stringToUnit(ui.cbUnit->currentText()), false/*untr.*/));
183 if (restartNeeded == true)
185 QMessageBox::warning( this, tr("Preferences"),
186 tr("Please restart the application to apply all changes."), QMessageBox::Ok, Qt::NoButton);