Merge commit 'origin/stable'
[pspp-builds.git] / src / ui / gui / goto-case-dialog.c
index 32e93dbd4ca37afe07f9bd14ebcf01953199ec27..9a523943b1c5686e639d4df34b56530d4f1b55a5 100644 (file)
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
 
+#include <config.h>
 #include "goto-case-dialog.h"
 #include "helper.h"
 #include "psppire-dialog.h"
-#include "data-editor.h"
+#include "psppire-data-window.h"
 #include "psppire-data-store.h"
-#include <gtksheet/gtksheet.h>
 
 
 static void
-refresh (const struct data_editor *de, GladeXML *xml)
+refresh (const PsppireDataWindow *de, GtkBuilder *xml)
 {
-  GtkSheet *data_sheet =
-    GTK_SHEET (get_widget_assert (de->xml, "data_sheet"));
+  PsppireDataStore *ds = NULL;
+  casenumber case_count ;
 
-  PsppireDataStore *ds =
-    PSPPIRE_DATA_STORE (gtk_sheet_get_model (data_sheet));
+  GtkWidget *case_num_entry = get_widget_assert (xml, "goto-case-case-num-entry");
 
-  GtkWidget *case_num_entry =
-    get_widget_assert (xml, "goto-case-case-num-entry");
+  g_object_get (de->data_editor, "data-store", &ds, NULL);
 
-  casenumber case_count =
-    psppire_data_store_get_case_count (ds);
+  case_count =  psppire_data_store_get_case_count (ds);
 
   gtk_spin_button_set_range (GTK_SPIN_BUTTON (case_num_entry),
                             1, case_count);
@@ -46,13 +43,13 @@ void
 goto_case_dialog (GObject *o, gpointer data)
 {
   gint response;
-  GladeXML *xml = XML_NEW ("psppire.glade");
-  struct data_editor *de = data;
+  GtkBuilder *xml = builder_new ("psppire.ui");
+  PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data);
 
   GtkWidget *dialog = get_widget_assert   (xml, "goto-case-dialog");
 
 
-  gtk_window_set_transient_for (GTK_WINDOW (dialog), de->parent.window);
+  gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   refresh (de, xml);
 
@@ -60,24 +57,13 @@ goto_case_dialog (GObject *o, gpointer data)
 
   if ( response == PSPPIRE_RESPONSE_GOTO )
     {
-      gint row, column;
-      GtkSheet *data_sheet =
-       GTK_SHEET (get_widget_assert (de->xml, "data_sheet"));
-
-
+      glong case_num;
       GtkWidget *case_num_entry =
        get_widget_assert (xml, "goto-case-case-num-entry");
 
-      gtk_sheet_get_active_cell (data_sheet, &row, &column);
-
-      row =
-       gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (case_num_entry))
+      case_num = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (case_num_entry))
        - FIRST_CASE_NUMBER ;
 
-      gtk_sheet_moveto (data_sheet,
-                       row, column,
-                       0.5, 0.5);
-
-      gtk_sheet_set_active_cell (data_sheet, row, column);
+      g_object_set (de->data_editor, "current-case", case_num, NULL);
     }
 }