[med-svn] [SCM] aghermann branch, master, updated. 06bda7dfaa687aaf0708a024d192024e2cd58421
andrei zavada
jh at johnhommer.com
Thu Jan 24 00:43:56 UTC 2013
The following commit has been merged in the master branch:
commit f97f170f32f88cc04ae6e6365d3971d1864b4807
Author: andrei zavada <jh at johnhommer.com>
Date: Tue Jan 22 18:53:01 2013 +0000
patterns WIP
diff --git a/src/ui/sf/sf-patterns-enumerate.cc b/src/ui/sf/sf-patterns-enumerate.cc
index 3097c81..675ad84 100644
--- a/src/ui/sf/sf-patterns-enumerate.cc
+++ b/src/ui/sf/sf-patterns-enumerate.cc
@@ -133,20 +133,19 @@ load_patterns()
void
aghui::SScoringFacility::SFindDialog::
-enumerate_patterns_to_combo()
+populate_combo()
{
g_signal_handler_block( _p.eSFFDPatternList, _p.eSFFDPatternList_changed_cb_handler_id);
gtk_list_store_clear( _p.mSFFDPatterns);
GtkTreeIter iter;
- for ( auto& P : patterns )
- if ( P.origin != pattern::TOrigin::discard ) {
- snprintf_buf( "%s %s", origin_markers[P.origin], P.name.c_str());
- gtk_list_store_append( _p.mSFFDPatterns, &iter);
- gtk_list_store_set( _p.mSFFDPatterns, &iter,
- 0, __buf__,
- -1);
- }
+ for ( auto& P : patterns ) {
+ snprintf_buf( "%s %s", origin_markers[P.origin], P.name.c_str());
+ gtk_list_store_append( _p.mSFFDPatterns, &iter);
+ gtk_list_store_set( _p.mSFFDPatterns, &iter,
+ 0, __buf__,
+ -1);
+ }
gtk_combo_box_set_active_iter( _p.eSFFDPatternList, NULL);
g_signal_handler_unblock( _p.eSFFDPatternList, _p.eSFFDPatternList_changed_cb_handler_id);
diff --git a/src/ui/sf/sf-patterns.cc b/src/ui/sf/sf-patterns.cc
index 334bfc0..b9b0472 100644
--- a/src/ui/sf/sf-patterns.cc
+++ b/src/ui/sf/sf-patterns.cc
@@ -51,8 +51,8 @@ aghui::SScoringFacility::SFindDialog::
{
save_patterns();
- if ( cpattern )
- delete cpattern;
+ assert ( cpattern );
+
// g_object_unref( mPatterns);
gtk_widget_destroy( (GtkWidget*)_p.wSFFDPatternName);
gtk_widget_destroy( (GtkWidget*)_p.wSFFD);
@@ -60,6 +60,19 @@ aghui::SScoringFacility::SFindDialog::
+list<pattern::SPattern<TFloat>>::iterator
+aghui::SScoringFacility::SFindDialog::
+pattern_by_idx( size_t idx)
+{
+ int i = 0;
+ for ( auto I : patterns )
+ if ( i == idx )
+ return *I;
+ else
+ ++i;
+ throw invalid_argument ("Current pattern index invalid");
+}
+
diff --git a/src/ui/sf/sf-patterns_cb.cc b/src/ui/sf/sf-patterns_cb.cc
index 92803ec..a86ff6b 100644
--- a/src/ui/sf/sf-patterns_cb.cc
+++ b/src/ui/sf/sf-patterns_cb.cc
@@ -17,10 +17,6 @@
using namespace std;
-
-#define globally_G_marker "[G]"
-#define globally_E_marker "[E]"
-
using namespace aghui;
extern "C" {
@@ -253,20 +249,20 @@ eSFFDPatternList_changed_cb( GtkComboBox *combo, gpointer userdata)
auto& SF = *(SScoringFacility*)userdata;
auto& FD = SF.find_dialog;
- if ( FD.Q ) {
- FD.Q->Pp = FD.Pp2;
- FD.Q->criteria = FD.criteria;
+ if ( FD.current_pattern ) {
+ FD.current_pattern->Pp = FD.Pp2;
+ FD.current_pattern->criteria = FD.criteria;
}
gint ci = gtk_combo_box_get_active( combo);
if ( ci == -1 )
return;
- FD.Q = &FD.patterns[ci];
- FD.Pp2 = FD.Q->Pp;
- FD.criteria = FD.Q->criteria;
+ auto& now_current = FD.pattern_by_idx(ci);
+ FD.Pp2 = now_current->Pp;
+ FD.criteria = now_current->criteria;
- gtk_widget_queue_draw( (GtkWidget*)FD._p.daSFFDThing);
+ gtk_widget_queue_draw( (GtkWidget*)SF.daSFFDThing);
}
@@ -277,18 +273,19 @@ bSFFDProfileSave_clicked_cb( GtkButton *button, gpointer userdata)
auto& SF = *(SScoringFacility*)userdata;
auto& FD = SF.find_dialog;
- assert ( FD.Q->origin != pattern::TOrigin::transient );
+ assert (FD.current_pattern.origin == pattern::TOrigin::transient );
+ auto& P = FD.current_pattern;
if ( gtk_dialog_run( SF.wSFFDPatternName) == GTK_RESPONSE_OK ) {
- FD.Q->name = gtk_entry_get_text( SF.eSFFDPatternNameName);
- FD.Q->origin = gtk_toggle_button_get_active( SF.eSFFDPatternNameOriginSubject)
+ P.name = gtk_entry_get_text( SF.eSFFDPatternNameName);
+ P.origin = gtk_toggle_button_get_active( SF.eSFFDPatternNameOriginSubject)
? pattern::TOrigin::subject
: gtk_toggle_button_get_active( SF.eSFFDPatternNameOriginExperiment)
? pattern::TOrigin::experiment
: pattern::TOrigin::user;
}
- FD.enumerate_patterns_to_combo();
+ FD.populate_combo();
}
@@ -304,12 +301,16 @@ bSFFDProfileDiscard_clicked_cb( GtkButton *button, gpointer userdata)
assert ( ci == -1 );
assert ( ci < FD.patterns.size() );
- pattern::delete_pattern( FD.Q);
- erase(
+ pattern::delete_pattern( *FD.current_pattern);
+ erase( FD.current_pattern);
- FD.Q = &FD.patterns[ci];
- FD.Pp2 = FD.Q->Pp;
- FD.criteria = FD.Q->criteria;
+ FD.current_pattern = &FD.pattern_by_idx(ci);
+ 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.enumerate_patterns_to_combo();
g_signal_handler_block( FD._p.eSFFDPatternList, FD._p.eSFFDPatternList_changed_cb_handler_id);
@@ -324,11 +325,10 @@ bSFFDProfileRevert_clicked_cb( GtkButton *button, gpointer userdata)
auto& SF = *(SScoringFacility*)userdata;
auto& FD = SF.find_dialog;
- assert ( FD.Q );
- assert ( FD.Q->origin != pattern::TOrigin::transient );
+ assert ( FD.current_pattern->origin != pattern::TOrigin::transient );
- FD.Pp2 = FD.Q->Pp;
- FD.criteria = FD.Q->criteria;
+ FD.Pp2 = FD.current_pattern->Pp;
+ FD.criteria = FD.current_pattern->criteria;
FD.suppress_w_v = true;
FD.W_V.up();
diff --git a/src/ui/sf/sf.hh b/src/ui/sf/sf.hh
index d40bc06..5ed55d2 100644
--- a/src/ui/sf/sf.hh
+++ b/src/ui/sf/sf.hh
@@ -508,12 +508,15 @@ class SScoringFacility
// saved patterns
list<pattern::SPattern<TFloat>>
patterns;
- int Q;
+ list<pattern::SPattern<TFloat>>::iterator
+ current_pattern;
+ list<pattern::SPattern<TFloat>>::iterator
+ pattern_by_idx( size_t);
void import_from_selection( SScoringFacility::SChannel&);
void load_patterns();
void save_patterns();
- void enumerate_patterns_to_combo();
+ void populate_combo();
// finding tool
pattern::SPatternPPack<TFloat>
--
Sleep experiment manager
More information about the debian-med-commit
mailing list