dialog_state_valid (gpointer pda)
{
PsppireDialogActionAutorecode *rd = PSPPIRE_DIALOG_ACTION_AUTORECODE (pda);
-
+
GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (rd->var_view));
const gint n_vars = gtk_tree_model_iter_n_children (model, NULL);
if (n_vars == 0)
return FALSE;
-
+
if (g_hash_table_size (rd->varmap) != n_vars)
return FALSE;
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));
-
+
}
/* Name-Label pair */
nlp->label = NULL;
- if ( label != NULL && 0 != strcmp ("", label))
+ if (label != NULL && 0 != strcmp ("", label))
nlp->label = g_strdup (label);
return nlp;
nlp_destroy (gpointer data)
{
struct nlp *nlp = data ;
- if ( ! nlp )
+ if (! nlp)
return;
g_free (nlp->name);
static char *
-generate_syntax (PsppireDialogAction *act)
+generate_syntax (const PsppireDialogAction *act)
{
PsppireDialogActionAutorecode *rd = PSPPIRE_DIALOG_ACTION_AUTORECODE (act);
-
+
GHashTableIter iter;
gpointer key, value;
gchar *text;
g_string_append (string, "\n\tVARIABLES =");
g_hash_table_iter_init (&iter, rd->varmap);
- while (g_hash_table_iter_next (&iter, &key, &value))
+ while (g_hash_table_iter_next (&iter, &key, &value))
{
struct variable *var = key;
g_string_append (string, " ");
g_string_append (string, " INTO");
g_hash_table_iter_init (&iter, rd->varmap);
- while (g_hash_table_iter_next (&iter, &key, &value))
+ while (g_hash_table_iter_next (&iter, &key, &value))
{
struct nlp *nlp = value;
g_string_append (string, " ");
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");
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);
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))
valid = FALSE;
gpointer key, value;
g_hash_table_iter_init (&iter, rd->varmap);
- while (g_hash_table_iter_next (&iter, &key, &value))
+ while (g_hash_table_iter_next (&iter, &key, &value))
{
struct nlp *nlp = value;
-
- if ( 0 == strcmp (nlp->name, text))
+
+ if (0 == strcmp (nlp->name, text))
{
valid = FALSE;
break;
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;
GtkTreeIter iter;
gtk_widget_set_sensitive (rd->new_name_entry, TRUE);
- gtk_widget_set_sensitive (rd->change_button, TRUE);
+ gtk_widget_set_sensitive (rd->change_button, TRUE);
ok = gtk_tree_model_get_iter (model, &iter, (GtkTreePath*) rows->data);
PsppireDialogActionAutorecode *rd = PSPPIRE_DIALOG_ACTION_AUTORECODE (data);
-
+
struct variable *var = NULL;
- gtk_tree_model_get (tree_model, iter,
+ gtk_tree_model_get (tree_model, iter,
0, &var,
-1);
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;
+ {
+ GtkTreeSelection *sel;
- GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+ GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
- GtkTreeViewColumn *col = gtk_tree_view_column_new_with_attributes (_("New"),
- renderer,
- "text", NULL,
- NULL);
+ GtkTreeViewColumn *col = gtk_tree_view_column_new_with_attributes (_("New"),
+ renderer,
+ "text", NULL,
+ NULL);
- gtk_tree_view_column_set_cell_data_func (col, renderer,
- render_new_var_name,
- act, NULL);
+ 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);
+ 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);
+ col = gtk_tree_view_get_column (GTK_TREE_VIEW (act->var_view), 0);
- g_object_set (col, "title", _("Old"), NULL);
+ g_object_set (col, "title", _("Old"), NULL);
- g_object_set (act->var_view, "headers-visible", TRUE, NULL);
+ 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);
+ 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 (sel, "changed",
+ G_CALLBACK (on_selection_change), act);
- g_signal_connect (act->change_button, "clicked",
- G_CALLBACK (on_change_clicked), 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);
+ 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);
- if (PSPPIRE_DIALOG_ACTION_CLASS (psppire_dialog_action_autorecode_parent_class)->activate)
- PSPPIRE_DIALOG_ACTION_CLASS (psppire_dialog_action_autorecode_parent_class)->activate (pda);
+ 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;
}