projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Enable the Edit Copy functionality
[pspp]
/
src
/
ui
/
gui
/
psppire-data-window.c
diff --git
a/src/ui/gui/psppire-data-window.c
b/src/ui/gui/psppire-data-window.c
index b2f61c60a30d45acc1608b6bc33c47c7dda60866..5273c6170dab520f85d3846cc089b07585728bfa 100644
(file)
--- 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-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"
#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 "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"
#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)
{
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);
}
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)
{
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)
{
}
}
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);
}
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)
{
}
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);
}
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)
{
}
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)
{
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));
}
{
psppire_var_sheet_clear_variables (PSPPIRE_VAR_SHEET (dw->data_editor->var_sheet));
}
+#endif
}
}
+
static void
insert_variable (PsppireDataWindow *dw)
{
static void
insert_variable (PsppireDataWindow *dw)
{
+#if SHEET_MERGE
int p = gtk_notebook_get_current_page (GTK_NOTEBOOK (dw->data_editor));
if (p == 0)
{
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));
}
{
psppire_var_sheet_insert_variable (PSPPIRE_VAR_SHEET (dw->data_editor->var_sheet));
}
+#endif
}
}
+
static void
insert_case_at_row (PsppireDataWindow *dw)
{
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);
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)
{
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);
PsppireDataSheet *ds = psppire_data_editor_get_active_data_sheet (dw->data_editor);
goto_case_dialog (ds);
+#endif
}
}
-
static GtkWidget *
create_file_menu (PsppireDataWindow *dw)
{
static GtkWidget *
create_file_menu (PsppireDataWindow *dw)
{
@@
-1287,6
+1309,7
@@
create_file_menu (PsppireDataWindow *dw)
return menuitem;
}
return menuitem;
}
+
static GtkWidget *
create_edit_menu (PsppireDataWindow *dw)
{
static GtkWidget *
create_edit_menu (PsppireDataWindow *dw)
{
@@
-1365,7
+1388,6
@@
create_edit_menu (PsppireDataWindow *dw)
return menuitem;
}
return menuitem;
}
-
static void
psppire_data_window_finish_init (PsppireDataWindow *de,
struct dataset *ds)
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_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);
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);
}
ll_push_head (&all_data_windows, &de->ll);
}
+
static void
psppire_data_window_dispose (GObject *object)
{
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)
{
GtkWidget*
psppire_data_window_new (struct dataset *ds)
{
@@
-1874,12
+1898,15
@@
psppire_data_window_new (struct dataset *ds)
return dw;
}
return dw;
}
+
+
bool
psppire_data_window_is_empty (PsppireDataWindow *dw)
{
return psppire_dict_get_var_cnt (dw->dict) == 0;
}
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)
{
static void
psppire_data_window_iface_init (PsppireWindowIface *iface)
{
@@
-1890,6
+1917,7
@@
psppire_data_window_iface_init (PsppireWindowIface *iface)
\f
\f
+
PsppireDataWindow *
psppire_default_data_window (void)
{
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);
}
return ll_data (ll_head (&all_data_windows), PsppireDataWindow, ll);
}
+
+
void
psppire_data_window_set_default (PsppireDataWindow *pdw)
{
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);
}
ll_push_tail (&all_data_windows, &pdw->ll);
}
+
+
PsppireDataWindow *
psppire_data_window_for_dataset (struct dataset *ds)
{
PsppireDataWindow *
psppire_data_window_for_dataset (struct dataset *ds)
{
@@
-1924,6
+1956,8
@@
psppire_data_window_for_dataset (struct dataset *ds)
return NULL;
}
return NULL;
}
+#if SHEET_MERGE
+
PsppireDataWindow *
psppire_data_window_for_data_store (PsppireDataStore *data_store)
{
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;
}
return NULL;
}
+#endif
+
GtkWindow *
create_data_window (void)
{
GtkWindow *
create_data_window (void)
{
@@
-1946,6
+1982,8
@@
create_data_window (void)
return GTK_WINDOW (w);
}
return GTK_WINDOW (w);
}
+
+
void
open_data_window (PsppireWindow *victim, const char *file_name,
const char *encoding, gpointer hint)
void
open_data_window (PsppireWindow *victim, const char *file_name,
const char *encoding, gpointer hint)