summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2007-06-27 12:12:38 +0000
committerTim Mayberry <mojofunk@gmail.com>2007-06-27 12:12:38 +0000
commitf9910c90ead69765d277a3711efda0673e3d3f8a (patch)
treee8fa1bc1a72bf28e3f1b8d7366e2a631c890e69b /gtk2_ardour
parent7efe2f0eca562c8d3bece9b4a0e00648cfe8a5c0 (diff)
Move some code from ARDOUR_UI::setup_theme to ThemeManager::setup_theme
git-svn-id: svn://localhost/ardour2/trunk@2059 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui.cc19
-rw-r--r--gtk2_ardour/theme_manager.cc48
2 files changed, 34 insertions, 33 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 9798ff9234..14b491574c 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -1514,25 +1514,6 @@ ARDOUR_UI::do_engine_start ()
void
ARDOUR_UI::setup_theme ()
{
- string rcfile;
- char* env;
-
- if ((env = getenv ("ARDOUR2_UI_RC")) != 0 && strlen (env)) {
- rcfile = env;
- } else {
- rcfile = Config->get_ui_rc_file();
- }
-
- rcfile = find_config_file (rcfile);
-
- if (rcfile.empty()) {
- warning << _("Without a UI style file, ardour will look strange.\n Please set ARDOUR2_UI_RC to point to a valid UI style file") << endmsg;
- } else {
- cerr << "Loading ui configuration file " << rcfile << endl;
- }
-
- load_rcfile(rcfile);
-
theme_manager->setup_theme();
}
diff --git a/gtk2_ardour/theme_manager.cc b/gtk2_ardour/theme_manager.cc
index f920a3d996..fb4cc88550 100644
--- a/gtk2_ardour/theme_manager.cc
+++ b/gtk2_ardour/theme_manager.cc
@@ -173,6 +173,27 @@ ThemeManager::button_press_event (GdkEventButton* ev)
return false;
}
+void
+load_rc_file (const string& filename)
+{
+ sys::path rc_file_path;
+
+ SearchPath spath (ardour_search_path());
+ spath += user_config_directory();
+ spath += system_config_search_path();
+
+ if(!find_file_in_search_path (spath, filename, rc_file_path))
+ {
+ warning << string_compose(_("Unable to find UI style file %1 in search path %2. Ardour will look strange"),
+ filename, spath.get_string())
+ << endmsg;
+ return;
+ }
+
+ info << "Loading ui configuration file " << rc_file_path.to_string() << endmsg;
+
+ Gtkmm2ext::UI::instance()->load_rcfile (rc_file_path.to_string());
+}
void
ThemeManager::load_rc(int which)
@@ -182,13 +203,8 @@ ThemeManager::load_rc(int which)
} else {
Config->set_ui_rc_file("ardour2_ui_light.rc");
}
-
- sys::path rc_file_path;
-
- find_file_in_search_path (ardour_search_path() + system_config_search_path(),
- Config->get_ui_rc_file(), rc_file_path);
- Gtkmm2ext::UI::instance()->load_rcfile (rc_file_path.to_string());
+ load_rc_file (Config->get_ui_rc_file());
}
void
@@ -213,18 +229,22 @@ ThemeManager::setup_theme ()
//cerr << (*i)->name() << " == " << rgba << endl;
}
- cerr << "ThemeManager::setup_theme () called" << endl;
- ColorsChanged(); //EMIT SIGNAL
-
- if (getenv ("ARDOUR2_UI_RC")) {
- return;
+
+ ColorsChanged.emit();
+
+ bool env_defined = false;
+ string rcfile = Glib::getenv("ARDOUR2_UI_RC", env_defined);
+
+ if(!env_defined) {
+ rcfile = Config->get_ui_rc_file();
}
- if (Config->get_ui_rc_file() == "ardour2_ui_dark.rc") {
+ if (rcfile == "ardour2_ui_dark.rc") {
dark_button.set_active();
- } else if (Config->get_ui_rc_file() == "ardour2_ui_light.rc") {
+ } else if (rcfile == "ardour2_ui_light.rc") {
light_button.set_active();
}
-
+
+ load_rc_file(rcfile);
}