[med-svn] [SCM] aghermann branch, master, updated. 6da4097099d8c9a4899b0dd94727010588b26301

Andrei Zavada johnhommer at gmail.com
Sat Dec 15 17:31:33 UTC 2012


The following commit has been merged in the master branch:
commit 49e975d15913007c612925f6021317ee93205e06
Author: Andrei Zavada <johnhommer at gmail.com>
Date:   Sat Dec 15 16:40:55 2012 +0200

    save last_used_version in .expdesign.conf, purge cached profiles before tree_scan on upgrade

diff --git a/ChangeLog b/ChangeLog
index c26a846..daa4acd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+v.0.7.6 (2012-12-xx)
+	* Don't forget to save some .expdesign.conf settings.
+	* Purge cached profiles on version upgrade.
+
 v.0.7.5.1 (2012-12-04)
 	* Fix Ububtu build.
 v.0.7.5 (2012-12-04)
diff --git a/src/expdesign/loadsave.cc b/src/expdesign/loadsave.cc
index 4fe7dd5..4bc62f8 100644
--- a/src/expdesign/loadsave.cc
+++ b/src/expdesign/loadsave.cc
@@ -46,6 +46,7 @@ load_settings()
 		get( config_keys_z, conf);
 		get( config_keys_g, conf);
 		get( config_keys_b, conf);
+		get( config_keys_s, conf);
 
 		for ( size_t t = 0; t < ach::TTunable::_basic_tunables; ++t ) {
 			auto& A = conf.lookup(string("tunable.") + ach::tunable_name(t));
@@ -105,6 +106,7 @@ agh::CExpDesign::save_settings()
 	confval::put( config_keys_d, conf);
 	confval::put( config_keys_g, conf);
 	confval::put( config_keys_b, conf);
+	confval::put( config_keys_s, conf);
 	confval::put( config_keys_z, conf);
 
       // only save _agh_basic_tunables_
diff --git a/src/expdesign/primaries.cc b/src/expdesign/primaries.cc
index 4c44647..6724484 100644
--- a/src/expdesign/primaries.cc
+++ b/src/expdesign/primaries.cc
@@ -76,6 +76,9 @@ CExpDesign (const string& session_dir_,
 		confval::SValidator<bool>("ctl_param.AZAmendment2",	&ctl_params0.AZAmendment2),
 		confval::SValidator<bool>("profile.score_unscored_as_wake",
 					  				&score_unscored_as_wake),
+	}),
+	config_keys_s ({
+		confval::SValidator<string>("LastUsedVersion",			&last_used_version),
 	})
 {
 	char *tmp = canonicalize_file_name(session_dir_.c_str());
@@ -106,6 +109,11 @@ CExpDesign (const string& session_dir_,
 	omp_set_num_threads( (num_threads == 0) ? agh::global::num_procs : num_threads);
 	printf( "SMP enabled with %d threads\n", omp_get_max_threads());
 #endif
+	if ( last_used_version != VERSION ) {
+		printf( "Purging old files as we are upgrading from version %s to %s\n", last_used_version.c_str(), VERSION);
+	}
+	last_used_version = VERSION;
+
 	scan_tree( progress_fun);
 }
 
@@ -573,4 +581,17 @@ sync()
 }
 
 
+
+int
+agh::CExpDesign::
+purge_cached_profiles()
+{
+	DEF_UNIQUE_CHARP (b);
+	ASPRINTF( &b, "find '%s' \\( -name '.*.psd' -or -name '.*.mc' -or -name '.*.swu' \\) -delete",
+		  session_dir().c_str());
+	return system( b);
+}
+
+
+
 // eof
diff --git a/src/expdesign/primaries.hh b/src/expdesign/primaries.hh
index 401bcae..94801b3 100644
--- a/src/expdesign/primaries.hh
+++ b/src/expdesign/primaries.hh
@@ -444,6 +444,9 @@ class CExpDesign {
 	int load_settings();
 	int save_settings();
 
+	string	last_used_version;
+	int purge_cached_profiles();
+
     private:
 	enum TStateFlags {
 		ok = 0,
@@ -462,6 +465,7 @@ class CExpDesign {
 	forward_list<confval::SValidator<int>>		config_keys_d;
 	forward_list<confval::SValidator<size_t>>	config_keys_z;
 	forward_list<confval::SValidator<bool>>		config_keys_b;
+	forward_list<confval::SValidator<string>>	config_keys_s;
 };
 
 
diff --git a/src/ui/mw/mw-populate.cc b/src/ui/mw/mw-populate.cc
index 08ddab6..544fabe 100644
--- a/src/ui/mw/mw-populate.cc
+++ b/src/ui/mw/mw-populate.cc
@@ -72,10 +72,9 @@ populate( bool do_load)
 
 	gtk_window_set_title( wMainWindow,
 			      (string ("Aghermann: ") + agh::str::homedir2tilda( ED->session_dir())).c_str());
-	if ( last_used_version != VERSION ) {
-		printf( "Upgrading from version %s, here's ChangeLog for you\n", last_used_version.c_str());
+	if ( ED->last_used_version != VERSION ) {
+		printf( "Upgrading from version %s, here's ChangeLog for you\n", ED->last_used_version.c_str());
 		show_changelog();
-		last_used_version = VERSION;
 	}
 
 	snprintf_buf( "Smooth: %zu", smooth_profile);
diff --git a/src/ui/mw/mw.cc b/src/ui/mw/mw.cc
index 460c2f0..e3079de 100644
--- a/src/ui/mw/mw.cc
+++ b/src/ui/mw/mw.cc
@@ -171,7 +171,6 @@ SExpDesignUI (aghui::SSessionChooser *parent,
 		confval::SValidator<string>("Common.CurrentSession",		&_aghdd_placeholder),
 		confval::SValidator<string>("Common.CurrentChannel",		&_aghtt_placeholder),
 		confval::SValidator<string>("Measurements.BrowseCommand",	&browse_command),
-		confval::SValidator<string>("LastUsedVersion",			&last_used_version),
 	}),
 	config_keys_d ({
 		confval::SValidator<int>("Measurements.DisplayProfileMode",	(int*)&display_profile_type,			confval::SValidator<int>::SVFRangeIn ( 0,   1)),
@@ -422,9 +421,7 @@ do_purge_computed()
 {
 	aghui::SBusyBlock bb (wMainWindow);
 
-	snprintf_buf( "find '%s' \\( -name '.*.psd' -or -name '.*.mc' -or -name '.*.swu' \\) -delete",
-		      ED->session_dir().c_str());
-	if ( system( __buf__) ) {
+	if ( ED->purge_cached_profiles() ) {
 		fprintf( stderr, "Command '%s' returned a non-zero status. This is suspicious.\n", __buf__);
 		gtk_statusbar_pop( sbMainStatusBar, sbMainContextIdGeneral);
 		gtk_statusbar_push( sbMainStatusBar, sbMainContextIdGeneral,
diff --git a/src/ui/mw/mw.hh b/src/ui/mw/mw.hh
index c2d51f6..9390cf5 100644
--- a/src/ui/mw/mw.hh
+++ b/src/ui/mw/mw.hh
@@ -150,7 +150,6 @@ class SExpDesignUI
 		nodestroy_by_cb:1;
 
       // populate
-	string	last_used_version;
 	void show_changelog();
 
 	int populate( bool do_load);

-- 
Sleep experiment manager



More information about the debian-med-commit mailing list