diff --git a/src/ui/widget/preferences-widget.cpp b/src/ui/widget/preferences-widget.cpp index 16c73f91cfa8e2a68c401ad860c378081fa6b476..11748d932101cf08f879768ac08b85e3cc3a8550 100644 --- a/src/ui/widget/preferences-widget.cpp +++ b/src/ui/widget/preferences-widget.cpp @@ -220,11 +220,17 @@ PrefRadioButtons::PrefRadioButtons(const std::vector& buttons, const G auto* btn = Gtk::make_managed(); btn->init(item.label, prefs_path, item.int_value, item.is_default, group); btn->set_tooltip_text(item.tooltip); + btn->changed_signal.connect([=, this](bool active) { if (active) PrefRadioButtons::on_changed(item.int_value); }); append(*btn); if (!group) group = btn; } } +void PrefRadioButtons::on_changed(int value) +{ + changed_signal.emit(value); +} + void PrefSpinButton::init(Glib::ustring const &prefs_path, double lower, double upper, double step_increment, double /*page_increment*/, double default_value, bool is_int, bool is_percent) diff --git a/src/ui/widget/preferences-widget.h b/src/ui/widget/preferences-widget.h index 443beac31b2c19b22146ef6afb10bdaf4891d8c5..7ad34691e6efd308d0904db77bb1e17d7f26ca50 100644 --- a/src/ui/widget/preferences-widget.h +++ b/src/ui/widget/preferences-widget.h @@ -81,6 +81,10 @@ struct PrefItem { Glib::ustring label; int int_value; Glib::ustring tooltip; boo class PrefRadioButtons : public Gtk::Box { public: PrefRadioButtons(const std::vector& buttons, const Glib::ustring& prefs_path); + sigc::signal changed_signal; + +private: + void on_changed(int value); }; class PrefSpinButton : public SpinButton