[gnumeric] GUI: Fix date edit problem.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] GUI: Fix date edit problem.
- Date: Mon, 20 Sep 2010 16:34:31 +0000 (UTC)
commit 0bd1972f82cd23229e06c4b50be0e1a5baa30b80
Author: Morten Welinder <terra gnome org>
Date: Mon Sep 20 12:34:08 2010 -0400
GUI: Fix date edit problem.
ChangeLog | 7 ++++++-
NEWS | 3 +++
src/sheet.c | 32 +++++++++++++++++++++-----------
3 files changed, 30 insertions(+), 12 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index b94ad32..c1bd1ba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-20 Morten Welinder <terra gnome org>
+
+ * src/sheet.c (sheet_range_set_text): Get a format for matching
+ from upper left corner of range. Mostly fixes #630177.
+
2010-09-20 Andreas J. Guelzow <aguelzow pyrshep ca>
* src/wbc-gtk-actions.c (sort_by_rows): quieten spurious warning
@@ -15,7 +20,7 @@
2010-09-12 Andreas J. Guelzow <aguelzow pyrshep ca>
* src/sheet-object-widget.c (sheet_widget_frame_*et_property): new
-
+
2010-09-09 Andreas J. Guelzow <aguelzow pyrshep ca>
* src/sheet-object-widget.c: add "value" property to radio_button
diff --git a/NEWS b/NEWS
index ec89c36..8def5b3 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,9 @@ J.H.M. Dassen (Ray):
* Fix several potential and actual problems highlighted by
LLVM/clang static analysis.
+Morten:
+ * Fix date entry problem. [#630177]
+
--------------------------------------------------------------------------
Gnumeric 1.10.10
diff --git a/src/sheet.c b/src/sheet.c
index 048beba..7699746 100644
--- a/src/sheet.c
+++ b/src/sheet.c
@@ -2527,44 +2527,54 @@ sheet_range_set_text (GnmParsePos const *pos, GnmRange const *r, char const *str
{
closure_set_cell_value closure;
GSList *merged, *ptr;
+ GOFormat const *fmt;
+ Sheet *sheet;
+ GnmCell *cell;
g_return_if_fail (pos != NULL);
g_return_if_fail (r != NULL);
g_return_if_fail (str != NULL);
+ sheet = pos->sheet;
+
+ /* Arbitrarily Use the format from upper left cell. */
+ cell = sheet_cell_get (sheet, r->start.col, r->start.row);
+ fmt = cell ? gnm_cell_get_format (cell) : NULL;
+
parse_text_value_or_expr (pos, str,
- &closure.val, &closure.texpr,
- NULL /* TODO : Use edit_pos format ?? */,
- workbook_date_conv (pos->sheet->workbook));
+ &closure.val, &closure.texpr,
+ fmt,
+ workbook_date_conv (sheet->workbook));
if (closure.texpr) {
- range_init_full_sheet (&closure.expr_bound, pos->sheet);
+ range_init_full_sheet (&closure.expr_bound, sheet);
gnm_expr_top_get_boundingbox (closure.texpr,
- pos->sheet,
+ sheet,
&closure.expr_bound);
}
/* Store the parsed result creating any cells necessary */
- sheet_foreach_cell_in_range (pos->sheet, CELL_ITER_ALL,
+ sheet_foreach_cell_in_range (sheet, CELL_ITER_ALL,
r->start.col, r->start.row, r->end.col, r->end.row,
(CellIterFunc)&cb_set_cell_content, &closure);
- merged = gnm_sheet_merge_get_overlap (pos->sheet, r);
+ merged = gnm_sheet_merge_get_overlap (sheet, r);
for (ptr = merged ; ptr != NULL ; ptr = ptr->next) {
GnmRange const *tmp = ptr->data;
- sheet_foreach_cell_in_range (pos->sheet, CELL_ITER_ALL,
- tmp->start.col, tmp->start.row, tmp->end.col, tmp->end.row,
+ sheet_foreach_cell_in_range (sheet, CELL_ITER_ALL,
+ tmp->start.col, tmp->start.row,
+ tmp->end.col, tmp->end.row,
(CellIterFunc)&cb_clear_non_corner, (gpointer)tmp);
}
g_slist_free (merged);
- sheet_region_queue_recalc (pos->sheet, r);
+ sheet_region_queue_recalc (sheet, r);
value_release (closure.val);
if (closure.texpr)
gnm_expr_top_unref (closure.texpr);
- sheet_flag_status_update_range (pos->sheet, r);
+ sheet_flag_status_update_range (sheet, r);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]