/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2007 Free Software Foundation
+ Copyright (C) 2007, 2009 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
#include "recode-dialog.h"
+#include "executor.h"
+
+#include "psppire-var-view.h"
+
#include <gtk/gtk.h>
+#include <xalloc.h>
#include <language/syntax-string-source.h>
-#include <ui/gui/data-editor.h>
+#include <ui/gui/psppire-data-window.h>
#include <ui/gui/dialog-common.h>
#include <ui/gui/dict-display.h>
#include <ui/gui/helper.h>
#include <ui/gui/psppire-dialog.h>
#include <ui/gui/psppire-var-store.h>
-#include <ui/gui/syntax-editor.h>
+
#include <ui/syntax-gen.h>
#include "psppire-acr.h"
struct new_value *copy = g_memdup (nv, sizeof (*copy));
if ( nv->type == NV_STRING )
- copy->v.s = strdup (nv->v.s);
+ copy->v.s = xstrdup (nv->v.s);
return copy;
}
gtk_widget_set_sensitive (target, state);
}
-static void recode_dialog (struct data_editor *de, gboolean diff);
+static void recode_dialog (PsppireDataWindow *de, gboolean diff);
/* Pops up the Recode Same version of the dialog box */
void
recode_same_dialog (GObject *o, gpointer data)
{
- struct data_editor *de = data;
+ PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data);
recode_dialog (de, FALSE);
}
void
recode_different_dialog (GObject *o, gpointer data)
{
- struct data_editor *de = data;
+ PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data);
recode_dialog (de, TRUE);
}
}
static void
-recode_dialog (struct data_editor *de, gboolean diff)
+recode_dialog (PsppireDataWindow *de, gboolean diff)
{
gint response;
rd.new_name_entry = get_widget_assert (builder, "dest-name-entry");
rd.new_label_entry = get_widget_assert (builder, "dest-label-entry");
- rd.dict = vs->dict;
+ g_object_get (vs, "dictionary", &rd.dict, NULL);
rd.value_map = gtk_list_store_new (2,
old_value_get_type (),
rd.different = diff;
- gtk_window_set_transient_for (GTK_WINDOW (rd.dialog), de->parent.window);
-
+ gtk_window_set_transient_for (GTK_WINDOW (rd.dialog), GTK_WINDOW (de));
- attach_dictionary_to_treeview (GTK_TREE_VIEW (rd.dict_treeview),
- vs->dict,
- GTK_SELECTION_MULTIPLE, NULL);
+ g_object_set (rd.dict_treeview, "model", rd.dict, NULL);
-
- if ( ! rd.different )
- {
- set_dest_model (GTK_TREE_VIEW (rd.variable_treeview), vs->dict);
- }
- else
+ if (rd.different)
{
GtkTreeSelection *sel;
GtkTreeViewColumn *col;
G_TYPE_STRING);
-
gtk_tree_view_set_model (GTK_TREE_VIEW (rd.variable_treeview),
GTK_TREE_MODEL (rd.var_map));
NULL);
gtk_tree_view_column_set_cell_data_func (col, renderer,
- cell_var_name,
- vs->dict, 0);
+ XXX_cell_var_name,
+ rd.dict, 0);
gtk_tree_view_append_column (GTK_TREE_VIEW (rd.variable_treeview), col);
G_CALLBACK (select_something), &rd);
}
-
-
- psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
- rd.dict_treeview,
- rd.variable_treeview,
- insert_source_row_into_tree_view,
- NULL,
- NULL);
-
psppire_selector_set_allow (PSPPIRE_SELECTOR (selector), homogeneous_types);
/* Set up the Old & New Values subdialog */
PSPPIRE_DIALOG (get_widget_assert (builder, "old-new-values-dialog"));
gtk_window_set_transient_for (GTK_WINDOW (rd.old_and_new_dialog),
- de->parent.window);
+ GTK_WINDOW (de));
rd.acr = PSPPIRE_ACR (get_widget_assert (builder, "psppire-acr1"));
case GTK_RESPONSE_OK:
{
gchar *syntax = generate_syntax (&rd);
+
struct getl_interface *sss = create_syntax_string_source (syntax);
execute_syntax (sss);
case PSPPIRE_RESPONSE_PASTE:
{
gchar *syntax = generate_syntax (&rd);
-
- struct syntax_editor *se =
- (struct syntax_editor *) window_create (WINDOW_SYNTAX, NULL);
-
- gtk_text_buffer_insert_at_cursor (se->buffer, syntax, -1);
+ paste_syntax_in_new_window (syntax);
g_free (syntax);
}
/* Find the type of the first variable (it's invariant that
all variables are of the same type) */
const struct variable *v;
- gint idx;
GtkTreeIter iter;
GtkTreeModel *model =
gtk_tree_view_get_model (GTK_TREE_VIEW (rd->variable_treeview));
g_return_if_fail (not_empty);
- gtk_tree_model_get (model, &iter, 0, &idx, -1);
-
- v = psppire_dict_get_variable (rd->dict, idx);
+ gtk_tree_model_get (model, &iter, 0, &v, -1);
rd->input_var_is_string = var_is_alpha (v);
g_string_append (str, "\nRECODE ");
- append_variable_names (str, rd->dict, GTK_TREE_VIEW (rd->variable_treeview), 0);
+ psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->variable_treeview), 0, str);
g_string_append (str, "\n\t");