#include "language/lexer/lexer.h"
#include "libpspp/message.h"
#include "libpspp/str.h"
-#include "ui/gui/aggregate-dialog.h"
-#include "ui/gui/autorecode-dialog.h"
#include "ui/gui/builder-wrapper.h"
-#include "ui/gui/comments-dialog.h"
#include "ui/gui/entry-dialog.h"
#include "ui/gui/executor.h"
#include "ui/gui/help-menu.h"
#include "ui/gui/helper.h"
#include "ui/gui/helper.h"
+#include "ui/gui/psppire-import-assistant.h"
#include "ui/gui/psppire-data-window.h"
#include "ui/gui/psppire-dialog-action.h"
#include "ui/gui/psppire-encoding-selector.h"
#include "ui/gui/psppire-syntax-window.h"
#include "ui/gui/psppire-window.h"
+#include "ui/gui/windows-menu.h"
#include "ui/gui/psppire.h"
-#include "ui/gui/recode-dialog.h"
-#include "ui/gui/select-cases-dialog.h"
-#include "ui/gui/split-file-dialog.h"
-#include "ui/gui/text-data-import-dialog.h"
-#include "ui/gui/weight-cases-dialog.h"
#include "ui/syntax-gen.h"
#include "gl/c-strcase.h"
}
ok = execute_syntax (PSPPIRE_DATA_WINDOW (de),
- lex_reader_for_string (syntax));
+ lex_reader_for_string (syntax, "UTF-8"));
g_free (syntax);
if (ok && syn == NULL)
g_object_set (de->data_editor, "value-labels", gtk_toggle_action_get_active (ta), NULL);
}
-static void
-toggle_split_window (PsppireDataWindow *de, GtkToggleAction *ta)
-{
- psppire_data_editor_split_window (de->data_editor,
- gtk_toggle_action_get_active (ta));
-}
-
static void
file_quit (PsppireDataWindow *de)
static void
psppire_data_window_init (PsppireDataWindow *de)
{
- GtkWidget *w ;
de->builder = builder_new ("data-editor.ui");
de->ui_manager = GTK_UI_MANAGER (get_object_assert (de->builder, "uimanager1", GTK_TYPE_UI_MANAGER));
- w = gtk_ui_manager_get_widget (de->ui_manager, "/ui/menubar/windows/windows_minimise_all");
-
- PSPPIRE_WINDOW (de)->menu = GTK_MENU_SHELL (gtk_widget_get_parent (w));
-
de->uim = NULL;
de->merge_id = 0;
}
+static void
+file_import (PsppireDataWindow *dw)
+{
+ GtkWidget *w = psppire_import_assistant_new (GTK_WINDOW (dw));
+ PsppireImportAssistant *asst = PSPPIRE_IMPORT_ASSISTANT (w);
+ gtk_widget_show_all (w);
+
+ asst->main_loop = g_main_loop_new (NULL, TRUE);
+ g_main_loop_run (asst->main_loop);
+ g_main_loop_unref (asst->main_loop);
+
+ if (!asst->file_name)
+ goto end;
+
+ switch (asst->response)
+ {
+ case GTK_RESPONSE_APPLY:
+ {
+ g_debug ("HERE");
+ gchar *fn = g_path_get_basename (asst->file_name);
+ open_data_window (PSPPIRE_WINDOW (dw), fn, NULL, psppire_import_assistant_generate_syntax (asst));
+ g_free (fn);
+ }
+ break;
+ case PSPPIRE_RESPONSE_PASTE:
+ g_debug ("THERE");
+ free (paste_syntax_to_window (psppire_import_assistant_generate_syntax (asst)));
+ break;
+ default:
+ break;
+ }
+
+ end:
+ gtk_widget_destroy (GTK_WIDGET (asst));
+}
+
static void
psppire_data_window_finish_init (PsppireDataWindow *de,
struct dataset *ds)
enable_save (de);
connect_action (de, "file_new_data", G_CALLBACK (create_data_window));
- connect_action (de, "file_import", G_CALLBACK (text_data_import_assistant));
+ connect_action (de, "file_import", G_CALLBACK (file_import));
+
connect_action (de, "file_save", G_CALLBACK (psppire_window_save));
connect_action (de, "file_open", G_CALLBACK (psppire_window_open));
connect_action (de, "file_save_as", G_CALLBACK (psppire_window_save_as));
g_signal_connect_swapped (get_action_assert (de->builder, "view_value-labels"), "toggled", G_CALLBACK (toggle_value_labels), de);
- connect_action (de, "data_select-cases", G_CALLBACK (select_cases_dialog));
- connect_action (de, "data_aggregate", G_CALLBACK (aggregate_dialog));
- connect_action (de, "transform_autorecode", G_CALLBACK (autorecode_dialog));
- connect_action (de, "data_split-file", G_CALLBACK (split_file_dialog));
- connect_action (de, "data_weight-cases", G_CALLBACK (weight_cases_dialog));
- connect_action (de, "utilities_comments", G_CALLBACK (comments_dialog));
- connect_action (de, "transform_recode-same", G_CALLBACK (recode_same_dialog));
- connect_action (de, "transform_recode-different", G_CALLBACK (recode_different_dialog));
-
{
GtkWidget *recent_data =
gtk_ui_manager_get_widget (de->ui_manager, "/ui/menubar/file/file_recent-data");
connect_action (de, "transform_run-pending", G_CALLBACK (execute));
- connect_action (de, "windows_minimise_all", G_CALLBACK (psppire_window_minimise_all));
-
- g_signal_connect_swapped (get_action_assert (de->builder, "windows_split"), "toggled", G_CALLBACK (toggle_split_window), de);
-
+ gtk_menu_shell_append (GTK_MENU_SHELL (menubar), create_windows_menu (GTK_WINDOW (de)));
gtk_menu_shell_append (GTK_MENU_SHELL (menubar), create_help_menu (GTK_WINDOW (de)));
g_signal_connect (de->data_editor, "notify::ui-manager",