X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fcompute-dialog.c;h=9ddb66d48e4fcc848cbf48eb4b95eaf2754d7114;hb=bea8b007855970c07083dbec5b5cc90f33990957;hp=e3d1c6a1410c645b6998ec89dfb570d0cefe3a3c;hpb=d3181522c4d8e725d417cbae655e46f660fe168e;p=pspp diff --git a/src/ui/gui/compute-dialog.c b/src/ui/gui/compute-dialog.c index e3d1c6a141..9ddb66d48e 100644 --- a/src/ui/gui/compute-dialog.c +++ b/src/ui/gui/compute-dialog.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2007 Free Software Foundation + Copyright (C) 2007, 2010, 2011, 2012 Free Software Foundation This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,18 +17,20 @@ #include #include #include "compute-dialog.h" -#include "helper.h" +#include "builder-wrapper.h" #include "psppire-dialog.h" #include "psppire-keypad.h" #include "psppire-data-window.h" -#include "psppire-var-store.h" #include "psppire-selector.h" #include "dialog-common.h" +#include + #include -#include +#include "executor.h" #include "helper.h" + static void function_list_populate (GtkTreeView *tv); static void insert_function_into_syntax_area (GtkTreeIter iter, @@ -362,15 +364,13 @@ contents_plausible (gpointer data) /* Pops up the Compute dialog box */ void -compute_dialog (GObject *o, gpointer data) +compute_dialog (PsppireDataWindow *de) { gint response; - PsppireDataWindow *de = data; - PsppireVarStore *vs = NULL; struct compute_dialog scd; - GtkBuilder *xml = builder_new ("psppire.ui"); + GtkBuilder *xml = builder_new ("compute.ui"); GtkWidget *dialog = get_widget_assert (xml, "compute-variable-dialog"); @@ -378,7 +378,6 @@ compute_dialog (GObject *o, gpointer data) GtkWidget *functions = get_widget_assert (xml, "compute-treeview2"); GtkWidget *keypad = get_widget_assert (xml, "psppire-keypad1"); GtkWidget *target = get_widget_assert (xml, "compute-entry1"); - GtkWidget *syntax_area = get_widget_assert (xml, "compute-textview1"); GtkWidget *var_selector = get_widget_assert (xml, "compute-selector1"); GtkWidget *func_selector = get_widget_assert (xml, "compute-selector2"); GtkWidget *type_and_label = get_widget_assert (xml, "compute-button1"); @@ -387,8 +386,7 @@ compute_dialog (GObject *o, gpointer data) get_widget_assert (xml, "radio-button-expression-label"); - g_object_get (de->data_editor, "var-store", &vs, NULL); - scd.dict = vs->dict; + g_object_get (de->data_editor, "dictionary", &scd.dict, NULL); scd.use_type = FALSE; g_signal_connect (expression, "toggled", @@ -396,26 +394,18 @@ compute_dialog (GObject *o, gpointer data) gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de)); - g_object_set (dict_view, - "model", vs->dict, + + g_object_set (dict_view, "model", scd.dict, "selection-mode", GTK_SELECTION_SINGLE, NULL); - psppire_selector_set_subjects (PSPPIRE_SELECTOR (var_selector), - dict_view, syntax_area, - insert_source_row_into_text_view, - NULL, - NULL); - + psppire_selector_set_select_func (PSPPIRE_SELECTOR (var_selector), + insert_source_row_into_text_view, NULL); function_list_populate (GTK_TREE_VIEW (functions)); - psppire_selector_set_subjects (PSPPIRE_SELECTOR (func_selector), - functions, syntax_area, - insert_function_into_syntax_area, - NULL, - NULL); - + psppire_selector_set_select_func (PSPPIRE_SELECTOR (func_selector), + insert_function_into_syntax_area, NULL); scd.xml = xml; @@ -444,23 +434,10 @@ compute_dialog (GObject *o, gpointer data) switch (response) { case GTK_RESPONSE_OK: - { - gchar *syntax = generate_syntax (&scd); - - struct getl_interface *sss = create_syntax_string_source (syntax); - execute_syntax (sss); - - g_free (syntax); - } + g_free (execute_syntax_string (de, generate_syntax (&scd))); break; case PSPPIRE_RESPONSE_PASTE: - { - gchar *syntax = generate_syntax (&scd); - - paste_syntax_in_new_window (syntax); - - g_free (syntax); - } + g_free (paste_syntax_to_window (generate_syntax (&scd))); break; default: break; @@ -522,6 +499,7 @@ function_list_populate (GtkTreeView *tv) } gtk_tree_view_set_model (tv, GTK_TREE_MODEL (liststore)); + g_object_unref (liststore); } @@ -603,7 +581,6 @@ insert_source_row_into_text_view (GtkTreeIter iter, gint *idx; struct variable *var; GtkTreeIter dict_iter; - gchar *name; GtkTextBuffer *buffer; g_return_if_fail (GTK_IS_TEXT_VIEW (dest)); @@ -631,13 +608,10 @@ insert_source_row_into_text_view (GtkTreeIter iter, gtk_tree_path_free (path); - name = pspp_locale_to_utf8 (var_get_name (var), -1, NULL); - buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (dest)); erase_selection (buffer); - gtk_text_buffer_insert_at_cursor (buffer, name, -1); + gtk_text_buffer_insert_at_cursor (buffer, var_get_name (var), -1); - g_free (name); }