[gnumeric] Graphs: fix problems with date axes.



commit cd0187cf8fbb101bd1652225135ebbe86b1536fc
Author: Morten Welinder <terra gnome org>
Date:   Tue Aug 31 20:58:32 2010 -0400

    Graphs: fix problems with date axes.

 ChangeLog                         |    5 +++++
 NEWS                              |    1 +
 src/wbc-gtk.c                     |   20 +++++++++++++-------
 src/widgets/ChangeLog             |    5 +++++
 src/widgets/gnumeric-expr-entry.c |   13 +++++++++----
 5 files changed, 33 insertions(+), 11 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index c4ffba3..41efe1c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-31  Morten Welinder  <terra gnome org>
+
+	* src/wbc-gtk.c (set_entry_contents): Set scalar values using the
+	editor's method for that.  That helps with formats.
+
 2010-08-30  Morten Welinder  <terra gnome org>
 
 	* src/clipboard.c (paste_cell): Also translate dates with
diff --git a/NEWS b/NEWS
index 4efc8d1..f10a2d0 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,7 @@ Morten:
 	* Allow use of glib's memory profiler.
 	* Fix some confusion of char vs. xmlChar.
 	* Fix elapsed-time entry.  [#628082]
+	* Fix problems with limits for date axes.
 
 --------------------------------------------------------------------------
 Gnumeric 1.10.9
diff --git a/src/wbc-gtk.c b/src/wbc-gtk.c
index fa77e60..1789cf5 100644
--- a/src/wbc-gtk.c
+++ b/src/wbc-gtk.c
@@ -5362,13 +5362,19 @@ cb_graph_dim_entry_changed (GraphDimEditor *editor)
 static void
 set_entry_contents (GnmExprEntry *entry, GOData *val)
 {
-	SheetControlGUI *scg = gnm_expr_entry_get_scg (entry);
-	Sheet const *sheet = scg_sheet (scg);
-	char *txt;
-
-	txt = go_data_serialize (val, (gpointer)sheet->convs);
-	gnm_expr_entry_load_from_text (entry, txt);
-	g_free (txt);
+	if (go_data_get_n_dimensions (val) == 0 &&
+	    go_data_get_n_values (val) == 1) {
+		double d = go_data_get_scalar_value (val);
+		GODateConventions const *date_conv = go_data_date_conv (val);
+		gog_data_editor_set_value_double (GOG_DATA_EDITOR (entry),
+						  d, date_conv);
+	} else {
+		SheetControlGUI *scg = gnm_expr_entry_get_scg (entry);
+		Sheet const *sheet = scg_sheet (scg);
+		char *txt = go_data_serialize (val, (gpointer)sheet->convs);
+		gnm_expr_entry_load_from_text (entry, txt);
+		g_free (txt);
+	}
 }
 
 static void
diff --git a/src/widgets/ChangeLog b/src/widgets/ChangeLog
index 60f08a3..2e82aa8 100644
--- a/src/widgets/ChangeLog
+++ b/src/widgets/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-31  Morten Welinder  <terra gnome org>
+
+	* gnumeric-expr-entry.c (gee_set_property): Don't do anything for
+	text changes that do not change anything.
+
 2010-08-16  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* gnumeric-expr-entry.c (gee_set_tooltip_completion): fix gettext/macro
diff --git a/src/widgets/gnumeric-expr-entry.c b/src/widgets/gnumeric-expr-entry.c
index 1a2c0f4..d64edff 100644
--- a/src/widgets/gnumeric-expr-entry.c
+++ b/src/widgets/gnumeric-expr-entry.c
@@ -458,10 +458,15 @@ gee_set_property (GObject      *object,
 			gtk_object_destroy (GTK_OBJECT (gee->icon));
 		break;
 
-	case PROP_TEXT:
-		gnm_expr_entry_load_from_text (gee, g_value_get_string (value));
-		gnm_expr_entry_signal_update (gee, FALSE);
+	case PROP_TEXT: {
+		const char *new_txt = g_value_get_string (value);
+		const char *old_txt = gnm_expr_entry_get_text (gee);
+		if (go_str_compare (new_txt, old_txt)) {
+			gnm_expr_entry_load_from_text (gee, new_txt);
+			gnm_expr_entry_signal_update (gee, FALSE);
+		}
 		break;
+	}
 
 	case PROP_FLAGS:
 		gnm_expr_entry_set_flags (gee,
@@ -1775,7 +1780,7 @@ gnm_expr_entry_find_range (GnmExprEntry *gee)
 		ptr = text;
 
 	if (gnm_debug_flag ("rangeselection"))
-		g_print ("text: >%s< -- cursor: >%s<\n", text, cursor);
+		g_printerr ("text: >%s< -- cursor: >%s<\n", text, cursor);
 
 	if (ptr[0] == '\0') {
 		rs->text_end = rs->text_start = 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]