X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fcompute-dialog.c;h=46f9fbe07837b15f0c08fc367d792ee9881b6868;hb=681f6120a7998b83ccd439068d8c4090de10b9b5;hp=b9bfa2a9d36f300c4e46b1d2306c1359b4b4ee04;hpb=d46430e7458fcd65dfdf7928f52f2d06fa60127d;p=pspp diff --git a/src/ui/gui/compute-dialog.c b/src/ui/gui/compute-dialog.c index b9bfa2a9d3..46f9fbe078 100644 --- a/src/ui/gui/compute-dialog.c +++ b/src/ui/gui/compute-dialog.c @@ -21,7 +21,6 @@ #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 @@ -305,6 +304,24 @@ run_type_label_dialog (GtkButton *b, gpointer data) cd->use_type = TRUE; } +static void +on_type_toggled (GtkToggleButton *button, gpointer data) +{ + struct compute_dialog *cd = data; + + GtkWidget *entry = + get_widget_assert (cd->xml, "type-and-label-width"); + + if ( gtk_toggle_button_get_active (button)) + { + gtk_widget_set_sensitive (entry, TRUE); + gtk_widget_grab_focus (entry); + } + else + { + gtk_widget_set_sensitive (entry, FALSE); + } +} static void on_expression_toggle (GtkToggleButton *button, gpointer data) @@ -321,7 +338,6 @@ on_expression_toggle (GtkToggleButton *button, gpointer data) } else { - const char *label; struct variable *target_var; const gchar *target_name = gtk_entry_get_text (GTK_ENTRY (get_widget_assert (cd->xml, "compute-entry1"))); @@ -329,7 +345,7 @@ on_expression_toggle (GtkToggleButton *button, gpointer data) target_var = psppire_dict_lookup_var (cd->dict, target_name); if ( target_var ) { - label = var_get_label (target_var); + const char *label = var_get_label (target_var); if ( label ) gtk_entry_set_text (GTK_ENTRY (entry), label); @@ -338,6 +354,7 @@ on_expression_toggle (GtkToggleButton *button, gpointer data) gtk_entry_set_text (GTK_ENTRY (entry), ""); gtk_widget_set_sensitive (entry, TRUE); + gtk_widget_grab_focus (entry); } } @@ -369,7 +386,6 @@ compute_dialog (PsppireDataWindow *de) { gint response; - PsppireVarStore *vs = NULL; struct compute_dialog scd; GtkBuilder *xml = builder_new ("compute.ui"); @@ -387,14 +403,19 @@ compute_dialog (PsppireDataWindow *de) GtkWidget *expression = get_widget_assert (xml, "radio-button-expression-label"); + GtkWidget *str_btn = + get_widget_assert (xml, "radio-button-string"); - g_object_get (de->data_editor, "var-store", &vs, NULL); - g_object_get (vs, "dictionary", &scd.dict, NULL); + + g_object_get (de->data_editor, "dictionary", &scd.dict, NULL); scd.use_type = FALSE; g_signal_connect (expression, "toggled", G_CALLBACK(on_expression_toggle), &scd); + g_signal_connect (str_btn, "toggled", + G_CALLBACK(on_type_toggled), &scd); + gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de)); @@ -502,6 +523,7 @@ function_list_populate (GtkTreeView *tv) } gtk_tree_view_set_model (tv, GTK_TREE_MODEL (liststore)); + g_object_unref (liststore); }