aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/format-selection.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/src/format-selection.c b/src/format-selection.c
index b5abe5a..80fe7c3 100644
--- a/src/format-selection.c
+++ b/src/format-selection.c
@@ -75,12 +75,10 @@ generic_transcript_combo_changed_cb(gpointer user_data, GtkComboBox *combo)
GtkTreeModel *model = gtk_combo_box_get_model(combo);
GtkTreeIter iter;
- gchar *filename;
+ gchar *filename = NULL;
- if (!gtk_combo_box_get_active_iter(combo, &iter))
- return;
-
- gtk_tree_model_get(model, &iter, COL_FILENAME, &filename, -1);
+ if (gtk_combo_box_get_active_iter(combo, &iter))
+ gtk_tree_model_get(model, &iter, COL_FILENAME, &filename, -1);
/*
* filename may be empty (null-entry) in which case any active format
@@ -89,7 +87,9 @@ generic_transcript_combo_changed_cb(gpointer user_data, GtkComboBox *combo)
gtk_experiment_transcript_load_formats(trans, filename);
g_free(filename);
+#if 0
refresh_formats_store(GTK_LIST_STORE(model));
+#endif
}
void
@@ -107,6 +107,10 @@ refresh_formats_store(GtkListStore *store)
{
static GPatternSpec *pattern = NULL;
+ GtkTreeModel *model = GTK_TREE_MODEL(store);
+ gchar *wizard_filename = NULL;
+ gchar *proband_filename = NULL;
+
GDir *dir;
const gchar *name;
GtkTreeIter iter;
@@ -114,6 +118,15 @@ refresh_formats_store(GtkListStore *store)
if (pattern == NULL)
pattern = g_pattern_spec_new(EXPERIMENT_FORMAT_FILTER);
+ if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(transcript_wizard_combo),
+ &iter))
+ gtk_tree_model_get(model, &iter,
+ COL_FILENAME, &wizard_filename, -1);
+ if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(transcript_proband_combo),
+ &iter))
+ gtk_tree_model_get(model, &iter,
+ COL_FILENAME, &proband_filename, -1);
+
gtk_list_store_clear(store);
/* add null-entry */
gtk_list_store_append(store, &iter);
@@ -139,11 +152,21 @@ refresh_formats_store(GtkListStore *store)
COL_FILENAME, fullname,
-1);
+ if (!g_strcmp0(fullname, wizard_filename))
+ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(transcript_wizard_combo),
+ &iter);
+ if (!g_strcmp0(fullname, proband_filename))
+ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(transcript_proband_combo),
+ &iter);
+
g_free(fullname);
g_free(itemname);
}
g_dir_close(dir);
+
+ g_free(proband_filename);
+ g_free(wizard_filename);
}
void