@@ -102,6 +102,12 @@ PreferencesDialog::PreferencesDialog(ApplicationSettings *settings, QWidget *par
102102 MapSettingToCheckBox (ui->checkBoxHighlightURLs , &ApplicationSettings::urlHighlighting, &ApplicationSettings::setURLHighlighting, &ApplicationSettings::urlHighlightingChanged);
103103 MapSettingToCheckBox (ui->checkBoxShowLineNumbers , &ApplicationSettings::showLineNumbers, &ApplicationSettings::setShowLineNumbers, &ApplicationSettings::showLineNumbersChanged);
104104
105+ ui->sbpIndentSize ->setValue (settings->indentSize ());
106+ connect (ui->sbpIndentSize , QOverload<int >::of (&QSpinBox::valueChanged), settings, &ApplicationSettings::setIndentSize);
107+ connect (settings, &::ApplicationSettings::fontSizeChanged, ui->sbpIndentSize , &QSpinBox::setValue);
108+
109+ MapSettingToRadioButton (ui->rbTabChar , &ApplicationSettings::tabChar, &ApplicationSettings::setTabChar, &ApplicationSettings::tabCharChanged);
110+ MapSettingToRadioButton (ui->rbSpaceChar , &ApplicationSettings::tabCharSpaces, &ApplicationSettings::setTabCharSpaces, &ApplicationSettings::tabCharSpacesChanged);
105111
106112 QButtonGroup *buttonGroup = new QButtonGroup (this );
107113 buttonGroup->addButton (ui->radioFollowCurrentDirectory , ApplicationSettings::FollowCurrentDocument);
@@ -177,6 +183,17 @@ void PreferencesDialog::MapSettingToGroupBox(QGroupBox *groupBox, Func1 getter,
177183 connect (groupBox, &QGroupBox::toggled, settings, setter);
178184}
179185
186+ template <typename Func1, typename Func2, typename Func3>
187+ void PreferencesDialog::MapSettingToRadioButton (QRadioButton *radioButton, Func1 getter, Func2 setter, Func3 notifier) const
188+ {
189+ // Get the value and set the radiobutton state
190+ radioButton->setChecked (std::bind (getter, settings)());
191+
192+ // Set up two way connection
193+ connect (settings, notifier, radioButton, &QRadioButton::setChecked);
194+ connect (radioButton, &QRadioButton::toggled, settings, setter);
195+ }
196+
180197void PreferencesDialog::populateTranslationComboBox ()
181198{
182199 NotepadNextApplication *app = qobject_cast<NotepadNextApplication *>(qApp);
0 commit comments