X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fui_config.cc;h=b61ef1b5516b0c24e0b408406f21cd6472b1eb39;hb=b461bc1dc1970a9e147c43a721d3155f6215f8c7;hp=13db1f88036983ce2c48ef22ba08e747147450c3;hpb=bb457bb960c5bd7ed538f9d31477293415739f68;p=ardour.git diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc index 13db1f8803..b61ef1b551 100644 --- a/gtk2_ardour/ui_config.cc +++ b/gtk2_ardour/ui_config.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 1999-2006 Paul Davis + Copyright (C) 1999-2006 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,14 +20,16 @@ #include #include /* for snprintf, grrr */ -#include -#include -#include -#include -#include +#include -#include -#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 "ardour/filesystem_paths.h" #include "ui_config.h" @@ -56,30 +58,68 @@ UIConfiguration::~UIConfiguration () { } +int +UIConfiguration::load_defaults () +{ + int found = 0; + + sys::path default_ui_rc_file; + std::string rcfile; + + if (getenv ("ARDOUR_SAE")) { + rcfile = "ardour3_ui_sae.conf"; + } else { + rcfile = "ardour3_ui_default.conf"; + } + + 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(); + + info << string_compose (_("Loading default ui configuration file %1"), rcfile) << endl; + + if (!tree.read (rcfile.c_str())) { + error << string_compose(_("cannot read default ui configuration file \"%1\""), rcfile) << endmsg; + return -1; + } + + if (set_state (*tree.root(), Stateful::loading_state_version)) { + error << string_compose(_("default ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; + return -1; + } + } + + return found; +} + int UIConfiguration::load_state () { bool found = false; sys::path default_ui_rc_file; - + if ( find_file_in_search_path (ardour_search_path() + system_config_search_path(), - "ardour2_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; } } @@ -87,28 +127,28 @@ UIConfiguration::load_state () sys::path user_ui_rc_file; if (find_file_in_search_path (ardour_search_path() + user_config_directory(), - "ardour2_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; } } 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; @@ -119,19 +159,17 @@ UIConfiguration::save_state() { XMLTree tree; - try - { + try { sys::create_directories (user_config_directory ()); } - catch (const sys::filesystem_error& ex) - { + 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 /= "ardour2_ui.conf"; + rcfile_path /= "ardour3_ui.conf"; const string rcfile = rcfile_path.to_string(); // this test seems bogus? @@ -153,14 +191,14 @@ UIConfiguration::get_state () LocaleGuard lg (X_("POSIX")); root = new XMLNode("Ardour"); - + root->add_child_nocopy (get_variables ("UI")); root->add_child_nocopy (get_variables ("Canvas")); - + if (_extra_xml) { root->add_child_copy (*_extra_xml); } - + return *root; } @@ -185,7 +223,7 @@ UIConfiguration::get_variables (std::string which_node) } int -UIConfiguration::set_state (const XMLNode& root) +UIConfiguration::set_state (const XMLNode& root, int /*version*/) { if (root.name() != "Ardour") { return -1; @@ -201,7 +239,7 @@ UIConfiguration::set_state (const XMLNode& root) if (node->name() == "Canvas" || node->name() == "UI") { set_variables (*node); - } else if (node->name() == "extra") { + } else if (node->name() == "Extra") { _extra_xml = new XMLNode (*node); } @@ -232,7 +270,7 @@ void UIConfiguration::pack_canvasvars () { #undef CANVAS_VARIABLE -#define CANVAS_VARIABLE(var,name) canvas_colors.push_back(&var); +#define CANVAS_VARIABLE(var,name) canvas_colors.push_back(&var); #include "canvas_vars.h" #undef CANVAS_VARIABLE }