X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-data-window.c;h=ffa9482eb0f4b766c391e32ac7c3ecac9dca3087;hb=66153a44d861ccddf6a176ec5a94ffb959232ad6;hp=52ec0d49b25db95eedcdff6f2924e9b7196e75dd;hpb=537fdeb3702c011e05d7826a8d556a7beeba2605;p=pspp-builds.git diff --git a/src/ui/gui/psppire-data-window.c b/src/ui/gui/psppire-data-window.c index 52ec0d49..ffa9482e 100644 --- a/src/ui/gui/psppire-data-window.c +++ b/src/ui/gui/psppire-data-window.c @@ -18,6 +18,7 @@ #include #include +#include "executor.h" #include "helper.h" #include "text-data-import-dialog.h" @@ -230,12 +231,14 @@ on_filter_change (GObject *o, gint filter_index, gpointer data) else { PsppireVarStore *vs = NULL; + PsppireDict *dict = NULL; struct variable *var ; gchar *text ; g_object_get (de->data_editor, "var-store", &vs, NULL); + g_object_get (vs, "dictionary", &dict, NULL); - var = psppire_dict_get_variable (vs->dict, filter_index); + var = psppire_dict_get_variable (dict, filter_index); text = g_strdup_printf (_("Filter by %s"), var_get_name (var)); @@ -301,11 +304,13 @@ on_weight_change (GObject *o, gint weight_index, gpointer data) { struct variable *var ; PsppireVarStore *vs = NULL; + PsppireDict *dict = NULL; gchar *text; g_object_get (de->data_editor, "var-store", &vs, NULL); - - var = psppire_dict_get_variable (vs->dict, weight_index); + g_object_get (vs, "dictionary", &dict, NULL); + + var = psppire_dict_get_variable (dict, weight_index); text = g_strdup_printf (_("Weight by %s"), var_get_name (var)); @@ -404,7 +409,17 @@ sysfile_chooser_dialog (PsppireWindow *toplevel) gchar *filename = NULL; g_object_get (toplevel, "filename", &filename, NULL); - dir_name = g_path_get_dirname (filename); + if ( ! g_path_is_absolute (filename)) + { + gchar *path = + g_build_filename (g_get_current_dir (), filename, NULL); + dir_name = g_path_get_dirname (path); + g_free (path); + } + else + { + dir_name = g_path_get_dirname (filename); + } gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), dir_name); free (dir_name); @@ -510,7 +525,6 @@ static void insert_case (GtkAction *action, gpointer data) { PsppireDataWindow *dw = PSPPIRE_DATA_WINDOW (data); - psppire_data_editor_insert_case (dw->data_editor); } @@ -1080,6 +1094,7 @@ static void psppire_data_window_init (PsppireDataWindow *de) { PsppireVarStore *vs; + PsppireDict *dict = NULL; GtkWidget *menubar; GtkWidget *hb ; @@ -1135,15 +1150,17 @@ psppire_data_window_init (PsppireDataWindow *de) g_assert(vs); /* Traps a possible bug in w32 build */ - g_signal_connect (vs->dict, "weight-changed", + g_object_get (vs, "dictionary", &dict, NULL); + + g_signal_connect (dict, "weight-changed", G_CALLBACK (on_weight_change), de); - g_signal_connect (vs->dict, "filter-changed", + g_signal_connect (dict, "filter-changed", G_CALLBACK (on_filter_change), de); - g_signal_connect (vs->dict, "split-changed", + g_signal_connect (dict, "split-changed", G_CALLBACK (on_split_change), de); @@ -1839,28 +1856,29 @@ psppire_data_window_init (PsppireDataWindow *de) de); } - de->data_sheet_variable_popup_menu = - GTK_MENU (create_data_sheet_variable_popup_menu (de)); - - de->var_sheet_variable_popup_menu = - GTK_MENU (create_var_sheet_variable_popup_menu (de)); + { + GtkUIManager *uim = GTK_UI_MANAGER (get_object_assert (de->builder, "uimanager1", GTK_TYPE_UI_MANAGER)); - de->data_sheet_cases_popup_menu = - GTK_MENU (create_data_sheet_cases_popup_menu (de)); + PSPPIRE_WINDOW (de)->menu = + GTK_MENU_SHELL (gtk_ui_manager_get_widget (uim,"/ui/menubar/windows/windows_minimise_all")->parent); + } { - GtkUIManager *uim = GTK_UI_MANAGER (get_object_assert (de->builder, "uimanager1", GTK_TYPE_UI_MANAGER)); + GtkMenu *data_sheet_variable_popup_menu = + GTK_MENU (create_data_sheet_variable_popup_menu (de)); - PSPPIRE_WINDOW (de)->menu = - GTK_MENU_SHELL (gtk_ui_manager_get_widget (uim,"/ui/menubar/windows/windows_minimise_all")->parent); - } + GtkMenu *var_sheet_variable_popup_menu = + GTK_MENU (create_var_sheet_variable_popup_menu (de)); + GtkMenu *data_sheet_cases_popup_menu = + GTK_MENU (create_data_sheet_cases_popup_menu (de)); - g_object_set (de->data_editor, - "datasheet-column-menu", de->data_sheet_variable_popup_menu, - "datasheet-row-menu", de->data_sheet_cases_popup_menu, - "varsheet-row-menu", de->var_sheet_variable_popup_menu, - NULL); + g_object_set (de->data_editor, + "datasheet-column-menu", data_sheet_variable_popup_menu, + "datasheet-row-menu", data_sheet_cases_popup_menu, + "varsheet-row-menu", var_sheet_variable_popup_menu, + NULL); + } gtk_widget_show (GTK_WIDGET (de->data_editor)); gtk_widget_show (box);