Add "dictionary" property to PsppireVarStore and use it.
[pspp-builds.git] / src / ui / gui / psppire-data-window.c
index 02b9cc344392859eec2ffdcb63163485eaa4ebf5..ffa9482eb0f4b766c391e32ac7c3ecac9dca3087 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <gtk/gtksignal.h>
 #include <gtk/gtkbox.h>
+#include "executor.h"
 #include "helper.h"
 
 #include "text-data-import-dialog.h"
@@ -230,12 +231,14 @@ on_filter_change (GObject *o, gint filter_index, gpointer data)
   else
     {
       PsppireVarStore *vs = NULL;
+      PsppireDict *dict = NULL;
       struct variable *var ;
       gchar *text ;
 
       g_object_get (de->data_editor, "var-store", &vs, NULL);
+      g_object_get (vs, "dictionary", &dict, NULL);
 
-      var = psppire_dict_get_variable (vs->dict, filter_index);
+      var = psppire_dict_get_variable (dict, filter_index);
 
       text = g_strdup_printf (_("Filter by %s"), var_get_name (var));
 
@@ -301,11 +304,13 @@ on_weight_change (GObject *o, gint weight_index, gpointer data)
     {
       struct variable *var ;
       PsppireVarStore *vs = NULL;
+      PsppireDict *dict = NULL;
       gchar *text;
 
       g_object_get (de->data_editor, "var-store", &vs, NULL);
-
-      var = psppire_dict_get_variable (vs->dict, weight_index);
+      g_object_get (vs, "dictionary", &dict, NULL);
+      
+      var = psppire_dict_get_variable (dict, weight_index);
 
       text = g_strdup_printf (_("Weight by %s"), var_get_name (var));
 
@@ -520,7 +525,6 @@ static void
 insert_case (GtkAction *action, gpointer data)
 {
   PsppireDataWindow *dw = PSPPIRE_DATA_WINDOW (data);
-
   psppire_data_editor_insert_case (dw->data_editor);
 }
 
@@ -1090,6 +1094,7 @@ static void
 psppire_data_window_init (PsppireDataWindow *de)
 {
   PsppireVarStore *vs;
+  PsppireDict *dict = NULL;
 
   GtkWidget *menubar;
   GtkWidget *hb ;
@@ -1145,15 +1150,17 @@ psppire_data_window_init (PsppireDataWindow *de)
 
   g_assert(vs); /* Traps a possible bug in w32 build */
 
-  g_signal_connect (vs->dict, "weight-changed",
+  g_object_get (vs, "dictionary", &dict, NULL);
+
+  g_signal_connect (dict, "weight-changed",
                    G_CALLBACK (on_weight_change),
                    de);
 
-  g_signal_connect (vs->dict, "filter-changed",
+  g_signal_connect (dict, "filter-changed",
                    G_CALLBACK (on_filter_change),
                    de);
 
-  g_signal_connect (vs->dict, "split-changed",
+  g_signal_connect (dict, "split-changed",
                    G_CALLBACK (on_split_change),
                    de);
 
@@ -1849,28 +1856,29 @@ psppire_data_window_init (PsppireDataWindow *de)
                      de);
   }
 
-  de->data_sheet_variable_popup_menu =
-    GTK_MENU (create_data_sheet_variable_popup_menu (de));
-
-  de->var_sheet_variable_popup_menu =
-    GTK_MENU (create_var_sheet_variable_popup_menu (de));
+  {
+    GtkUIManager *uim = GTK_UI_MANAGER (get_object_assert (de->builder, "uimanager1", GTK_TYPE_UI_MANAGER));
 
-  de->data_sheet_cases_popup_menu =
-    GTK_MENU (create_data_sheet_cases_popup_menu (de));
+    PSPPIRE_WINDOW (de)->menu =
+      GTK_MENU_SHELL (gtk_ui_manager_get_widget (uim,"/ui/menubar/windows/windows_minimise_all")->parent);
+  }
 
   {
-  GtkUIManager *uim = GTK_UI_MANAGER (get_object_assert (de->builder, "uimanager1", GTK_TYPE_UI_MANAGER));
+    GtkMenu *data_sheet_variable_popup_menu =
+      GTK_MENU (create_data_sheet_variable_popup_menu (de));
 
-  PSPPIRE_WINDOW (de)->menu =
-    GTK_MENU_SHELL (gtk_ui_manager_get_widget (uim,"/ui/menubar/windows/windows_minimise_all")->parent);
-  }
+    GtkMenu *var_sheet_variable_popup_menu =
+      GTK_MENU (create_var_sheet_variable_popup_menu (de));
 
+    GtkMenu *data_sheet_cases_popup_menu =
+      GTK_MENU (create_data_sheet_cases_popup_menu (de));
 
-  g_object_set (de->data_editor,
-               "datasheet-column-menu", de->data_sheet_variable_popup_menu,
-               "datasheet-row-menu", de->data_sheet_cases_popup_menu,
-               "varsheet-row-menu", de->var_sheet_variable_popup_menu,
-               NULL);
+    g_object_set (de->data_editor,
+                 "datasheet-column-menu", data_sheet_variable_popup_menu,
+                 "datasheet-row-menu", data_sheet_cases_popup_menu,
+                 "varsheet-row-menu", var_sheet_variable_popup_menu,
+                 NULL);
+  }
 
   gtk_widget_show (GTK_WIDGET (de->data_editor));
   gtk_widget_show (box);