X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fui_config.cc;h=86f03bbd95ad5c4c9ab755c394bddc78f962f17f;hb=8630fd1703acb2f9a36d6db7e0d18963b461614f;hp=10628334fdae605d9ba51e3852f80dfc970eb646;hpb=106024330230fca331e2f611fec42ec1f4f43e5a;p=ardour.git diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc index 10628334fd..86f03bbd95 100644 --- a/gtk2_ardour/ui_config.cc +++ b/gtk2_ardour/ui_config.cc @@ -18,17 +18,18 @@ */ #include +#include #include /* for snprintf, grrr */ #include #include "pbd/failed_constructor.h" #include "pbd/xml++.h" -#include "pbd/filesystem.h" #include "pbd/file_utils.h" #include "pbd/error.h" -#include "ardour/ardour.h" +#include "gtkmm2ext/rgb_macros.h" + #include "ardour/filesystem_paths.h" #include "ui_config.h" @@ -49,7 +50,7 @@ UIConfiguration::UIConfiguration () #include "canvas_vars.h" #undef UI_CONFIG_VARIABLE #undef CANVAS_VARIABLE - hack(true) + _dirty (false) { load_state(); } @@ -63,7 +64,7 @@ UIConfiguration::load_defaults () { int found = 0; - sys::path default_ui_rc_file; + std::string default_ui_rc_file; std::string rcfile; if (getenv ("ARDOUR_SAE")) { @@ -72,13 +73,11 @@ UIConfiguration::load_defaults () 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_config_search_path(), rcfile, default_ui_rc_file) ) { XMLTree tree; found = 1; - string rcfile = default_ui_rc_file.to_string(); + string rcfile = default_ui_rc_file; info << string_compose (_("Loading default ui configuration file %1"), rcfile) << endl; @@ -91,6 +90,8 @@ UIConfiguration::load_defaults () error << string_compose(_("default ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; return -1; } + + _dirty = false; } return found; @@ -101,15 +102,13 @@ UIConfiguration::load_state () { bool found = false; - sys::path default_ui_rc_file; + std::string 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) ) - { + if ( find_file_in_search_path (ardour_config_search_path(), "ardour3_ui_default.conf", default_ui_rc_file)) { XMLTree tree; found = true; - string rcfile = default_ui_rc_file.to_string(); + string rcfile = default_ui_rc_file; info << string_compose (_("Loading default ui configuration file %1"), rcfile) << endl; @@ -124,15 +123,13 @@ UIConfiguration::load_state () } } - sys::path user_ui_rc_file; + std::string user_ui_rc_file; - if (find_file_in_search_path (ardour_search_path() + user_config_directory(), - "ardour3_ui.conf", user_ui_rc_file)) - { + if (find_file_in_search_path (ardour_config_search_path(), "ardour3_ui.conf", user_ui_rc_file)) { XMLTree tree; found = true; - string rcfile = user_ui_rc_file.to_string(); + string rcfile = user_ui_rc_file; info << string_compose (_("Loading user ui configuration file %1"), rcfile) << endmsg; @@ -145,12 +142,15 @@ UIConfiguration::load_state () error << string_compose(_("user ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; return -1; } + + _dirty = false; } if (!found) error << _("could not find any ui configuration file, canvas will look broken.") << endmsg; pack_canvasvars(); + return 0; } @@ -159,18 +159,8 @@ UIConfiguration::save_state() { XMLTree tree; - try { - sys::create_directories (user_config_directory ()); - } - catch (const sys::filesystem_error& ex) { - error << "Could not create user configuration directory" << endmsg; - return -1; - } - - sys::path rcfile_path(user_config_directory()); - - rcfile_path /= "ardour3_ui.conf"; - const string rcfile = rcfile_path.to_string(); + std::string rcfile(user_config_directory()); + rcfile = Glib::build_filename (rcfile, "ardour3_ui.conf"); // this test seems bogus? if (rcfile.length()) { @@ -181,6 +171,8 @@ UIConfiguration::save_state() } } + _dirty = false; + return 0; } @@ -244,6 +236,7 @@ UIConfiguration::set_state (const XMLNode& root, int /*version*/) } } + return 0; } @@ -270,9 +263,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; +}