projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Enabled deletion of cases from the datasheet.
[pspp-builds.git]
/
src
/
ui
/
gui
/
psppire-data-store.c
diff --git
a/src/ui/gui/psppire-data-store.c
b/src/ui/gui/psppire-data-store.c
index 976c533da5a45a54961ff931c1bc1244577032bd..40c3843fab3d429fffd3f8c43b27855015180a04 100644
(file)
--- a/
src/ui/gui/psppire-data-store.c
+++ b/
src/ui/gui/psppire-data-store.c
@@
-50,7
+50,7
@@
static void psppire_data_store_sheet_row_init (GSheetRowIface *iface);
static void psppire_data_store_finalize (GObject *object);
static gboolean psppire_data_store_clear_datum (GSheetModel *model,
static void psppire_data_store_finalize (GObject *object);
static gboolean psppire_data_store_clear_datum (GSheetModel *model,
- g
int row, gint
column);
+ g
long row, glong
column);
#define MIN_COLUMNS 10
#define MIN_COLUMNS 10
@@
-151,7
+151,7
@@
psppire_data_store_class_init (PsppireDataStoreClass *class)
-static g
int
+static g
long
psppire_data_store_get_var_count (const GSheetModel *model)
{
const PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
psppire_data_store_get_var_count (const GSheetModel *model)
{
const PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
@@
-159,15
+159,20
@@
psppire_data_store_get_var_count (const GSheetModel *model)
return psppire_dict_get_var_cnt (store->dict);
}
return psppire_dict_get_var_cnt (store->dict);
}
-static gint
-psppire_data_store_get_case_count (const GSheetModel *model)
+casenumber
+psppire_data_store_get_case_count (PsppireDataStore *store)
+{
+ return psppire_case_file_get_case_count (store->case_file);
+}
+
+static glong
+psppire_data_store_get_case_count_from_model (const GSheetModel *model)
{
const PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
return psppire_case_file_get_case_count (store->case_file);
}
{
const PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
return psppire_case_file_get_case_count (store->case_file);
}
-
static void
psppire_data_store_init (PsppireDataStore *data_store)
{
static void
psppire_data_store_init (PsppireDataStore *data_store)
{
@@
-178,7
+183,7
@@
psppire_data_store_init (PsppireDataStore *data_store)
const PangoFontDescription *
psppire_data_store_get_font_desc (const GSheetModel *model,
const PangoFontDescription *
psppire_data_store_get_font_desc (const GSheetModel *model,
- g
int row, gint
column)
+ g
long row, glong
column)
{
PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
{
PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
@@
-186,8
+191,8
@@
psppire_data_store_get_font_desc (const GSheetModel *model,
}
static inline gchar *
}
static inline gchar *
-psppire_data_store_get_string_wrapper (const GSheetModel *model, g
int
row,
- g
int
column)
+psppire_data_store_get_string_wrapper (const GSheetModel *model, g
long
row,
+ g
long
column)
{
return psppire_data_store_get_string (PSPPIRE_DATA_STORE (model), row, column);
}
{
return psppire_data_store_get_string (PSPPIRE_DATA_STORE (model), row, column);
}
@@
-196,7
+201,7
@@
psppire_data_store_get_string_wrapper (const GSheetModel *model, gint row,
static inline gboolean
psppire_data_store_set_string_wrapper (GSheetModel *model,
const gchar *text,
static inline gboolean
psppire_data_store_set_string_wrapper (GSheetModel *model,
const gchar *text,
- g
int row, gint
column)
+ g
long row, glong
column)
{
return psppire_data_store_set_string (PSPPIRE_DATA_STORE (model), text,
row, column);
{
return psppire_data_store_set_string (PSPPIRE_DATA_STORE (model), text,
row, column);
@@
-219,7
+224,7
@@
psppire_data_store_sheet_model_init (GSheetModelIface *iface)
iface->get_font_desc = psppire_data_store_get_font_desc;
iface->get_cell_border = NULL;
iface->get_column_count = psppire_data_store_get_var_count;
iface->get_font_desc = psppire_data_store_get_font_desc;
iface->get_cell_border = NULL;
iface->get_column_count = psppire_data_store_get_var_count;
- iface->get_row_count = psppire_data_store_get_case_count;
+ iface->get_row_count = psppire_data_store_get_case_count
_from_model
;
}
static
}
static
@@
-230,7
+235,8
@@
gboolean always_true ()
static void
static void
-delete_cases_callback (GtkWidget *w, gint first, gint n_cases, gpointer data)
+delete_cases_callback (GtkWidget *w,
+ casenumber first, casenumber n_cases, gpointer data)
{
PsppireDataStore *store ;
{
PsppireDataStore *store ;
@@
-245,7
+251,7
@@
delete_cases_callback (GtkWidget *w, gint first, gint n_cases, gpointer data)
static void
static void
-insert_case_callback (GtkWidget *w,
gint
casenum, gpointer data)
+insert_case_callback (GtkWidget *w,
casenumber
casenum, gpointer data)
{
PsppireDataStore *store ;
{
PsppireDataStore *store ;
@@
-449,21
+455,30
@@
psppire_data_store_finalize (GObject *object)
(* parent_class->finalize) (object);
}
(* 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 */
gboolean
/* Insert a blank case before POSN */
gboolean
-psppire_data_store_insert_new_case (PsppireDataStore *ds,
gint
posn)
+psppire_data_store_insert_new_case (PsppireDataStore *ds,
casenumber
posn)
{
gboolean result;
gint val_cnt, v;
struct ccase cc;
g_return_val_if_fail (ds, FALSE);
{
gboolean result;
gint val_cnt, v;
struct ccase cc;
g_return_val_if_fail (ds, FALSE);
-
- /* Opportunity for optimisation exists here when creating a blank case */
val_cnt = datasheet_get_column_cnt (ds->case_file->datasheet) ;
val_cnt = datasheet_get_column_cnt (ds->case_file->datasheet) ;
+ g_return_val_if_fail (val_cnt > 0, FALSE);
+
case_create (&cc, val_cnt);
memset ( case_data_rw_idx (&cc, 0), 0, val_cnt * MAX_SHORT_STRING);
case_create (&cc, val_cnt);
memset ( case_data_rw_idx (&cc, 0), 0, val_cnt * MAX_SHORT_STRING);
@@
-486,7
+501,7
@@
psppire_data_store_insert_new_case (PsppireDataStore *ds, gint posn)
gchar *
gchar *
-psppire_data_store_get_string (PsppireDataStore *store, g
int row, gint
column)
+psppire_data_store_get_string (PsppireDataStore *store, g
long row, glong
column)
{
gint idx;
char *text;
{
gint idx;
char *text;
@@
-553,8
+568,7
@@
psppire_data_store_get_string (PsppireDataStore *store, gint row, gint column)
static gboolean
psppire_data_store_clear_datum (GSheetModel *model,
static gboolean
psppire_data_store_clear_datum (GSheetModel *model,
- gint row, gint col)
-
+ glong row, glong col)
{
PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
{
PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
@@
-581,7
+595,7
@@
psppire_data_store_clear_datum (GSheetModel *model,
*/
gboolean
psppire_data_store_set_string (PsppireDataStore *store,
*/
gboolean
psppire_data_store_set_string (PsppireDataStore *store,
- const gchar *text, g
int row, gint
col)
+ const gchar *text, g
long row, glong
col)
{
const struct variable *pv = psppire_dict_get_variable (store->dict, col);
g_return_val_if_fail (pv, FALSE);
{
const struct variable *pv = psppire_dict_get_variable (store->dict, col);
g_return_val_if_fail (pv, FALSE);
@@
-666,7
+680,7
@@
psppire_data_store_get_reader (PsppireDataStore *ds)
/* Column related funcs */
/* Column related funcs */
-static g
int
+static g
long
geometry_get_column_count (const GSheetColumn *geom)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
geometry_get_column_count (const GSheetColumn *geom)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
@@
-677,7
+691,7
@@
geometry_get_column_count (const GSheetColumn *geom)
static gint
static gint
-geometry_get_width (const GSheetColumn *geom, g
int
unit)
+geometry_get_width (const GSheetColumn *geom, g
long
unit)
{
const struct variable *pv ;
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
{
const struct variable *pv ;
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
@@
-694,7
+708,7
@@
geometry_get_width (const GSheetColumn *geom, gint unit)
}
static void
}
static void
-geometry_set_width (GSheetColumn *geom, g
int
unit, gint width)
+geometry_set_width (GSheetColumn *geom, g
long
unit, gint width)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
@@
-706,7
+720,7
@@
geometry_set_width (GSheetColumn *geom, gint unit, gint width)
static GtkJustification
static GtkJustification
-geometry_get_justification (const GSheetColumn *geom, g
int
unit)
+geometry_get_justification (const GSheetColumn *geom, g
long
unit)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
const struct variable *pv ;
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
const struct variable *pv ;
@@
-726,7
+740,7
@@
geometry_get_justification (const GSheetColumn *geom, gint unit)
static const gchar null_var_name[]=N_("var");
static gchar *
static const gchar null_var_name[]=N_("var");
static gchar *
-geometry_get_column_button_label (const GSheetColumn *geom, g
int
unit)
+geometry_get_column_button_label (const GSheetColumn *geom, g
long
unit)
{
gchar *text;
struct variable *pv ;
{
gchar *text;
struct variable *pv ;
@@
-744,7
+758,7
@@
geometry_get_column_button_label (const GSheetColumn *geom, gint unit)
static gchar *
static gchar *
-geometry_get_column_subtitle (const GSheetColumn *geom, g
int
unit)
+geometry_get_column_subtitle (const GSheetColumn *geom, g
long
unit)
{
gchar *text;
const struct variable *v ;
{
gchar *text;
const struct variable *v ;
@@
-765,7
+779,7
@@
geometry_get_column_subtitle (const GSheetColumn *geom, gint unit)
static gboolean
static gboolean
-geometry_get_sensitivity (const GSheetColumn *geom, g
int
unit)
+geometry_get_sensitivity (const GSheetColumn *geom, g
long
unit)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
@@
-789,7
+803,7
@@
psppire_data_store_sheet_column_init (GSheetColumnIface *iface)
/* Row related funcs */
/* Row related funcs */
-static g
int
+static g
long
geometry_get_row_count (const GSheetRow *geom, gpointer data)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
geometry_get_row_count (const GSheetRow *geom, gpointer data)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
@@
-799,14
+813,14
@@
geometry_get_row_count (const GSheetRow *geom, gpointer data)
static gint
static gint
-geometry_get_height (const GSheetRow *geom, g
int
unit, gpointer data)
+geometry_get_height (const GSheetRow *geom, g
long
unit, gpointer data)
{
return 25;
}
static gboolean
{
return 25;
}
static gboolean
-geometry_get_row_sensitivity (const GSheetRow *geom, g
int
unit, gpointer data)
+geometry_get_row_sensitivity (const GSheetRow *geom, g
long
unit, gpointer data)
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
{
PsppireDataStore *ds = PSPPIRE_DATA_STORE (geom);
@@
-816,7
+830,7
@@
geometry_get_row_sensitivity (const GSheetRow *geom, gint unit, gpointer data)
static gchar *
static gchar *
-geometry_get_row_button_label (const GSheetRow *geom, g
int
unit, gpointer data)
+geometry_get_row_button_label (const GSheetRow *geom, g
long
unit, gpointer data)
{
gchar *text;
gchar *s;
{
gchar *text;
gchar *s;
@@
-826,7
+840,7
@@
geometry_get_row_button_label (const GSheetRow *geom, gint unit, gpointer data)
TRAILING_ROWS + psppire_case_file_get_case_count (ds->case_file))
return 0;
TRAILING_ROWS + psppire_case_file_get_case_count (ds->case_file))
return 0;
- s = g_strdup_printf (_("%d"), unit + FIRST_CASE_NUMBER);
+ s = g_strdup_printf (_("%
l
d"), unit + FIRST_CASE_NUMBER);
text = pspp_locale_to_utf8 (s, -1, 0);
text = pspp_locale_to_utf8 (s, -1, 0);
@@
-848,6
+862,3
@@
psppire_data_store_sheet_row_init (GSheetRowIface *iface)
iface->get_button_label = geometry_get_row_button_label;
}
iface->get_button_label = geometry_get_row_button_label;
}
-
-
-