Re-enabled updates in the cell reference entry box.
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 29 Jun 2007 00:52:03 +0000 (00:52 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 29 Jun 2007 00:52:03 +0000 (00:52 +0000)
src/ui/gui/ChangeLog
src/ui/gui/data-editor.c
src/ui/gui/data-sheet.c

index 4b2fc7c4bb262afc60c09ec966e8e67ccde3f3ba..cb2cae257eb96ed0fb1e8bac33a51299af8e33e9 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-29  John Darrington <john@darrington.wattle.id.au>
+
+       * data-editor.c data-sheet.c: Moved update_cell_ref_entry from 
+       data-sheet.c to data-editor.c and made it work again.
+
 2007-06-06  Ben Pfaff  <blp@gnu.org>
 
        Adapt case sources, sinks, and clients of procedure code to the
index b2c506ddfa644597a166485055465110b8396a54..2f15096c3f274cf8140457c139ba9cfe2f0b95be 100644 (file)
 #include "psppire-data-store.h"
 #include "psppire-var-store.h"
 
+
+/* Update the data_ref_entry with the reference of the active cell */
+static gint update_data_ref_entry (const GtkSheet *sheet,
+                                  gint row, gint col, gpointer data);
+
 static void register_data_editor_actions (struct data_editor *de);
 
 static void insert_variable (GtkCheckMenuItem *m, gpointer data);
@@ -177,6 +182,7 @@ new_data_editor (void)
   struct data_editor *de ;
   struct editor_window *e;
   GtkSheet *var_sheet ;
+  GtkSheet *data_sheet ;
   PsppireVarStore *vs;
 
   de = g_malloc0 (sizeof (*de));
@@ -186,11 +192,16 @@ new_data_editor (void)
   de->xml = XML_NEW ("data-editor.glade");
 
   var_sheet = GTK_SHEET (get_widget_assert (de->xml, "variable_sheet"));
+  data_sheet = GTK_SHEET (get_widget_assert (de->xml, "data_sheet"));
 
   vs = PSPPIRE_VAR_STORE (gtk_sheet_get_model (var_sheet));
 
   g_assert(vs); /* Traps a possible bug in win32 build */
 
+  g_signal_connect (G_OBJECT (data_sheet), "activate",
+                   G_CALLBACK (update_data_ref_entry),
+                   de->xml);
+
   g_signal_connect (vs->dict, "weight-changed",
                    G_CALLBACK (on_weight_change),
                    de);
@@ -1227,3 +1238,44 @@ open_data_dialog (GtkAction *action, struct data_editor *de)
 
   gtk_widget_destroy (dialog);
 }
+
+
+
+/* Update the data_ref_entry with the reference of the active cell */
+static gint
+update_data_ref_entry (const GtkSheet *sheet, gint row, gint col, gpointer data)
+{
+  GladeXML *data_editor_xml = data;
+
+  /* The entry where the reference to the current cell is displayed */
+  GtkEntry *cell_ref_entry;
+
+  PsppireDataStore *data_store = PSPPIRE_DATA_STORE (gtk_sheet_get_model (sheet));
+
+  g_return_val_if_fail (data_editor_xml, FALSE);
+
+  if (data_store)
+    {
+      const struct variable *pv =
+       psppire_dict_get_variable (data_store->dict, col);
+
+      gchar *text ;
+      gchar *s ;
+
+      text = g_strdup_printf ("%d: %s", row,
+                            pv ? var_get_name (pv) : "");
+
+      cell_ref_entry = GTK_ENTRY (get_widget_assert (data_editor_xml,
+                                                  "cell_ref_entry"));
+
+      s = pspp_locale_to_utf8 (text, -1, 0);
+
+      g_free (text);
+
+      gtk_entry_set_text (cell_ref_entry, s);
+
+      g_free (s);
+    }
+
+  return FALSE;
+}
index 18b4e3597818811578b14d4e3caffb7105e8ccdf..8d77bdefda93705875a0bb7be045d596535265c5 100644 (file)
@@ -74,49 +74,6 @@ traverse_callback (GtkSheet * sheet,
   return TRUE;
 }
 
-
-
-/* Update the data_ref_entry with the reference of the active cell */
-gint
-update_data_ref_entry (const GtkSheet *sheet, gint row, gint col)
-{
-
-  GladeXML *data_editor_xml = NULL; /* FIXME !!!! */
-
-
-  /* The entry where the reference to the current cell is displayed */
-  GtkEntry *cell_ref_entry;
-
-  PsppireDataStore *data_store = PSPPIRE_DATA_STORE (gtk_sheet_get_model (sheet));
-  if (data_store)
-    {
-      const struct variable *pv =
-       psppire_dict_get_variable (data_store->dict, col);
-
-      gchar *text ;
-      gchar *s ;
-
-      if ( !data_editor_xml)
-       return FALSE;
-
-      text = g_strdup_printf ("%d: %s", row,
-                            pv ? var_get_name (pv) : "");
-
-      cell_ref_entry = GTK_ENTRY (get_widget_assert (data_editor_xml,
-                                                  "cell_ref_entry"));
-
-      s = pspp_locale_to_utf8 (text, -1, 0);
-
-      g_free (text);
-
-      gtk_entry_set_text (cell_ref_entry, s);
-
-      g_free (s);
-    }
-
-  return FALSE;
-}
-
 extern PsppireDataStore *the_data_store ;
 
 
@@ -169,10 +126,6 @@ psppire_data_sheet_create (gchar *widget_name, gchar *string1, gchar *string2,
 
   the_data_store->width_of_m = calc_m_width (sheet, the_data_store->font_desc);
 
-  g_signal_connect (G_OBJECT (sheet), "activate",
-                   G_CALLBACK (update_data_ref_entry),
-                   0);
-
   g_signal_connect (G_OBJECT (sheet), "traverse",
                    G_CALLBACK (traverse_callback), 0);