[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pspp-cvs] pspp lib/gtksheet/gtksheet.c lib/gtksheet/gtksh...
From: |
John Darrington |
Subject: |
[Pspp-cvs] pspp lib/gtksheet/gtksheet.c lib/gtksheet/gtksh... |
Date: |
Tue, 10 Jul 2007 07:40:02 +0000 |
CVSROOT: /sources/pspp
Module name: pspp
Changes by: John Darrington <jmd> 07/07/10 07:40:02
Modified files:
lib/gtksheet : gtksheet.c gtksheet.h
src/ui/gui : data-editor.c psppire-data-store.c
psppire-data-store.h
Log message:
Enabled deletion of cases from the datasheet.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/lib/gtksheet/gtksheet.c?cvsroot=pspp&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/pspp/lib/gtksheet/gtksheet.h?cvsroot=pspp&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/gui/data-editor.c?cvsroot=pspp&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/gui/psppire-data-store.c?cvsroot=pspp&r1=1.45&r2=1.46
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/gui/psppire-data-store.h?cvsroot=pspp&r1=1.16&r2=1.17
Patches:
Index: lib/gtksheet/gtksheet.c
===================================================================
RCS file: /sources/pspp/pspp/lib/gtksheet/gtksheet.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- lib/gtksheet/gtksheet.c 9 Jul 2007 05:21:12 -0000 1.21
+++ lib/gtksheet/gtksheet.c 10 Jul 2007 07:40:02 -0000 1.22
@@ -2215,6 +2215,8 @@
gtk_sheet_real_select_range (sheet, NULL);
}
+
+
void
gtk_sheet_clip_range (GtkSheet *sheet, const GtkSheetRange *range)
{
@@ -4707,6 +4709,16 @@
gtk_signal_emit (GTK_OBJECT (sheet), sheet_signals[SELECT_RANGE],
&sheet->range);
}
+
+void
+gtk_sheet_get_selected_range (GtkSheet *sheet,
+ GtkSheetRange *range)
+{
+ g_return_if_fail (sheet != NULL);
+ *range = sheet->range;
+}
+
+
void
gtk_sheet_select_range (GtkSheet * sheet, const GtkSheetRange *range)
{
Index: lib/gtksheet/gtksheet.h
===================================================================
RCS file: /sources/pspp/pspp/lib/gtksheet/gtksheet.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- lib/gtksheet/gtksheet.h 9 Jul 2007 05:21:12 -0000 1.11
+++ lib/gtksheet/gtksheet.h 10 Jul 2007 07:40:02 -0000 1.12
@@ -353,6 +353,11 @@
void
gtk_sheet_get_visible_range (GtkSheet *sheet,
GtkSheetRange *range);
+
+void
+gtk_sheet_get_selected_range (GtkSheet *sheet,
+ GtkSheetRange *range);
+
void
gtk_sheet_set_selection_mode (GtkSheet *sheet, gint mode);
Index: src/ui/gui/data-editor.c
===================================================================
RCS file: /sources/pspp/pspp/src/ui/gui/data-editor.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- src/ui/gui/data-editor.c 9 Jul 2007 05:21:12 -0000 1.36
+++ src/ui/gui/data-editor.c 10 Jul 2007 07:40:02 -0000 1.37
@@ -494,17 +494,27 @@
G_CALLBACK (reference_manual),
e->window);
- g_signal_connect (get_widget_assert (de->xml,"data_sheet"),
+ g_signal_connect (data_sheet,
"double-click-column",
G_CALLBACK (click2column),
de);
- g_signal_connect (get_widget_assert (de->xml, "variable_sheet"),
+ g_signal_connect (data_sheet,
+ "select-row",
+ GTK_SIGNAL_FUNC (enable_edit_clear),
+ de);
+
+ g_signal_connect (data_sheet,
+ "activate",
+ GTK_SIGNAL_FUNC (disable_edit_clear),
+ de);
+
+ g_signal_connect (var_sheet,
"double-click-row",
GTK_SIGNAL_FUNC (click2row),
de);
- g_signal_connect (get_widget_assert (de->xml, "variable_sheet"),
+ g_signal_connect (var_sheet,
"select-row",
GTK_SIGNAL_FUNC (enable_edit_clear),
de);
@@ -844,42 +854,67 @@
}
-
/* Callback for when the Clear item in the edit menu is activated */
static void
on_clear_activate (GtkMenuItem *menuitem, gpointer data)
{
struct data_editor *de = data;
+ GtkSheet *sheet = NULL;
+ GtkSheetRange range ;
+
GtkNotebook *notebook = GTK_NOTEBOOK (get_widget_assert (de->xml,
"notebook"));
- switch ( gtk_notebook_get_current_page (notebook) )
+ const gint page = gtk_notebook_get_current_page (notebook);
+
+ sheet = GTK_SHEET
+ (get_widget_assert (de->xml,
+ (page == PAGE_VAR_SHEET) ? "variable_sheet" :
"data_sheet"));
+
+ /* This shouldn't be able to happen, because the menuitem
+ should be disabled */
+ g_return_if_fail (gtk_sheet_get_state (sheet) == GTK_SHEET_ROW_SELECTED );
+
+
+ gtk_sheet_get_selected_range (sheet, &range);
+
+ switch ( page )
{
case PAGE_VAR_SHEET:
{
- GtkSheet *var_sheet =
- GTK_SHEET (get_widget_assert (de->xml, "variable_sheet"));
-
PsppireVarStore *vs = PSPPIRE_VAR_STORE
- (gtk_sheet_get_model (var_sheet) );
+ (gtk_sheet_get_model (sheet) );
- /* This shouldn't be able to happen, because the menuitem
- should be disabled */
- g_return_if_fail (var_sheet->state == GTK_SHEET_ROW_SELECTED );
psppire_dict_delete_variables (vs->dict,
- var_sheet->range.row0,
+ range.row0,
1 +
- var_sheet->range.rowi -
- var_sheet->range.row0 );
+ range.rowi -
+ range.row0 );
}
break;
case PAGE_DATA_SHEET:
+ {
+ PsppireDataStore *data_store = PSPPIRE_DATA_STORE
+ (gtk_sheet_get_model (sheet) );
+
+
+ /* This shouldn't be able to happen, because the menuitem
+ should be disabled */
+ g_return_if_fail (gtk_sheet_get_state (sheet)
+ == GTK_SHEET_ROW_SELECTED );
+
+
+ psppire_data_store_delete_cases (data_store, range.row0,
+ 1 + range.rowi - range.row0);
+ }
break;
default:
g_assert_not_reached ();
}
+
+ gtk_sheet_unselect_range (sheet);
}
static void
Index: src/ui/gui/psppire-data-store.c
===================================================================
RCS file: /sources/pspp/pspp/src/ui/gui/psppire-data-store.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- src/ui/gui/psppire-data-store.c 9 Jul 2007 11:31:17 -0000 1.45
+++ src/ui/gui/psppire-data-store.c 10 Jul 2007 07:40:02 -0000 1.46
@@ -455,6 +455,15 @@
(* parent_class->finalize) (object);
}
+gboolean
+psppire_data_store_delete_cases (PsppireDataStore *ds,
+ casenumber first, casenumber count)
+{
+ g_return_val_if_fail (ds, FALSE);
+
+ return psppire_case_file_delete_cases (ds->case_file, count, first);
+}
+
/* Insert a blank case before POSN */
Index: src/ui/gui/psppire-data-store.h
===================================================================
RCS file: /sources/pspp/pspp/src/ui/gui/psppire-data-store.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- src/ui/gui/psppire-data-store.h 8 Jul 2007 10:49:31 -0000 1.16
+++ src/ui/gui/psppire-data-store.h 10 Jul 2007 07:40:02 -0000 1.17
@@ -99,6 +99,10 @@
gboolean psppire_data_store_insert_new_case (PsppireDataStore *ds, casenumber
posn);
+
+gboolean psppire_data_store_delete_cases (PsppireDataStore *ds, casenumber
first, casenumber count);
+
+
struct casereader * psppire_data_store_get_reader (PsppireDataStore *ds);
gchar * psppire_data_store_get_string (PsppireDataStore *ds,
- [Pspp-cvs] pspp lib/gtksheet/gtksheet.c lib/gtksheet/gtksh...,
John Darrington <=