X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-data-store.c;h=2059d75ad716e42439a616f671f9b3701d155960;hb=2165f59ab9eee5272b4037e45477811627cae078;hp=29efbb16c72783d360410a1d6e095ee68f41d731;hpb=fe7885d731f2dcb6f30e97192b51f493abcfc2c9;p=pspp-builds.git diff --git a/src/ui/gui/psppire-data-store.c b/src/ui/gui/psppire-data-store.c index 29efbb16..2059d75a 100644 --- a/src/ui/gui/psppire-data-store.c +++ b/src/ui/gui/psppire-data-store.c @@ -222,7 +222,7 @@ psppire_data_store_get_value_count (const PsppireDataStore *store) return psppire_dict_get_value_cnt (store->dict); } -casenumber +static casenumber psppire_data_store_get_case_count_wrapper (const GSheetModel *model) { const PsppireDataStore *store = PSPPIRE_DATA_STORE (model); @@ -275,7 +275,6 @@ psppire_data_store_sheet_model_init (GSheetModelIface *iface) iface->is_editable = NULL; iface->get_foreground = NULL; iface->get_background = NULL; - 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_wrapper; @@ -299,8 +298,10 @@ delete_variable_callback (GObject *obj, gint dict_index, { PsppireDataStore *store = PSPPIRE_DATA_STORE (data); -#if AXIS_TRANSITION + g_sheet_model_columns_deleted (G_SHEET_MODEL (store), dict_index, 1); +#if AXIS_TRANSITION + g_sheet_column_columns_changed (G_SHEET_COLUMN (store), dict_index, -1); @@ -352,6 +353,7 @@ insert_variable_callback (GObject *obj, gint var_num, gpointer data) psppire_data_store_insert_values (store, 1, posn); #if AXIS_TRANSITION + g_sheet_column_columns_changed (G_SHEET_COLUMN (store), var_num, 1); #endif @@ -644,6 +646,8 @@ psppire_data_store_clear_datum (GSheetModel *model, psppire_data_store_set_value (store, row, index, &v, var_get_width (pv)); + g_sheet_model_range_changed (model, row, col, row, col); + return TRUE; } @@ -672,6 +676,8 @@ psppire_data_store_set_string (PsppireDataStore *store, var_get_case_index (pv), ss_cstr (text), var_get_write_format (pv)); + g_sheet_model_range_changed (G_SHEET_MODEL (store), row, col, row, col); + return TRUE; } @@ -859,6 +865,7 @@ psppire_data_store_delete_cases (PsppireDataStore *ds, casenumber first, datasheet_delete_rows (ds->datasheet, first, n_cases); g_signal_emit (ds, signals [CASES_DELETED], 0, first, n_cases); + g_sheet_model_rows_deleted (G_SHEET_MODEL (ds), first, n_cases); return TRUE; } @@ -881,7 +888,10 @@ psppire_data_store_insert_case (PsppireDataStore *ds, result = datasheet_insert_rows (ds->datasheet, posn, &tmp, 1); if ( result ) - g_signal_emit (ds, signals [CASE_INSERTED], 0, posn); + { + g_signal_emit (ds, signals [CASE_INSERTED], 0, posn); + g_sheet_model_rows_inserted (G_SHEET_MODEL (ds), posn, 1); + } else g_warning ("Cannot insert case at position %ld\n", posn); @@ -938,6 +948,7 @@ psppire_data_store_set_value (PsppireDataStore *ds, casenumber casenum, ok = datasheet_put_value (ds->datasheet, casenum, idx, v, width); if (ok) g_signal_emit (ds, signals [CASE_CHANGED], 0, casenum); + return ok; } @@ -964,12 +975,12 @@ psppire_data_store_data_in (PsppireDataStore *ds, casenumber casenum, gint idx, && data_in (input, LEGACY_NATIVE, fmt->type, 0, 0, 0, value, width) && datasheet_put_value (ds->datasheet, casenum, idx, value, width)); + freea (value); + if (ok) g_signal_emit (ds, signals [CASE_CHANGED], 0, casenum); - freea (value); - - return TRUE; + return ok; } /* Resize the cases in the casefile, by inserting N_VALUES into every