X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-dialog-action-descriptives.c;h=9140e19c3c21100f6e86863b5e3a445909cbe5bf;hb=fc6620099bbc53762095569d5356b67a81a85402;hp=04781ea8f3ca193fa2ff3976c532dd0a034741f8;hpb=d6cbbc8d634fa91f050661355139a4e4697e99ab;p=pspp diff --git a/src/ui/gui/psppire-dialog-action-descriptives.c b/src/ui/gui/psppire-dialog-action-descriptives.c index 04781ea8f3..9140e19c3c 100644 --- a/src/ui/gui/psppire-dialog-action-descriptives.c +++ b/src/ui/gui/psppire-dialog-action-descriptives.c @@ -192,22 +192,29 @@ dialog_refresh (PsppireDialogAction *scd_) gtk_toggle_button_set_active (scd->save_z_scores, false); } + static void psppire_dialog_action_descriptives_activate (GtkAction *a) { PsppireDialogAction *pda = PSPPIRE_DIALOG_ACTION (a); PsppireDialogActionDescriptives *act = PSPPIRE_DIALOG_ACTION_DESCRIPTIVES (a); - GtkBuilder *xml = builder_new ("descriptives.ui"); + GHashTable *thing = psppire_dialog_action_get_pointer (pda); + GtkBuilder *xml = g_hash_table_lookup (thing, a); + if (!xml) + { + xml = builder_new ("descriptives.ui"); + g_hash_table_insert (thing, a, xml); + } - GtkWidget *stats_treeview = get_widget_assert (xml, "statistics"); + GtkWidget *stats_treeview = get_widget_assert (xml, "statistics"); pda->dialog = get_widget_assert (xml, "descriptives-dialog"); pda->source = get_widget_assert (xml, "all-variables"); act->variables = get_widget_assert (xml, "stat-variables"); g_object_set (pda->source, - "predicate", var_is_numeric, NULL); + "predicate", var_is_numeric, NULL); psppire_checkbox_treeview_populate (PSPPIRE_CHECKBOX_TREEVIEW (stats_treeview), B_DS_DEFAULT, @@ -227,8 +234,6 @@ psppire_dialog_action_descriptives_activate (GtkAction *a) psppire_dialog_action_set_refresh (pda, dialog_refresh); PSPPIRE_DIALOG_ACTION_CLASS (psppire_dialog_action_descriptives_parent_class)->activate (pda); - - g_object_unref (xml); } static void