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

Andrei Zavada johnhommer at gmail.com
Sun Feb 3 12:53:13 UTC 2013


The following commit has been merged in the master branch:
commit 0071773656bb9cb46011bd131dfcfd19afc92054
Author: Andrei Zavada <johnhommer at gmail.com>
Date:   Sun Feb 3 12:44:27 2013 +0200

    make own copies of, filter all EEG channels in SF dialogs for subjects w/ partial channel set

diff --git a/src/ui/sf/d/patterns-construct.cc b/src/ui/sf/d/patterns-construct.cc
index 24cf66a..973a66f 100644
--- a/src/ui/sf/d/patterns-construct.cc
+++ b/src/ui/sf/d/patterns-construct.cc
@@ -24,6 +24,8 @@ SPatternsDialogWidgets (SScoringFacility& SF)
 
 	mSFFDPatterns =
 		gtk_list_store_new( 1, G_TYPE_STRING);
+	mSFFDChannels =
+		gtk_list_store_new( 1, G_TYPE_STRING);
 
 	if ( !AGH_GBGETOBJ (GtkDialog,		wSFFD) ||
 	     !AGH_GBGETOBJ (GtkDrawingArea,	daSFFDThing) ||
@@ -76,7 +78,15 @@ SPatternsDialogWidgets (SScoringFacility& SF)
 	eSFFDPatternList_changed_cb_handler_id =
 		G_CONNECT_1 (eSFFDPatternList, changed);
 
-	gtk_combo_box_set_model_properly( eSFFDChannel, SF._p.mAllChannels);
+	// filter channels we don't have
+	for ( auto &H : SF.channels ) {
+		GtkTreeIter iter;
+		gtk_list_store_append( mSFFDChannels, &iter);
+		gtk_list_store_set( mSFFDChannels, &iter,
+				    0, H.name,
+				    -1);
+	}
+	gtk_combo_box_set_model_properly( eSFFDChannel, mSFFDChannels);
 	eSFFDChannel_changed_cb_handler_id =
 		G_CONNECT_1 (eSFFDChannel, changed);
 
@@ -129,6 +139,8 @@ aghui::SPatternsDialogWidgets::
 {
 	// destroy toplevels
 	gtk_widget_destroy( (GtkWidget*)wSFFD);
+	g_object_unref( (GObject*)mSFFDPatterns);
+	g_object_unref( (GObject*)mSFFDChannels);
 	g_object_unref( (GObject*)builder);
 }
 
diff --git a/src/ui/sf/d/patterns.hh b/src/ui/sf/d/patterns.hh
index b1d413f..aa04cde 100644
--- a/src/ui/sf/d/patterns.hh
+++ b/src/ui/sf/d/patterns.hh
@@ -32,7 +32,8 @@ struct SPatternsDialogWidgets {
 	GtkBuilder *builder;
 
 	GtkListStore
-		*mSFFDPatterns;
+		*mSFFDPatterns,
+		*mSFFDChannels;
 	GtkDialog
 		*wSFFD;
 	GtkComboBox
diff --git a/src/ui/sf/d/phasediff-construct.cc b/src/ui/sf/d/phasediff-construct.cc
index 91a07b3..0aa297e 100644
--- a/src/ui/sf/d/phasediff-construct.cc
+++ b/src/ui/sf/d/phasediff-construct.cc
@@ -22,6 +22,9 @@ SPhasediffDialogWidgets (SScoringFacility& SF)
 		throw runtime_error( "Failed to load SF::phasediff glade resource");
 	gtk_builder_connect_signals( builder, NULL);
 
+	mSFPDChannels =
+		gtk_list_store_new( 1, G_TYPE_STRING);
+
 	if ( !(AGH_GBGETOBJ (GtkDialog,		wSFPD)) ||
 	     !(AGH_GBGETOBJ (GtkDrawingArea,	daSFPD)) ||
 	     !(AGH_GBGETOBJ (GtkComboBox,	eSFPDChannelA)) ||
@@ -31,12 +34,23 @@ SPhasediffDialogWidgets (SScoringFacility& SF)
 	     !(AGH_GBGETOBJ (GtkScaleButton,	eSFPDSmooth)) )
 		throw runtime_error ("Failed to construct SF widgets (11)");
 
+	// filter channels we don't have
+	for ( auto &H : SF.channels )
+		if ( H.type == sigfile::SChannel::TType::eeg ) {
+			GtkTreeIter iter;
+			gtk_list_store_append( mSFPDChannels, &iter);
+			gtk_list_store_set( mSFPDChannels, &iter,
+					    0, H.name,
+					    -1);
+		}
+
 	gtk_combo_box_set_model_properly(
-		eSFPDChannelA, SF._p.mEEGChannels);
+		eSFPDChannelA, mSFPDChannels);
 	eSFPDChannelA_changed_cb_handler_id =
 		G_CONNECT_1 (eSFPDChannelA, changed);
 
-	gtk_combo_box_set_model_properly( eSFPDChannelB, SF._p.mEEGChannels);
+	gtk_combo_box_set_model_properly(
+		eSFPDChannelB, mSFPDChannels);
 	eSFPDChannelB_changed_cb_handler_id =
 		G_CONNECT_1 (eSFPDChannelB, changed);
 
@@ -57,6 +71,7 @@ aghui::SPhasediffDialogWidgets::
 {
 	gtk_widget_destroy( (GtkWidget*)wSFPD);
 	g_object_unref( (GObject*)builder);
+	g_object_unref( (GObject*)mSFPDChannels);
 }
 
 
diff --git a/src/ui/sf/d/phasediff.hh b/src/ui/sf/d/phasediff.hh
index f38edca..39a3e90 100644
--- a/src/ui/sf/d/phasediff.hh
+++ b/src/ui/sf/d/phasediff.hh
@@ -29,6 +29,9 @@ struct SPhasediffDialogWidgets {
 
 	GtkBuilder *builder;
 
+	GtkListStore
+		*mSFPDChannels;
+
 	// phasediff dialog
 	GtkDialog
 		*wSFPD;

-- 
Sleep experiment manager



More information about the debian-med-commit mailing list