1 #include "initConfig.h"
2 #include <QSettings>
3 #include "settings.h"
4 
InitConfigurator()5 InitConfigurator::InitConfigurator() {}
6 
initCheckBox(const BlockSignals<QCheckBox * > & checkBox,const Settings::SettingsEntry & entry)7 void InitConfigurator::initCheckBox(const BlockSignals<QCheckBox *> &checkBox,const Settings::SettingsEntry &entry)
8 {
9 	const Settings::Settings *s = Settings::Settings::inst();
10 	checkBox->setChecked(s->get(entry).toBool());
11 }
12 
initComboBox(QComboBox * comboBox,const Settings::SettingsEntry & entry)13 void InitConfigurator::initComboBox(QComboBox *comboBox, const Settings::SettingsEntry &entry)
14 {
15 	comboBox->clear();
16 	// Range is a vector of 2D vectors: [[name, value], ...]
17 	for (const auto &v : entry.range().toVector()) {
18 		QString val = QString::fromStdString(v[0].toString());
19 		QString qtext = QString::fromStdString(gettext(v[1].toString().c_str()));
20 		comboBox->addItem(qtext, val);
21 	}
22 }
23 
initSpinBoxRange(const BlockSignals<QSpinBox * > & spinBox,const Settings::SettingsEntry & entry)24 void InitConfigurator::initSpinBoxRange(const BlockSignals<QSpinBox *> &spinBox,const Settings::SettingsEntry &entry)
25 {
26 	const RangeType &range = entry.range().toRange();
27 	spinBox->setMinimum(range.begin_value());
28 	spinBox->setMaximum(range.end_value());
29 }
30 
initSpinBoxDouble(const BlockSignals<QSpinBox * > & spinBox,const Settings::SettingsEntry & entry)31 void InitConfigurator::initSpinBoxDouble(const BlockSignals<QSpinBox *> &spinBox,const Settings::SettingsEntry &entry)
32 {
33 	const Settings::Settings *s = Settings::Settings::inst();
34 	spinBox->setValue(s->get(entry).toDouble());
35 }
36 
updateComboBox(const BlockSignals<QComboBox * > & comboBox,const Settings::SettingsEntry & entry)37 void InitConfigurator::updateComboBox(const BlockSignals<QComboBox *> &comboBox,const Settings::SettingsEntry &entry)
38 {
39 	Settings::Settings *s = Settings::Settings::inst();
40 
41 	const Value &value = s->get(entry);
42 	QString text = QString::fromStdString(value.toString());
43 	int idx = comboBox->findData(text);
44 	if (idx >= 0) {
45 		comboBox->setCurrentIndex(idx);
46 	}
47 	else {
48 		const Value &defaultValue = entry.defaultValue();
49 		QString defaultText = QString::fromStdString(defaultValue.toString());
50 		int defIdx = comboBox->findData(defaultText);
51 		if (defIdx >= 0) {
52 			comboBox->setCurrentIndex(defIdx);
53 		}
54 		else {
55 			comboBox->setCurrentIndex(0);
56 		}
57 	}
58 }
59 
initDoubleSpinBox(QDoubleSpinBox * spinBox,const Settings::SettingsEntry & entry)60 void InitConfigurator::initDoubleSpinBox(QDoubleSpinBox *spinBox,const Settings::SettingsEntry &entry)
61 {
62 	Settings::Settings *s = Settings::Settings::inst();
63 
64 	const RangeType &range = entry.range().toRange();
65 	spinBox->blockSignals(true);
66 	spinBox->setMinimum(range.begin_value());
67 	spinBox->setSingleStep(range.step_value());
68 	spinBox->setMaximum(range.end_value());
69 	spinBox->setValue((double)s->get(entry).toDouble());
70 	spinBox->blockSignals(false);
71 }
72 
73