X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fui%2Fgui%2Fpsppire-data-window.c;h=5273c6170dab520f85d3846cc089b07585728bfa;hb=90235aa878616d2fac8b539416dd806b135a44e6;hp=b2f61c60a30d45acc1608b6bc33c47c7dda60866;hpb=258cbd9cdf386687122b0854274923acafc786d4;p=pspp diff --git a/src/ui/gui/psppire-data-window.c b/src/ui/gui/psppire-data-window.c index b2f61c60a3..5273c6170d 100644 --- a/src/ui/gui/psppire-data-window.c +++ b/src/ui/gui/psppire-data-window.c @@ -36,8 +36,6 @@ #include "ui/gui/psppire-encoding-selector.h" #include "ui/gui/psppire-syntax-window.h" #include "ui/gui/psppire-window.h" -#include "ui/gui/psppire-data-sheet.h" -#include "ui/gui/psppire-var-sheet.h" #include "ui/gui/windows-menu.h" #include "ui/gui/goto-case-dialog.h" #include "ui/gui/psppire.h" @@ -47,6 +45,8 @@ #include "gl/c-strcasestr.h" #include "gl/xvasprintf.h" +#include "ui/gui/efficient-sheet/jmd-sheet.h" + #include "find-dialog.h" #include "psppire-dialog-action-1sks.h" #include "psppire-dialog-action-aggregate.h" @@ -1063,51 +1063,63 @@ set_data_page (PsppireDataWindow *dw) static void on_cut (PsppireDataWindow *dw) { +#if SHEET_MERGE int p = gtk_notebook_get_current_page (GTK_NOTEBOOK (dw->data_editor)); if (p == 0) { PsppireDataSheet *ds = psppire_data_editor_get_active_data_sheet (dw->data_editor); psppire_data_sheet_edit_cut (ds); } +#endif } + + static void on_copy (PsppireDataWindow *dw) { int p = gtk_notebook_get_current_page (GTK_NOTEBOOK (dw->data_editor)); if (p == 0) { - PsppireDataSheet *ds = psppire_data_editor_get_active_data_sheet (dw->data_editor); - psppire_data_sheet_edit_copy (ds); + GtkClipboard *clip = + gtk_clipboard_get_for_display (gtk_widget_get_display (GTK_WIDGET (dw)), + GDK_SELECTION_CLIPBOARD); + + jmd_sheet_set_clip (JMD_SHEET (dw->data_editor->data_sheet), clip); } } static void on_paste (PsppireDataWindow *dw) { +#if SHEET_MERGE int p = gtk_notebook_get_current_page (GTK_NOTEBOOK (dw->data_editor)); if (p == 0) { PsppireDataSheet *ds = psppire_data_editor_get_active_data_sheet (dw->data_editor); psppire_data_sheet_edit_paste (ds); } +#endif } static void on_clear_cases (PsppireDataWindow *dw) { +#if SHEET_MERGE int p = gtk_notebook_get_current_page (GTK_NOTEBOOK (dw->data_editor)); if (p == 0) { PsppireDataSheet *ds = psppire_data_editor_get_active_data_sheet (dw->data_editor); psppire_data_sheet_edit_clear_cases (ds); } +#endif } static void on_clear_variables (PsppireDataWindow *dw) { +#if SHEET_MERGE int p = gtk_notebook_get_current_page (GTK_NOTEBOOK (dw->data_editor)); if (p == 0) { @@ -1118,12 +1130,15 @@ on_clear_variables (PsppireDataWindow *dw) { psppire_var_sheet_clear_variables (PSPPIRE_VAR_SHEET (dw->data_editor->var_sheet)); } +#endif } + static void insert_variable (PsppireDataWindow *dw) { +#if SHEET_MERGE int p = gtk_notebook_get_current_page (GTK_NOTEBOOK (dw->data_editor)); if (p == 0) { @@ -1134,27 +1149,34 @@ insert_variable (PsppireDataWindow *dw) { psppire_var_sheet_insert_variable (PSPPIRE_VAR_SHEET (dw->data_editor->var_sheet)); } +#endif } + static void insert_case_at_row (PsppireDataWindow *dw) { +#if SHEET_MERGE PsppireDataSheet *ds = psppire_data_editor_get_active_data_sheet (dw->data_editor); psppire_data_sheet_insert_case (ds); +#endif } + + static void goto_case (PsppireDataWindow *dw) { +#if SHEET_MERGE PsppireDataSheet *ds = psppire_data_editor_get_active_data_sheet (dw->data_editor); goto_case_dialog (ds); +#endif } - static GtkWidget * create_file_menu (PsppireDataWindow *dw) { @@ -1287,6 +1309,7 @@ create_file_menu (PsppireDataWindow *dw) return menuitem; } + static GtkWidget * create_edit_menu (PsppireDataWindow *dw) { @@ -1365,7 +1388,6 @@ create_edit_menu (PsppireDataWindow *dw) return menuitem; } - static void psppire_data_window_finish_init (PsppireDataWindow *de, struct dataset *ds) @@ -1432,7 +1454,7 @@ psppire_data_window_finish_init (PsppireDataWindow *de, G_CALLBACK (on_split_change), de); - g_signal_connect_swapped (de->dict, "backend-changed", + g_signal_connect_swapped (de->dict, "changed", G_CALLBACK (enable_save), de); g_signal_connect_swapped (de->dict, "variable-inserted", G_CALLBACK (enable_save), de); @@ -1739,6 +1761,7 @@ psppire_data_window_finish_init (PsppireDataWindow *de, ll_push_head (&all_data_windows, &de->ll); } + static void psppire_data_window_dispose (GObject *object) { @@ -1841,6 +1864,7 @@ psppire_data_window_get_property (GObject *object, } + GtkWidget* psppire_data_window_new (struct dataset *ds) { @@ -1874,12 +1898,15 @@ psppire_data_window_new (struct dataset *ds) return dw; } + + bool psppire_data_window_is_empty (PsppireDataWindow *dw) { return psppire_dict_get_var_cnt (dw->dict) == 0; } + static void psppire_data_window_iface_init (PsppireWindowIface *iface) { @@ -1890,6 +1917,7 @@ psppire_data_window_iface_init (PsppireWindowIface *iface) + PsppireDataWindow * psppire_default_data_window (void) { @@ -1898,6 +1926,8 @@ psppire_default_data_window (void) return ll_data (ll_head (&all_data_windows), PsppireDataWindow, ll); } + + void psppire_data_window_set_default (PsppireDataWindow *pdw) { @@ -1912,6 +1942,8 @@ psppire_data_window_undefault (PsppireDataWindow *pdw) ll_push_tail (&all_data_windows, &pdw->ll); } + + PsppireDataWindow * psppire_data_window_for_dataset (struct dataset *ds) { @@ -1924,6 +1956,8 @@ psppire_data_window_for_dataset (struct dataset *ds) return NULL; } +#if SHEET_MERGE + PsppireDataWindow * psppire_data_window_for_data_store (PsppireDataStore *data_store) { @@ -1936,6 +1970,8 @@ psppire_data_window_for_data_store (PsppireDataStore *data_store) return NULL; } +#endif + GtkWindow * create_data_window (void) { @@ -1946,6 +1982,8 @@ create_data_window (void) return GTK_WINDOW (w); } + + void open_data_window (PsppireWindow *victim, const char *file_name, const char *encoding, gpointer hint)