[med-svn] [SCM] aghermann branch, master, updated. 06bda7dfaa687aaf0708a024d192024e2cd58421

Andrei Zavada johnhommer at gmail.com
Thu Jan 24 00:44:00 UTC 2013


The following commit has been merged in the master branch:
commit 06bda7dfaa687aaf0708a024d192024e2cd58421
Author: Andrei Zavada <johnhommer at gmail.com>
Date:   Thu Jan 24 02:43:11 2013 +0200

    now fixing bugs in patterns

diff --git a/data/sf-patterns.glade b/data/sf-patterns.glade
index 7a1be6c..31201bb 100644
--- a/data/sf-patterns.glade
+++ b/data/sf-patterns.glade
@@ -1,90 +1,90 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
-  <object class="GtkMenu" id="iiSFFDField">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <child>
-      <object class="GtkMenuItem" id="menuitem4">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="label" translatable="yes">menuitem4</property>
-        <property name="use_underline">True</property>
-      </object>
-    </child>
-  </object>
-  <object class="GtkAdjustment" id="jPatternBandPassFrom">
-    <property name="upper">8</property>
-    <property name="value">0.25</property>
-    <property name="step_increment">0.25</property>
-    <property name="page_increment">1</property>
-  </object>
-  <object class="GtkAdjustment" id="jPatternBandPassOrder">
+  <object class="GtkAdjustment" id="jSFFDBandPassOrder">
     <property name="lower">1</property>
     <property name="upper">5</property>
     <property name="value">1</property>
     <property name="step_increment">1</property>
     <property name="page_increment">10</property>
   </object>
-  <object class="GtkAdjustment" id="jPatternBandPassUpto">
+  <object class="GtkAdjustment" id="jSFFDBandPassUpto">
     <property name="upper">100</property>
     <property name="value">1.5</property>
     <property name="step_increment">0.25</property>
     <property name="page_increment">1</property>
   </object>
-  <object class="GtkAdjustment" id="jPatternDZCDFSigma">
-    <property name="lower">0.01</property>
-    <property name="upper">10</property>
-    <property name="step_increment">0.01</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkAdjustment" id="jPatternDZCDFSmooth">
-    <property name="upper">12</property>
-    <property name="value">1</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">3</property>
-  </object>
-  <object class="GtkAdjustment" id="jPatternDZCDFStep">
-    <property name="lower">0.10000000000000001</property>
-    <property name="upper">5</property>
-    <property name="step_increment">0.10000000000000001</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkAdjustment" id="jPatternEnvTightness">
-    <property name="lower">0.050000000000000003</property>
-    <property name="upper">20</property>
-    <property name="value">0.25</property>
-    <property name="step_increment">0.01</property>
-    <property name="page_increment">5</property>
-  </object>
-  <object class="GtkAdjustment" id="jPatternStrictnessA">
+  <object class="GtkAdjustment" id="jSFFDCriterionA">
     <property name="lower">0.01</property>
     <property name="upper">100</property>
     <property name="value">0.10000000000000001</property>
     <property name="step_increment">0.01</property>
     <property name="page_increment">1</property>
   </object>
-  <object class="GtkAdjustment" id="jPatternStrictnessB">
+  <object class="GtkAdjustment" id="jSFFDCriterionB">
     <property name="lower">0.01</property>
     <property name="upper">100</property>
     <property name="value">0.10000000000000001</property>
     <property name="step_increment">0.01</property>
     <property name="page_increment">1</property>
   </object>
-  <object class="GtkAdjustment" id="jPatternStrictnessC">
+  <object class="GtkAdjustment" id="jSFFDCriterionC">
     <property name="lower">0.01</property>
     <property name="upper">100</property>
     <property name="value">0.10000000000000001</property>
     <property name="step_increment">0.010000003501772881</property>
     <property name="page_increment">1</property>
   </object>
-  <object class="GtkAdjustment" id="jPatternStrictnessD">
+  <object class="GtkAdjustment" id="jSFFDCriterionD">
     <property name="lower">0.01</property>
     <property name="upper">2</property>
     <property name="value">0.10000000000000001</property>
     <property name="step_increment">0.01</property>
     <property name="page_increment">0.10000000000000001</property>
   </object>
+  <object class="GtkAdjustment" id="jSFFDDZCDFSigma">
+    <property name="lower">0.01</property>
+    <property name="upper">10</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="jSFFDDZCDFSmooth">
+    <property name="upper">12</property>
+    <property name="value">1</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">3</property>
+  </object>
+  <object class="GtkAdjustment" id="jSFFDDZCDFStep">
+    <property name="lower">0.10000000000000001</property>
+    <property name="upper">5</property>
+    <property name="step_increment">0.10000000000000001</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="jSFFDEnvTightness">
+    <property name="lower">0.050000000000000003</property>
+    <property name="upper">20</property>
+    <property name="value">0.25</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkMenu" id="iiSFFDField">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkMenuItem" id="menuitem4">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">menuitem4</property>
+        <property name="use_underline">True</property>
+      </object>
+    </child>
+  </object>
+  <object class="GtkAdjustment" id="jSFFDBandPassFrom">
+    <property name="upper">8</property>
+    <property name="value">0.25</property>
+    <property name="step_increment">0.25</property>
+    <property name="page_increment">1</property>
+  </object>
   <object class="GtkDialog" id="wSFFD">
     <property name="can_focus">False</property>
     <property name="border_width">10</property>
@@ -398,6 +398,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDDZCDFSigma</property>
                             <property name="digits">2</property>
                             <property name="numeric">True</property>
                           </object>
@@ -421,6 +422,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDBandPassFrom</property>
                             <property name="digits">2</property>
                             <property name="numeric">True</property>
                           </object>
@@ -503,6 +505,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDBandPassOrder</property>
                             <property name="snap_to_ticks">True</property>
                             <property name="numeric">True</property>
                           </object>
@@ -589,6 +592,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDDZCDFStep</property>
                             <property name="digits">2</property>
                             <property name="numeric">True</property>
                           </object>
@@ -662,6 +666,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDEnvTightness</property>
                             <property name="digits">2</property>
                             <property name="snap_to_ticks">True</property>
                             <property name="numeric">True</property>
@@ -746,6 +751,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDDZCDFSmooth</property>
                             <property name="snap_to_ticks">True</property>
                             <property name="numeric">True</property>
                           </object>
@@ -801,6 +807,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDBandPassUpto</property>
                             <property name="digits">2</property>
                             <property name="numeric">True</property>
                           </object>
@@ -874,6 +881,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDCriterionA</property>
                             <property name="digits">2</property>
                             <property name="numeric">True</property>
                           </object>
@@ -918,6 +926,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDCriterionB</property>
                             <property name="digits">2</property>
                             <property name="numeric">True</property>
                           </object>
@@ -962,6 +971,7 @@
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDCriterionC</property>
                             <property name="digits">2</property>
                             <property name="numeric">True</property>
                           </object>
@@ -1039,6 +1049,7 @@ on individual parameters</property>
                             <property name="invisible_char_set">True</property>
                             <property name="primary_icon_activatable">False</property>
                             <property name="secondary_icon_activatable">False</property>
+                            <property name="adjustment">jSFFDCriterionD</property>
                             <property name="digits">2</property>
                             <property name="numeric">True</property>
                           </object>
diff --git a/src/patterns/patterns.cc b/src/patterns/patterns.cc
index b557453..34a0fe5 100644
--- a/src/patterns/patterns.cc
+++ b/src/patterns/patterns.cc
@@ -112,7 +112,7 @@ int
 save_pattern( SPattern<TFloat>& P, const char* fname)
 {
 	if ( agh::fs::mkdir_with_parents( agh::fs::dirname(fname)) ) {
-		fprintf( stderr, "save_pattern(\"%s\"): mkdir failed\n", fname);
+		fprintf( stderr, "save_pattern(\"%s\"): mkdir %s failed\n", fname, agh::fs::dirname(fname).c_str());
 		return -1;
 	}
 
diff --git a/src/ui/sf/sf-patterns-enumerate.cc b/src/ui/sf/sf-patterns-enumerate.cc
index b958791..d1fdb13 100644
--- a/src/ui/sf/sf-patterns-enumerate.cc
+++ b/src/ui/sf/sf-patterns-enumerate.cc
@@ -41,7 +41,7 @@ import_from_selection( SScoringFacility::SChannel& field)
 		context_before, context_after,
 		Pp2, criteria};
 	// transient is always the last
-	((patterns.back().origin == pattern::TOrigin::transient)
+	((not patterns.empty() and patterns.back().origin == pattern::TOrigin::transient)
 	 ? patterns.back()
 	 : (patterns.push_back( pattern::SPattern<TFloat> ()), patterns.back())
 		) = tim;
@@ -65,7 +65,7 @@ import_from_selection( SScoringFacility::SChannel& field)
 
 const char*
 	origin_markers[5] = {
-	"[S]", "[U]", "[E]", "", "~",
+	"~", "[S]", "[E]", "[U]", "<S>",
 };
 
 string
@@ -140,18 +140,22 @@ populate_combo()
 	g_signal_handler_block( _p.eSFFDPatternList, _p.eSFFDPatternList_changed_cb_handler_id);
 	gtk_list_store_clear( _p.mSFFDPatterns);
 
-	GtkTreeIter iter, current_pattern_iter;
-	for ( auto I = patterns.begin(); I != patterns.end(); ++I ) {
-		snprintf_buf( "%s %s", origin_markers[I->origin], I->name.c_str());
-		gtk_list_store_append( _p.mSFFDPatterns, &iter);
-		gtk_list_store_set( _p.mSFFDPatterns, &iter,
-				    0, __buf__,
-				    -1);
-		if ( I == current_pattern )
-			current_pattern_iter = iter;
-	}
-
-	gtk_combo_box_set_active_iter( _p.eSFFDPatternList, &current_pattern_iter);
+	if ( not patterns.empty() ) {
+		GtkTreeIter iter, current_pattern_iter;
+		for ( auto I = patterns.begin(); I != patterns.end(); ++I ) {
+			snprintf_buf( "%s %s", origin_markers[I->origin], I->name.c_str());
+			gtk_list_store_append( _p.mSFFDPatterns, &iter);
+			gtk_list_store_set( _p.mSFFDPatterns, &iter,
+					    0, __buf__,
+					    -1);
+			if ( I == current_pattern )
+				current_pattern_iter = iter;
+		}
+
+		gtk_combo_box_set_active_iter( _p.eSFFDPatternList, &current_pattern_iter);
+	} else
+		gtk_combo_box_set_active_iter( _p.eSFFDPatternList, NULL);
+
 	g_signal_handler_unblock( _p.eSFFDPatternList, _p.eSFFDPatternList_changed_cb_handler_id);
 }
 
@@ -193,7 +197,6 @@ discard_current_pattern()
 	current_pattern = next(current_pattern);
 	pattern::delete_pattern( *todelete);
 	patterns.erase( todelete);
-	populate_combo();
 }
 
 
diff --git a/src/ui/sf/sf-patterns.cc b/src/ui/sf/sf-patterns.cc
index 14acf57..f789fe6 100644
--- a/src/ui/sf/sf-patterns.cc
+++ b/src/ui/sf/sf-patterns.cc
@@ -160,11 +160,13 @@ void
 aghui::SScoringFacility::SFindDialog::
 setup_controls_for_find()
 {
-	gtk_widget_set_visible( (GtkWidget*)_p.cSFFDSearchButton, TRUE);
+	bool	have_any = current_pattern != patterns.end();
+
+	gtk_widget_set_visible( (GtkWidget*)_p.cSFFDSearchButton, have_any and TRUE);
 	gtk_widget_set_visible( (GtkWidget*)_p.cSFFDSearching, FALSE);
 	gtk_widget_set_visible( (GtkWidget*)_p.cSFFDAgainButton, FALSE);
 
-	gtk_widget_set_visible( (GtkWidget*)_p.cSFFDParameters, TRUE);
+	gtk_widget_set_visible( (GtkWidget*)_p.cSFFDParameters, have_any and TRUE);
 
 	gtk_widget_set_visible( (GtkWidget*)_p.swSFFDField, FALSE);
 	gtk_widget_set_visible( (GtkWidget*)_p.cSFFDCriteria, FALSE);
@@ -206,11 +208,12 @@ void
 aghui::SScoringFacility::SFindDialog::
 set_profile_manage_buttons_visibility()
 {
-	bool	is_transient = (current_pattern != patterns.end()) && current_pattern->origin == pattern::TOrigin::transient,
-		is_modified  = (current_pattern != patterns.end()) && not (current_pattern->Pp == Pp2);
-	gtk_widget_set_visible( (GtkWidget*)_p.bSFFDProfileSave, is_transient);
-	gtk_widget_set_visible( (GtkWidget*)_p.bSFFDProfileRevert, not is_transient and is_modified);
-	gtk_widget_set_visible( (GtkWidget*)_p.bSFFDProfileDiscard, not is_transient);
+	bool	have_any = current_pattern != patterns.end(),
+		is_transient = have_any && current_pattern->origin == pattern::TOrigin::transient,
+		is_modified  = have_any && not (current_pattern->Pp == Pp2);
+	gtk_widget_set_visible( (GtkWidget*)_p.bSFFDProfileSave, have_any and is_transient);
+	gtk_widget_set_visible( (GtkWidget*)_p.bSFFDProfileRevert, have_any and not is_transient and is_modified);
+	gtk_widget_set_visible( (GtkWidget*)_p.bSFFDProfileDiscard, have_any and not is_transient);
 }
 
 
diff --git a/src/ui/sf/sf-patterns_cb.cc b/src/ui/sf/sf-patterns_cb.cc
index fca8ad9..2e1ae5b 100644
--- a/src/ui/sf/sf-patterns_cb.cc
+++ b/src/ui/sf/sf-patterns_cb.cc
@@ -112,7 +112,9 @@ daSFFDField_button_press_event_cb( GtkWidget *wid, GdkEventButton *event, gpoint
 
 	switch ( event->button ) {
 	case 1:
-		SF.set_cur_vpage( ((double)FD.occurrences[FD.highlighted_occurrence] / FD.diff_line.size()) * SF.total_vpages());
+		if ( FD.highlighted_occurrence != (size_t)-1 )
+			SF.set_cur_vpage(
+				((double)FD.occurrences[FD.highlighted_occurrence] / FD.diff_line.size()) * SF.total_vpages());
 	    break;
 	case 3:
 		gtk_menu_popup( SF.iiSFFDField,
@@ -289,9 +291,12 @@ bSFFDProfileSave_clicked_cb( GtkButton *button, gpointer userdata)
 			: gtk_toggle_button_get_active( SF.eSFFDPatternSaveOriginExperiment)
 			? pattern::TOrigin::experiment
 			: pattern::TOrigin::user;
-	}
+		P.Pp = FD.Pp2;
+		P.criteria = FD.criteria;
 
-	FD.populate_combo();
+		FD.populate_combo();
+		FD.set_profile_manage_buttons_visibility();
+	}
 }
 
 
@@ -305,19 +310,22 @@ bSFFDProfileDiscard_clicked_cb( GtkButton *button, gpointer userdata)
 
 	assert ( FD.current_pattern != FD.patterns.end() );
 	assert ( FD.current_pattern->origin != pattern::TOrigin::transient );
-	assert ( ci == -1 );
+	assert ( ci != -1 );
 	assert ( ci < (int)FD.patterns.size() );
 
 	FD.discard_current_pattern();
 
-	FD.Pp2 = FD.current_pattern->Pp;
-	FD.criteria = FD.current_pattern->criteria;
+	if ( not FD.patterns.empty() ) {
+		FD.Pp2 = FD.current_pattern->Pp;
+		FD.criteria = FD.current_pattern->criteria;
 
-	FD.suppress_w_v = true;
-	FD.W_V.up();
-	FD.suppress_w_v = false;
+		FD.suppress_w_v = true;
+		FD.W_V.up();
+		FD.suppress_w_v = false;
+	}
 
 	FD.populate_combo();
+	FD.set_profile_manage_buttons_visibility();
 }
 
 
@@ -374,6 +382,7 @@ wSFFD_show_cb( GtkWidget *widget, gpointer userdata)
 
 	FD.setup_controls_for_find();
 	FD.populate_combo();
+	FD.set_profile_manage_buttons_visibility();
 
 	if ( FD._p.using_channel == nullptr ) // not invoked for a preselected signal via a menu
 		FD._p.using_channel = &FD._p.channels.front();

-- 
Sleep experiment manager



More information about the debian-med-commit mailing list