/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2008 Free Software Foundation
+ Copyright (C) 2008, 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 <ui/gui/psppire-dialog.h>
#include <ui/gui/psppire-var-sheet.h>
#include <ui/gui/psppire-var-store.h>
-#include <ui/gui/helper.h>
+#include "executor.h"
#include "error.h"
#include "xalloc.h"
#define N_(msgid) msgid
-#if !GTK_CHECK_VERSION (2, 10, 0)
-
-void
-text_data_import_assistant (GObject *o, gpointer de_)
-{
- struct data_editor *de = de_;
-
- GtkWidget *dialog =
- gtk_message_dialog_new (GTK_WINDOW (de),
- GTK_DIALOG_MODAL,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_CLOSE,
- _("The text import assistant has not been "
- "compiled into this build of PSPPIRE, because "
- "GTK+ version 2.10.0 or later was not available."));
-
- gtk_dialog_run (GTK_DIALOG (dialog));
-
- gtk_widget_destroy (dialog);
-}
-
-#else
-
/* TextImportModel, a GtkTreeModel used by the text data import
dialog. */
enum
/* Pops up the Text Data Import assistant. */
void
-text_data_import_assistant (GObject *o, gpointer de_)
+text_data_import_assistant (GObject *o, GtkWindow *parent_window)
{
- struct data_editor *de = de_;
- GtkWindow *parent_window = GTK_WINDOW (de);
struct import_assistant *ia;
ia = xzalloc (sizeof *ia);
gtk_window_set_title (GTK_WINDOW (a->assistant),
_("Importing Delimited Text Data"));
gtk_window_set_transient_for (GTK_WINDOW (a->assistant), parent_window);
+ gtk_window_set_icon_name (GTK_WINDOW (a->assistant), "psppicon");
a->prop_renderer = gtk_cell_renderer_text_new ();
g_object_ref_sink (a->prop_renderer);
on_prepare (GtkAssistant *assistant, GtkWidget *page,
struct import_assistant *ia)
{
+
+ if (gtk_assistant_get_page_type (assistant, page)
+ == GTK_ASSISTANT_PAGE_CONFIRM)
+ gtk_widget_grab_focus (assistant->apply);
+ else
+ gtk_widget_grab_focus (assistant->forward);
+
if (page == ia->separators.page)
prepare_separators_page (ia);
else if (page == ia->formats.page)
};
#define SEPARATOR_CNT (sizeof separators / sizeof *separators)
+static void
+set_quote_list (GtkComboBoxEntry *cb)
+{
+ GtkListStore *list = gtk_list_store_new (1, G_TYPE_STRING);
+ GtkTreeIter iter;
+ gint i;
+ const gchar *seperator[3] = {"'\"", "\'", "\""};
+
+ for (i = 0; i < 3; i++)
+ {
+ const gchar *s = seperator[i];
+
+ /* Add a new row to the model */
+ gtk_list_store_append (list, &iter);
+ gtk_list_store_set (list, &iter,
+ 0, s,
+ -1);
+
+ }
+
+ gtk_combo_box_set_model (GTK_COMBO_BOX (cb), GTK_TREE_MODEL (list));
+
+ gtk_combo_box_entry_set_text_column (cb, 0);
+}
+
/* Initializes IA's separators substructure. */
static void
init_separators_page (struct import_assistant *ia)
p->escape_cb = get_widget_assert (builder, "escape");
set_separators (ia);
+ set_quote_list (GTK_COMBO_BOX_ENTRY (p->quote_combo));
p->fields_tree_view = GTK_TREE_VIEW (get_widget_assert (builder, "fields"));
- g_signal_connect (GTK_COMBO_BOX (p->quote_combo), "changed",
+ g_signal_connect (p->quote_combo, "changed",
G_CALLBACK (on_quote_combo_change), ia);
g_signal_connect (p->quote_cb, "toggled",
G_CALLBACK (on_quote_cb_toggle), ia);
- g_signal_connect (GTK_ENTRY (p->custom_entry), "notify::text",
+ g_signal_connect (p->custom_entry, "notify::text",
G_CALLBACK (on_separators_custom_entry_notify), ia);
g_signal_connect (p->custom_cb, "toggled",
G_CALLBACK (on_separators_custom_cb_toggle), ia);
ds_destroy (&custom);
any_quotes = !ds_is_empty (&s->quotes);
+
gtk_entry_set_text (s->quote_entry,
any_quotes ? ds_cstr (&s->quotes) : "\"");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (s->quote_cb),
gdk_window_set_cursor (widget->window, NULL);
}
}
-
-#endif