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