X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-dialog-action-autorecode.c;h=2f1bdcbecbe7986ebd12e7b984b4d69bcd4fd0f6;hb=3990e1c55ccb6b246aff730309ae8efeaf7562da;hp=ad36dd0bc4a797eba6060118c697d544fb94e063;hpb=6e097c89af440da90b43ce90864394c4d0c843d5;p=pspp diff --git a/src/ui/gui/psppire-dialog-action-autorecode.c b/src/ui/gui/psppire-dialog-action-autorecode.c index ad36dd0bc4..2f1bdcbecb 100644 --- a/src/ui/gui/psppire-dialog-action-autorecode.c +++ b/src/ui/gui/psppire-dialog-action-autorecode.c @@ -23,6 +23,7 @@ #include #include "psppire-dialog.h" #include "builder-wrapper.h" +#include "helper.h" #include "gettext.h" #define _(msgid) gettext (msgid) @@ -68,7 +69,7 @@ refresh (PsppireDialogAction *pda) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->group), FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->blank), FALSE); - if (rd->varmap ) + if (rd->varmap) g_hash_table_remove_all (rd->varmap); gtk_list_store_clear (GTK_LIST_STORE (target_list)); @@ -92,7 +93,7 @@ nlp_create (const char *name, const char *label) nlp->label = NULL; - if ( label != NULL && 0 != strcmp ("", label)) + if (label != NULL && 0 != strcmp ("", label)) nlp->label = g_strdup (label); return nlp; @@ -102,7 +103,7 @@ static void nlp_destroy (gpointer data) { struct nlp *nlp = data ; - if ( ! nlp ) + if (! nlp) return; g_free (nlp->name); @@ -142,14 +143,14 @@ generate_syntax (const PsppireDialogAction *act) g_string_append (string, nlp->name); } - if ( ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->ascending))) + if (! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->ascending))) g_string_append (string, "\n\t/DESCENDING"); - if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->group))) + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->group))) g_string_append (string, "\n\t/GROUP"); - if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->blank))) - g_string_append (string, "\n\t/BLANK"); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->blank))) + g_string_append (string, "\n\t/BLANK = MISSING"); g_string_append (string, ".\n"); @@ -176,7 +177,7 @@ on_change_clicked (GObject *obj, gpointer data) const gchar *dest_var_name = gtk_entry_get_text (GTK_ENTRY (rd->new_name_entry)); - if ( NULL == rows || rows->next != NULL) + if (NULL == rows || rows->next != NULL) goto finish; gtk_tree_model_get_iter (model, &iter, rows->data); @@ -192,8 +193,9 @@ on_change_clicked (GObject *obj, gpointer data) gtk_tree_model_row_changed (model, rows->data, &iter); finish: - g_list_foreach (rows, (GFunc) gtk_tree_path_free, NULL); + g_list_foreach (rows, GFUNC_COMPAT_CAST (gtk_tree_path_free), NULL); g_list_free (rows); + var_unref (var); } @@ -203,9 +205,9 @@ on_entry_change (PsppireDialogActionAutorecode *rd) gboolean valid = TRUE; const char *text = gtk_entry_get_text (GTK_ENTRY (rd->new_name_entry)); - if ( 0 == strcmp ("", text)) + if (0 == strcmp ("", text)) valid = FALSE; - else if (psppire_dict_lookup_var (rd->dict, text)) + else if (psppire_dict_lookup_var (PSPPIRE_DIALOG_ACTION (rd)->dict, text)) valid = FALSE; else { @@ -217,7 +219,7 @@ on_entry_change (PsppireDialogActionAutorecode *rd) { struct nlp *nlp = value; - if ( 0 == strcmp (nlp->name, text)) + if (0 == strcmp (nlp->name, text)) { valid = FALSE; break; @@ -243,7 +245,7 @@ on_selection_change (GtkTreeSelection *selection, gpointer data) GList *rows = gtk_tree_selection_get_selected_rows (selection, &model); - if ( rows && !rows->next) + if (rows && !rows->next) { /* Exactly one row is selected */ struct nlp *nlp; @@ -274,7 +276,7 @@ on_selection_change (GtkTreeSelection *selection, gpointer data) gtk_widget_set_sensitive (rd->change_button, FALSE); } - g_list_foreach (rows, (GFunc) gtk_tree_path_free, NULL); + g_list_foreach (rows, GFUNC_COMPAT_CAST (gtk_tree_path_free), NULL); g_list_free (rows); } @@ -301,91 +303,82 @@ render_new_var_name (GtkTreeViewColumn *tree_column, nlp = g_hash_table_lookup (rd->varmap, var); - if ( nlp ) + if (nlp) g_object_set (cell, "text", nlp->name, NULL); else g_object_set (cell, "text", "", NULL); } -static void -psppire_dialog_action_autorecode_activate (PsppireDialogAction *a) +static GtkBuilder * +psppire_dialog_action_autorecode_activate (PsppireDialogAction *a, GVariant *param) { PsppireDialogActionAutorecode *act = PSPPIRE_DIALOG_ACTION_AUTORECODE (a); PsppireDialogAction *pda = PSPPIRE_DIALOG_ACTION (a); - GHashTable *thing = psppire_dialog_action_get_hash_table (pda); - GtkBuilder *xml = g_hash_table_lookup (thing, a); - if (!xml) - { - xml = builder_new ("autorecode.ui"); - g_hash_table_insert (thing, a, xml); - - pda->dialog = get_widget_assert (xml, "autorecode-dialog"); - pda->source = get_widget_assert (xml, "dict-view"); - - + GtkBuilder *xml = builder_new ("autorecode.ui"); + pda->dialog = get_widget_assert (xml, "autorecode-dialog"); + pda->source = get_widget_assert (xml, "dict-view"); - act->var_view = get_widget_assert (xml, "var-view"); + act->var_view = get_widget_assert (xml, "var-view"); - act->new_name_entry = get_widget_assert (xml, "entry1"); - act->change_button = get_widget_assert (xml, "button1"); - act->ascending = get_widget_assert (xml, "radiobutton1"); - act->group = get_widget_assert (xml, "checkbutton1"); - act->blank = get_widget_assert (xml, "checkbutton2"); + act->new_name_entry = get_widget_assert (xml, "entry1"); + act->change_button = get_widget_assert (xml, "button1"); + act->ascending = get_widget_assert (xml, "radiobutton1"); + act->group = get_widget_assert (xml, "checkbutton1"); + act->blank = get_widget_assert (xml, "checkbutton2"); - { - GtkTreeSelection *sel; - - GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); + { + GtkTreeSelection *sel; - GtkTreeViewColumn *col = gtk_tree_view_column_new_with_attributes (_("New"), - renderer, - "text", NULL, - NULL); + GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); - gtk_tree_view_column_set_cell_data_func (col, renderer, - render_new_var_name, - act, NULL); + GtkTreeViewColumn *col = gtk_tree_view_column_new_with_attributes (_("New"), + renderer, + "text", NULL, + NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (act->var_view), col); + gtk_tree_view_column_set_cell_data_func (col, renderer, + render_new_var_name, + act, NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (act->var_view), col); - col = gtk_tree_view_get_column (GTK_TREE_VIEW (act->var_view), 0); - g_object_set (col, "title", _("Old"), NULL); + col = gtk_tree_view_get_column (GTK_TREE_VIEW (act->var_view), 0); - g_object_set (act->var_view, "headers-visible", TRUE, NULL); + g_object_set (col, "title", _("Old"), NULL); - act->varmap = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, nlp_destroy); + g_object_set (act->var_view, "headers-visible", TRUE, NULL); + act->varmap = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, nlp_destroy); - sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (act->var_view)); + sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (act->var_view)); - g_signal_connect (sel, "changed", - G_CALLBACK (on_selection_change), act); - g_signal_connect (act->change_button, "clicked", - G_CALLBACK (on_change_clicked), act); + g_signal_connect (sel, "changed", + G_CALLBACK (on_selection_change), act); - g_signal_connect_swapped (act->new_name_entry, "changed", - G_CALLBACK (on_entry_change), act); + g_signal_connect (act->change_button, "clicked", + G_CALLBACK (on_change_clicked), act); - } + g_signal_connect_swapped (act->new_name_entry, "changed", + G_CALLBACK (on_entry_change), act); - } + } psppire_dialog_action_set_refresh (pda, refresh); psppire_dialog_action_set_valid_predicate (pda, dialog_state_valid); + return xml; } static void psppire_dialog_action_autorecode_class_init (PsppireDialogActionAutorecodeClass *class) { - psppire_dialog_action_set_activation (class, psppire_dialog_action_autorecode_activate); + PSPPIRE_DIALOG_ACTION_CLASS (class)->initial_activate = psppire_dialog_action_autorecode_activate; PSPPIRE_DIALOG_ACTION_CLASS (class)->generate_syntax = generate_syntax; }