Consolidate multiple messages into single message dialog. Patch
[pspp-builds.git] / src / ui / gui / recode-dialog.c
index 103c85c3250354d2a67c734e925bda58535a4780..3468e580c8fe8068cb3306110bfcee92fd82ffab 100644 (file)
@@ -326,7 +326,6 @@ struct recode_dialog
   GtkWidget *ov_high_down_entry;
 
   GtkListStore *value_map;
-  GtkListStore *local_store;
 
   /* Indicates that the INTO {new variables} form of the dialog
      is being used */
@@ -959,6 +958,7 @@ recode_dialog (struct data_editor *de, gboolean diff)
                                 rd.dict_treeview,
                                 rd.variable_treeview,
                                 insert_source_row_into_tree_view,
+                                NULL,
                                 NULL);
 
   psppire_selector_set_allow (PSPPIRE_SELECTOR (selector), homogeneous_types);
@@ -1109,6 +1109,10 @@ recode_dialog (struct data_editor *de, gboolean diff)
       break;
     }
 
+
+  gtk_list_store_clear (GTK_LIST_STORE (rd.value_map));
+  g_object_unref (rd.value_map);
+
   g_object_unref (xml);
 }
 
@@ -1262,11 +1266,9 @@ static void
 run_old_and_new_dialog (struct recode_dialog *rd)
 {
   gint response;
-  rd->local_store = clone_list_store (rd->value_map);
-
-  g_object_ref (rd->local_store);
+  GtkListStore *local_store = clone_list_store (rd->value_map);
 
-  psppire_acr_set_model (rd->acr, rd->local_store);
+  psppire_acr_set_model (rd->acr, local_store);
   psppire_acr_set_get_value_func (rd->acr, set_value, rd);
 
   gtk_window_set_title (GTK_WINDOW (rd->old_and_new_dialog),
@@ -1315,7 +1317,12 @@ run_old_and_new_dialog (struct recode_dialog *rd)
 
 
   if ( response == PSPPIRE_RESPONSE_CONTINUE )
-      rd->value_map = clone_list_store (rd->local_store);
+    {
+      g_object_unref (rd->value_map);
+      rd->value_map = clone_list_store (local_store);
+    }
+  else
+    g_object_unref (local_store);
 
 
   psppire_dialog_notify_change (PSPPIRE_DIALOG (rd->dialog));
@@ -1443,7 +1450,7 @@ generate_syntax (const struct recode_dialog *rd)
 
   g_string_append (str, "\nRECODE ");
 
-  append_variable_names (str, rd->dict, GTK_TREE_VIEW (rd->variable_treeview));
+  append_variable_names (str, rd->dict, GTK_TREE_VIEW (rd->variable_treeview), 0);
 
   g_string_append (str, "\n\t");