summaryrefslogtreecommitdiff
path: root/libs/ardour/globals.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-03-11 12:12:50 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2015-03-11 13:24:47 -0500
commitf9ce27fd6538cc90be0f6908cb321d546d335d20 (patch)
treec6e0cd5b9517932c725b6847fa4d838ed7ccd52d /libs/ardour/globals.cc
parentd563b1173ba319c1f26c656a55ed2507e06e0519 (diff)
global ARDOUR signal to ask GUI to copy configuration files across versions
Diffstat (limited to 'libs/ardour/globals.cc')
-rw-r--r--libs/ardour/globals.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
index 5f98a130b1..6370947652 100644
--- a/libs/ardour/globals.cc
+++ b/libs/ardour/globals.cc
@@ -131,6 +131,7 @@ PBD::Signal1<void,std::string> ARDOUR::BootMessage;
PBD::Signal3<void,std::string,std::string,bool> ARDOUR::PluginScanMessage;
PBD::Signal1<void,int> ARDOUR::PluginScanTimeout;
PBD::Signal0<void> ARDOUR::GUIIdle;
+PBD::Signal2<void,std::string,std::string> ARDOUR::CopyConfigurationFiles;
namespace ARDOUR {
extern void setup_enum_writer ();
@@ -238,6 +239,23 @@ lotsa_files_please ()
#endif
}
+static void
+maybe_copy_old_configuration_files ()
+{
+ int version = atoi (X_(PROGRAM_VERSION));
+
+ if (version <= 1) {
+ return;
+ }
+
+ string old_config_dir = user_config_directory (version-1);
+ string current_config_dir = user_config_directory ();
+
+ if (Glib::file_test (old_config_dir, Glib::FILE_TEST_IS_DIR)) {
+ CopyConfigurationFiles (old_config_dir, current_config_dir); /* EMIT SIGNAL */
+ }
+}
+
bool
ARDOUR::init (bool use_windows_vst, bool try_optimization, const char* localedir)
{
@@ -284,6 +302,8 @@ ARDOUR::init (bool use_windows_vst, bool try_optimization, const char* localedir
// allow ardour the absolute maximum number of open files
lotsa_files_please ();
+ maybe_copy_old_configuration_files ();
+
#ifdef HAVE_LRDF
lrdf_init();
#endif