X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Ffind-dialog.c;h=60d54e2679cb37d55c67c38f3c3b209fa1d1dedc;hb=d3181522c4d8e725d417cbae655e46f660fe168e;hp=84bfa1be239bcbc264956519239b9fce7ad5872a;hpb=dacfe37faf6837e1e69b75e0f3791f06a3efa68d;p=pspp-builds.git diff --git a/src/ui/gui/find-dialog.c b/src/ui/gui/find-dialog.c index 84bfa1be..60d54e26 100644 --- a/src/ui/gui/find-dialog.c +++ b/src/ui/gui/find-dialog.c @@ -24,9 +24,10 @@ which match particular strings */ #include "psppire-selector.h" #include "psppire-dialog.h" #include "helper.h" -#include "data-editor.h" +#include "psppire-data-window.h" #include "dict-display.h" #include +#include #include #include #include "psppire-data-store.h" @@ -36,7 +37,6 @@ which match particular strings */ #include #include -#include #include #include "xalloc.h" @@ -47,16 +47,14 @@ which match particular strings */ /* FIXME: These shouldn't be here */ -#include #include "psppire-var-store.h" struct find_dialog { - GladeXML *xml; + GtkBuilder *xml; PsppireDict *dict; - GtkSheet *data_sheet; struct datasheet *data; - struct data_editor *de; + PsppireDataWindow *de; GtkWidget *variable_entry; GtkWidget *value_entry; GtkWidget *value_labels_checkbox; @@ -104,22 +102,27 @@ do_find (GObject *obj, const struct find_dialog *fd) { casenumber x = -1; gint column = -1; - gint row; - gtk_sheet_get_active_cell (fd->data_sheet, &row, NULL); + glong row; + + g_object_get (fd->de->data_editor, "current-case", &row, NULL); if ( row < 0 ) row = 0; find_value (fd, row, &x, &column); + if ( x != -1) { - data_editor_select_sheet (fd->de, PAGE_DATA_SHEET); - - gtk_sheet_moveto (fd->data_sheet, x, column, 0.5, 0.5); + gtk_notebook_set_current_page (GTK_NOTEBOOK (fd->de->data_editor), + PSPPIRE_DATA_EDITOR_DATA_VIEW); - gtk_sheet_set_active_cell (fd->data_sheet, x, column); + g_object_set (fd->de->data_editor, + "current-case", x, + "current-variable", column, + NULL); } + } /* Callback on the selector. @@ -182,7 +185,7 @@ value_labels_toggled (GtkToggleButton *tb, gpointer data) void find_dialog (GObject *o, gpointer data) { - struct data_editor *de = data; + PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data); struct find_dialog fd; @@ -191,14 +194,12 @@ find_dialog (GObject *o, gpointer data) GtkWidget *selector; GtkWidget *find_button; - GtkSheet *var_sheet; - GtkSheet *data_sheet ; GtkWidget *buttonbox; - PsppireVarStore *vs ; + PsppireVarStore *vs ; PsppireDataStore *ds ; - fd.xml = XML_NEW ("psppire.glade"); + fd.xml = builder_new ("psppire.ui"); fd.de = de; find_button = gtk_button_new_from_stock (GTK_STOCK_FIND); @@ -213,15 +214,13 @@ find_dialog (GObject *o, gpointer data) source = get_widget_assert (fd.xml, "find-variable-treeview"); selector = get_widget_assert (fd.xml, "find-selector"); - 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)); - ds = PSPPIRE_DATA_STORE (gtk_sheet_get_model (data_sheet)); + g_object_get (de->data_editor, + "var-store", &vs, + "data-store", &ds, + NULL); fd.dict = vs->dict; - fd.data = ds->case_file->datasheet; - fd.data_sheet = data_sheet; + fd.data = ds->datasheet; fd.variable_entry = get_widget_assert (fd.xml, "find-variable-entry"); fd.value_entry = get_widget_assert (fd.xml, "find-value-entry"); @@ -239,13 +238,12 @@ find_dialog (GObject *o, gpointer data) - gtk_window_set_transient_for (GTK_WINDOW (dialog), de->parent.window); + gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de)); - attach_dictionary_to_treeview (GTK_TREE_VIEW (source), - fd.dict, - GTK_SELECTION_SINGLE, - NULL); + g_object_set (source, "model", fd.dict, + "selection-mode", GTK_SELECTION_SINGLE, + NULL); psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector), source, @@ -464,7 +462,7 @@ value_compare (const struct comparator *cmptr, const union value *v) { const struct value_comparator *vc = (const struct value_comparator *) cmptr; - return 0 == compare_values (v, vc->pattern, var_get_width (cmptr->var)); + return 0 == value_compare_3way (v, vc->pattern, var_get_width (cmptr->var)); }