X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Faggregate-dialog.c;h=7fce9f55637481e837719c0f4a29a8a8672c76f1;hb=3a1a4a18f0371b955a91346df9c9958ccce0a14d;hp=744e9cf1b8ffffae5eb0d0f884608b148bff7f69;hpb=21f2e65c7c2555bf5422920651eab07d1e8f5154;p=pspp diff --git a/src/ui/gui/aggregate-dialog.c b/src/ui/gui/aggregate-dialog.c index 744e9cf1b8..7fce9f5563 100644 --- a/src/ui/gui/aggregate-dialog.c +++ b/src/ui/gui/aggregate-dialog.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2010 Free Software Foundation + Copyright (C) 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,7 +17,6 @@ #include #include "dialog-common.h" -#include #include @@ -36,6 +35,7 @@ #include "dict-display.h" #include "executor.h" +#include "builder-wrapper.h" #include "helper.h" #include @@ -85,6 +85,8 @@ struct aggregate GtkWidget *sorted_button; GtkWidget *needs_sort_button; + + GtkWidget *pane; }; @@ -120,9 +122,10 @@ refresh (struct aggregate *agg) gtk_entry_set_text (GTK_ENTRY (agg->summary_arg1_entry), ""); gtk_entry_set_text (GTK_ENTRY (agg->summary_arg2_entry), ""); gtk_entry_set_text (GTK_ENTRY (agg->summary_var_label_entry), ""); - gtk_entry_set_text (GTK_ENTRY (agg->summary_var_name_entry), ""); + gtk_entry_set_text (GTK_ENTRY (agg->summary_var_name_entry), "N_BREAK"); + gtk_editable_select_region (GTK_EDITABLE (agg->summary_var_name_entry), 0, -1); - gtk_combo_box_set_active (GTK_COMBO_BOX (agg->function_combo), -1); + gtk_combo_box_set_active (GTK_COMBO_BOX (agg->function_combo), N); gtk_list_store_clear (PSPPIRE_ACR (agg->summary_acr)->list_store); @@ -162,20 +165,19 @@ choose_filename (struct aggregate *fd) GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); + g_object_set (dialog, "local-only", FALSE, NULL); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("System Files (*.sav)")); - gtk_file_filter_add_pattern (filter, "*.sav"); - gtk_file_filter_add_pattern (filter, "*.SAV"); + gtk_file_filter_add_mime_type (filter, "application/x-spss-sav"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("Portable Files (*.por) ")); - gtk_file_filter_add_pattern (filter, "*.por"); - gtk_file_filter_add_pattern (filter, "*.POR"); + gtk_file_filter_add_mime_type (filter, "application/x-spss-por"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); @@ -211,7 +213,7 @@ populate_combo_model (GtkComboBox *cb) gtk_list_store_append (list, &iter); gtk_list_store_set (list, &iter, - COMBO_MODEL_COL_DESC, s, + COMBO_MODEL_COL_DESC, gettext (s), COMBO_MODEL_COL_SYNTAX, af->name, COMBO_MODEL_COL_SRC_VARS, af->src_vars, COMBO_MODEL_COL_ARITY, af->n_args, @@ -356,9 +358,9 @@ enum /* Set VAL to the value appropriate for COL according to the current state of the dialog */ static gboolean -get_summary_spec (gint col, GValue *val, - const struct aggregate *agg) +get_summary_spec (gint col, GValue *val, gpointer data) { + const struct aggregate *agg = data; switch (col) { case SUMMARY_COL_VARNAME: @@ -445,6 +447,20 @@ on_acr_change (const struct aggregate *agg, GtkTreeView *tv) } +/* Set the pane to 50% of its maximum size */ +static void +set_initial_pos (GtkPaned *pane) +{ + int max_pos; + g_object_get (pane, + "max-position", &max_pos, + NULL); + + gtk_paned_set_position (pane, max_pos); +} + + + /* Pops up the Aggregate dialog box */ void aggregate_dialog (PsppireDataWindow *dw) @@ -467,6 +483,8 @@ aggregate_dialog (PsppireDataWindow *dw) source = get_widget_assert (fd.xml, "dict-view"); break_selector = get_widget_assert (fd.xml, "break-selector"); + fd.pane = get_widget_assert (fd.xml, "hbox1"); + fd.break_variables = get_widget_assert (fd.xml, "psppire-var-view1"); fd.filename_radiobutton = get_widget_assert (fd.xml, "filename-radiobutton"); fd.filename_button = get_widget_assert (fd.xml, "filename-button"); @@ -515,7 +533,7 @@ aggregate_dialog (PsppireDataWindow *dw) column = gtk_tree_view_get_column (PSPPIRE_ACR (fd.summary_acr)->tv, 0); - l = gtk_tree_view_column_get_cell_renderers (column); + l = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (column)); cell_renderer = l->data; @@ -535,6 +553,10 @@ aggregate_dialog (PsppireDataWindow *dw) g_signal_connect_swapped (fd.summary_arg1_entry, "changed", G_CALLBACK (update_acr), &fd); g_signal_connect_swapped (fd.summary_arg2_entry, "changed", G_CALLBACK (update_acr), &fd); + + g_signal_connect (fd.pane, "realize", G_CALLBACK (set_initial_pos), &fd); + + g_signal_connect_swapped (fd.function_combo, "changed", G_CALLBACK (update_arguments), &fd); @@ -568,22 +590,10 @@ aggregate_dialog (PsppireDataWindow *dw) switch (response) { case GTK_RESPONSE_OK: - { - gchar *syntax = generate_syntax (&fd); - - struct getl_interface *sss = create_syntax_string_source (syntax); - execute_syntax (sss); - - g_free (syntax); - } + g_free (execute_syntax_string (dw, generate_syntax (&fd))); break; case PSPPIRE_RESPONSE_PASTE: - { - gchar *syntax = generate_syntax (&fd); - paste_syntax_to_window (syntax); - - g_free (syntax); - } + g_free (paste_syntax_to_window (generate_syntax (&fd))); break; default: break;