summaryrefslogtreecommitdiff
path: root/gtk2_ardour/theme_manager.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-01-21 20:24:39 +0100
committerRobin Gareus <robin@gareus.org>2015-01-21 20:24:39 +0100
commitc7c8cc7dc7555c9e852ff4b667fbcd046517d21c (patch)
treebb7934679c95e22239f91574cf2ab5c9ae4e40f2 /gtk2_ardour/theme_manager.cc
parent0c8947491ae708a66b51abc21b4e864577957ffe (diff)
set Theme buttons on state reset
cleaner version of last commit, set GUI elements on state-reset.
Diffstat (limited to 'gtk2_ardour/theme_manager.cc')
-rw-r--r--gtk2_ardour/theme_manager.cc33
1 files changed, 27 insertions, 6 deletions
diff --git a/gtk2_ardour/theme_manager.cc b/gtk2_ardour/theme_manager.cc
index dfff1c1f15..44389da711 100644
--- a/gtk2_ardour/theme_manager.cc
+++ b/gtk2_ardour/theme_manager.cc
@@ -170,12 +170,7 @@ ThemeManager::ThemeManager()
color_dialog.get_colorsel()->set_has_opacity_control (true);
color_dialog.get_colorsel()->set_has_palette (true);
- flat_buttons.set_active (ARDOUR_UI::config()->get_flat_buttons());
- blink_rec_button.set_active (ARDOUR_UI::config()->get_blink_rec_arm());
- region_color_button.set_active (ARDOUR_UI::config()->get_color_regions_using_track_color());
- show_clipping_button.set_active (ARDOUR_UI::config()->get_show_waveform_clipping());
- waveform_gradient_depth.set_value(ARDOUR_UI::config()->get_waveform_gradient_depth());
- timeline_item_gradient_depth.set_value(ARDOUR_UI::config()->get_timeline_item_gradient_depth());
+ set_ui_to_state();
color_dialog.get_ok_button()->signal_clicked().connect (sigc::bind (sigc::mem_fun (color_dialog, &Gtk::Dialog::response), RESPONSE_ACCEPT));
color_dialog.get_cancel_button()->signal_clicked().connect (sigc::bind (sigc::mem_fun (color_dialog, &Gtk::Dialog::response), RESPONSE_CANCEL));
@@ -347,10 +342,36 @@ ThemeManager::on_light_theme_button_toggled()
}
void
+ThemeManager::set_ui_to_state()
+{
+ /* there is no way these values can change individually
+ * by themselves (w/o user-interaction)
+ * hence a common combined update function suffices
+ */
+
+ if (ARDOUR_UI::config()->get_color_file() == "light") {
+ light_button.set_active(true);
+ } else {
+ dark_button.set_active(true);
+ }
+
+ /* there is no need to block signal handlers, here,
+ * all elements check if the value has changed and ignore NOOPs
+ */
+ flat_buttons.set_active (ARDOUR_UI::config()->get_flat_buttons());
+ blink_rec_button.set_active (ARDOUR_UI::config()->get_blink_rec_arm());
+ region_color_button.set_active (ARDOUR_UI::config()->get_color_regions_using_track_color());
+ show_clipping_button.set_active (ARDOUR_UI::config()->get_show_waveform_clipping());
+ waveform_gradient_depth.set_value(ARDOUR_UI::config()->get_waveform_gradient_depth());
+ timeline_item_gradient_depth.set_value(ARDOUR_UI::config()->get_timeline_item_gradient_depth());
+}
+
+void
ThemeManager::reset_canvas_colors()
{
ARDOUR_UI::config()->load_defaults();
ARDOUR_UI::config()->save_state ();
+ set_ui_to_state();
}
ArdourCanvas::Container*