X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fui_config.cc;h=17ba896f1f92f938a8c0e5ed323e368dd212eec6;hb=d7deaa21bb78222e25b820c9583942a47dbc8fac;hp=1f1f25f239f9ccf6533a4ad474a43a97868cdeb1;hpb=79f91c7a205d981d2b8cc15e32a6da02d8423065;p=ardour.git diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc index 1f1f25f239..17ba896f1f 100644 --- a/gtk2_ardour/ui_config.cc +++ b/gtk2_ardour/ui_config.cc @@ -18,6 +18,7 @@ */ #include +#include #include /* for snprintf, grrr */ #include @@ -28,6 +29,8 @@ #include "pbd/file_utils.h" #include "pbd/error.h" +#include "gtkmm2ext/rgb_macros.h" + #include "ardour/ardour.h" #include "ardour/filesystem_paths.h" @@ -49,7 +52,7 @@ UIConfiguration::UIConfiguration () #include "canvas_vars.h" #undef UI_CONFIG_VARIABLE #undef CANVAS_VARIABLE - hack(true) + _dirty (false) { load_state(); } @@ -71,26 +74,29 @@ UIConfiguration::load_defaults () } else { rcfile = "ardour3_ui_default.conf"; } - if ( !find_file_in_search_path (ardour_search_path() + system_config_search_path(), - rcfile, default_ui_rc_file) ) - { + + if (find_file_in_search_path (ardour_search_path() + system_config_search_path(), + rcfile, default_ui_rc_file) ) { XMLTree tree; found = 1; string rcfile = default_ui_rc_file.to_string(); - cerr << string_compose (_("Loading default ui configuration file %1"), rcfile) << endl; + info << string_compose (_("Loading default ui configuration file %1"), rcfile) << endl; if (!tree.read (rcfile.c_str())) { - error << string_compose(_("Ardour: cannot read default ui configuration file \"%1\""), rcfile) << endmsg; + error << string_compose(_("cannot read default ui configuration file \"%1\""), rcfile) << endmsg; return -1; } - if (set_state (*tree.root())) { - error << string_compose(_("Ardour: default ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; + if (set_state (*tree.root(), Stateful::loading_state_version)) { + error << string_compose(_("default ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; return -1; } + + _dirty = false; } + return found; } @@ -102,22 +108,21 @@ UIConfiguration::load_state () sys::path default_ui_rc_file; if ( find_file_in_search_path (ardour_search_path() + system_config_search_path(), - "ardour3_ui_default.conf", default_ui_rc_file) ) - { + "ardour3_ui_default.conf", default_ui_rc_file) ) { XMLTree tree; found = true; string rcfile = default_ui_rc_file.to_string(); - cerr << string_compose (_("Loading default ui configuration file %1"), rcfile) << endl; + info << string_compose (_("Loading default ui configuration file %1"), rcfile) << endl; if (!tree.read (rcfile.c_str())) { - error << string_compose(_("Ardour: cannot read default ui configuration file \"%1\""), rcfile) << endmsg; + error << string_compose(_("cannot read default ui configuration file \"%1\""), rcfile) << endmsg; return -1; } - if (set_state (*tree.root())) { - error << string_compose(_("Ardour: default ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; + if (set_state (*tree.root(), Stateful::loading_state_version)) { + error << string_compose(_("default ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; return -1; } } @@ -125,30 +130,32 @@ UIConfiguration::load_state () sys::path user_ui_rc_file; if (find_file_in_search_path (ardour_search_path() + user_config_directory(), - "ardour3_ui.conf", user_ui_rc_file)) - { + "ardour3_ui.conf", user_ui_rc_file)) { XMLTree tree; found = true; string rcfile = user_ui_rc_file.to_string(); - cerr << string_compose (_("Loading user ui configuration file %1"), rcfile) << endl; + info << string_compose (_("Loading user ui configuration file %1"), rcfile) << endmsg; if (!tree.read (rcfile)) { - error << string_compose(_("Ardour: cannot read ui configuration file \"%1\""), rcfile) << endmsg; + error << string_compose(_("cannot read ui configuration file \"%1\""), rcfile) << endmsg; return -1; } - if (set_state (*tree.root())) { - error << string_compose(_("Ardour: user ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; + if (set_state (*tree.root(), Stateful::loading_state_version)) { + error << string_compose(_("user ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; return -1; } + + _dirty = false; } if (!found) - error << "Ardour: could not find any ui configuration file, canvas will look broken." << endmsg; + error << _("could not find any ui configuration file, canvas will look broken.") << endmsg; pack_canvasvars(); + return 0; } @@ -179,6 +186,8 @@ UIConfiguration::save_state() } } + _dirty = false; + return 0; } @@ -221,12 +230,14 @@ UIConfiguration::get_variables (std::string which_node) } int -UIConfiguration::set_state (const XMLNode& root, int version) +UIConfiguration::set_state (const XMLNode& root, int /*version*/) { if (root.name() != "Ardour") { return -1; } + Stateful::save_extra_xml (root); + XMLNodeList nlist = root.children(); XMLNodeConstIterator niter; XMLNode *node; @@ -234,14 +245,13 @@ UIConfiguration::set_state (const XMLNode& root, int version) for (niter = nlist.begin(); niter != nlist.end(); ++niter) { node = *niter; + if (node->name() == "Canvas" || node->name() == "UI") { set_variables (*node); - } else if (node->name() == "Extra") { - _extra_xml = new XMLNode (*node); - } } + return 0; } @@ -268,9 +278,32 @@ void UIConfiguration::pack_canvasvars () { #undef CANVAS_VARIABLE -#define CANVAS_VARIABLE(var,name) canvas_colors.push_back(&var); +#define CANVAS_VARIABLE(var,name) canvas_colors.insert (std::pair* >(name,&var)); #include "canvas_vars.h" #undef CANVAS_VARIABLE } +uint32_t +UIConfiguration::color_by_name (const std::string& name) +{ + map* >::iterator i = canvas_colors.find (name); + + if (i != canvas_colors.end()) { + return i->second->get(); + } + // cerr << string_compose (_("Color %1 not found"), name) << endl; + return RGBA_TO_UINT (random()%256,random()%256,random()%256,0xff); +} + +void +UIConfiguration::set_dirty () +{ + _dirty = true; +} + +bool +UIConfiguration::dirty () const +{ + return _dirty; +}