fix initial display of solo-model in monitor section
[ardour.git] / gtk2_ardour / theme_manager.cc
index ac61efa5ec7daafee76a74ec8a146c2cfbde1aca..b800554fb9ad2a0d9ee02248b36d9e40ecb8a50b 100644 (file)
@@ -35,6 +35,7 @@
 #include "theme_manager.h"
 #include "rgb_macros.h"
 #include "ardour_ui.h"
+#include "global_signals.h"
 
 #include "i18n.h"
 
@@ -48,10 +49,10 @@ sigc::signal<void> ColorsChanged;
 sigc::signal<void,uint32_t> ColorChanged;
 
 ThemeManager::ThemeManager()
-       : ArdourDialog ("ThemeManager"),
-       dark_button ("Dark theme"),
-       light_button ("Light theme"),
-       reset_button ("Restore Defaults")
+       : ArdourDialog (_("Theme Manager")),
+         dark_button (_("Dark Theme")),
+         light_button (_("Light Theme")),
+         reset_button (_("Restore Defaults"))
 {
        set_title (_("Theme Manager"));
 
@@ -162,6 +163,7 @@ ThemeManager::button_press_event (GdkEventButton* ev)
 
                                ccvar = (*iter)[columns.pVar];
                                ccvar->set(rgba);
+                               ARDOUR_UI::config()->set_dirty ();
 
                                //ColorChanged (rgba);
                                ColorsChanged();//EMIT SIGNAL
@@ -226,6 +228,7 @@ ThemeManager::on_dark_theme_button_toggled()
        } else {
                ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_dark.rc");
        }
+       ARDOUR_UI::config()->set_dirty ();
 
        load_rc_file (ARDOUR_UI::config()->ui_rc_file.get(), true);
 }
@@ -250,19 +253,20 @@ ThemeManager::setup_theme ()
        int r, g, b, a;
        color_list->clear();
 
-       for (std::vector<UIConfigVariable<uint32_t> *>::iterator i = ARDOUR_UI::config()->canvas_colors.begin(); i != ARDOUR_UI::config()->canvas_colors.end(); i++) {
+       for (std::map<std::string,UIConfigVariable<uint32_t> *>::iterator i = ARDOUR_UI::config()->canvas_colors.begin(); i != ARDOUR_UI::config()->canvas_colors.end(); i++) {
 
                TreeModel::Row row = *(color_list->append());
 
                Gdk::Color col;
-               uint32_t rgba = (*i)->get();
+               UIConfigVariable<uint32_t>* var = i->second;
+               uint32_t rgba = var->get();
                UINT_TO_RGBA (rgba, &r, &g, &b, &a);
                //cerr << (*i)->name() << " == " << hex << rgba << ": " << hex << r << " " << hex << g << " " << hex << b << endl;
                col.set_rgb_p (r / 255.0, g / 255.0, b / 255.0);
 
-               row[columns.name] = (*i)->name();
+               row[columns.name] = var->name();
                row[columns.color] = "";
-               row[columns.pVar] = *i;
+               row[columns.pVar] = var;
                row[columns.rgba] = rgba;
                row[columns.gdkcolor] = col;