From: Friedrich Beckmann Date: Sun, 7 Jun 2020 07:08:01 +0000 (+0200) Subject: fixed goto case dialog X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a3d7330188ac2faf40093dbaa09a901558217d8;p=pspp fixed goto case dialog The goto case dialog did not work. The GtkTreeModel cast of the datasheet does not work because datasheet is not derived from treemodel. Changed types from casenumber to gint because the gtktreemodel function returns gint. casenumber is long which my be bigger than int but the treemodel cant handle this anyway. --- diff --git a/src/ui/gui/goto-case-dialog.c b/src/ui/gui/goto-case-dialog.c index 713c1e354a..dfb059a4aa 100644 --- a/src/ui/gui/goto-case-dialog.c +++ b/src/ui/gui/goto-case-dialog.c @@ -19,7 +19,6 @@ #include "goto-case-dialog.h" #include "builder-wrapper.h" #include "psppire-dialog.h" -#include "psppire-data-window.h" #include "psppire-data-store.h" #include "psppire-data-sheet.h" @@ -27,11 +26,12 @@ static void refresh (PsppireDataSheet *ds, GtkBuilder *xml) { - PsppireDataStore *store = NULL; - g_object_get (ds, "data-model", &store, NULL); + GtkTreeModel *tm = NULL; + g_object_get (ds, "data-model", &tm, NULL); GtkWidget *case_num_entry = get_widget_assert (xml, "goto-case-case-num-entry"); - casenumber case_count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (store), NULL); + gint case_count = gtk_tree_model_iter_n_children (tm, NULL); + g_object_unref (tm); gtk_spin_button_set_range (GTK_SPIN_BUTTON (case_num_entry), 1, case_count); } @@ -53,18 +53,20 @@ goto_case_dialog (PsppireDataSheet *ds) if (response == PSPPIRE_RESPONSE_GOTO) { - PsppireDataStore *store = NULL; - g_object_get (ds, "data-model", &store, NULL); + GtkTreeModel *tm = NULL; + g_object_get (ds, "data-model", &tm, NULL); GtkWidget *case_num_entry = get_widget_assert (xml, "goto-case-case-num-entry"); - glong case_num = + gint case_num = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (case_num_entry)) - FIRST_CASE_NUMBER ; - if (case_num >= 0 && - case_num < gtk_tree_model_iter_n_children (GTK_TREE_MODEL (ds), NULL)) + gint case_count = gtk_tree_model_iter_n_children (tm, NULL); + g_object_unref (tm); + + if (case_num >= 0 && case_num < case_count) { ssw_sheet_scroll_to (SSW_SHEET (ds), -1, case_num); ssw_sheet_set_active_cell (SSW_SHEET (ds), -1, case_num, 0);