[gnumeric] Fix autocorrection when entering in ranges. [#626781]



commit a59dcfc8536b3f8927306f87ff87deaf8f1923dd
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date:   Thu Aug 12 16:45:41 2010 -0600

    Fix autocorrection when entering in ranges. [#626781]
    
    2010-08-12  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* src/commands.c (cmd_area_set_text): use autocorrection

 ChangeLog      |    4 ++++
 NEWS           |    1 +
 src/commands.c |   24 +++++++++++++++---------
 3 files changed, 20 insertions(+), 9 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index a171d0f..19e543d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-08-12  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* src/commands.c (cmd_area_set_text): use autocorrection
+
 2010-08-12  Morten Welinder  <terra gnome org>
 
 	* src/cell.c (gnm_cell_set_expr_and_value, gnm_cell_set_value):
diff --git a/NEWS b/NEWS
index a6ea8d4..2ff669f 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ Andreas:
 	* Fix crash on paste into an empty expression entry. [#626648]
 	* Import and export boxplots to and from ODF files. [#626653]
 	* Improve handling of corrupted ODF files. [#626654][#626655]
+	* Fix autocorrection when entering in ranges. [#626781]
 
 Jean:
 	* Import Guppi graphs from gnumeric-1.0.x files. [#567953]
diff --git a/src/commands.c b/src/commands.c
index 86cf20d..021c2eb 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -971,9 +971,11 @@ cmd_area_set_text (WorkbookControl *wbc, SheetView *sv,
 	gboolean result;
 	char *text = NULL;
 	Sheet *sheet = sv_sheet (sv);
+	char *name;
 
 	g_return_val_if_fail (selection != NULL , TRUE);
 
+	name = undo_range_list_name (sheet, selection);
 	parse_pos_init_editpos (&pp, sv);
 	expr_txt = gnm_expr_char_start_p (new_text);
 	if (expr_txt != NULL)
@@ -982,14 +984,11 @@ cmd_area_set_text (WorkbookControl *wbc, SheetView *sv,
 			 sheet_get_conventions (pp.sheet), NULL);
 
 	if (texpr != NULL) {
-		char *name;
 		GOFormat *sf;
 		GnmEvalPos ep;
 		GnmStyle *new_style = NULL;
 
-		name = undo_range_list_name (sheet, selection);
 		text = g_strdup_printf (_("Inserting expression in %s"), name);
-		g_free (name);
 
 		sf = auto_style_format_suggest 
 			(texpr, eval_pos_init_editpos (&ep, sv));
@@ -1018,15 +1017,17 @@ cmd_area_set_text (WorkbookControl *wbc, SheetView *sv,
 	} else {
 		GString *text_str;
 		PangoAttrList *adj_markup = NULL;
+		char *corrected = (new_text != NULL) ? 
+			autocorrect_tool (new_text) : NULL;
 
-		text_str = gnm_cmd_trunc_descriptor (g_string_new (new_text), NULL);
-		text = g_strdup_printf (_("Typing \"%s\""), text_str->str);
+		text_str = gnm_cmd_trunc_descriptor (g_string_new (corrected), NULL);
+		text = g_strdup_printf (_("Typing \"%s\" in %s"), text_str->str, name);
 		g_string_free (text_str, TRUE);
 
 		if (go_pango_attr_list_is_empty (markup))
 			markup = NULL;
 
-		if (markup && new_text && new_text[0] == '\'') {
+		if (markup && corrected && corrected[0] == '\'') {
 			markup = adj_markup = pango_attr_list_copy (markup);
 			go_pango_attr_list_erase (adj_markup, 0, 1);
 		}
@@ -1035,9 +1036,12 @@ cmd_area_set_text (WorkbookControl *wbc, SheetView *sv,
 			GnmSheetRange *sr;
 			undo = go_undo_combine 
 				(undo, clipboard_copy_range_undo (sheet, l->data));
-			sr = gnm_sheet_range_new (sheet, l->data);
-			redo = go_undo_combine 
-				(redo, sheet_range_set_text_undo (sr, new_text));
+			if (corrected) {
+				sr = gnm_sheet_range_new (sheet, l->data);
+				redo = go_undo_combine 
+					(redo, sheet_range_set_text_undo 
+					 (sr, corrected));
+			}
 			if (markup) {
 				sr = gnm_sheet_range_new (sheet, l->data);
 				/* Note: order of combination matters!! */
@@ -1047,7 +1051,9 @@ cmd_area_set_text (WorkbookControl *wbc, SheetView *sv,
 		}
 		if (adj_markup)
 			pango_attr_list_unref (adj_markup);
+		g_free (corrected);
 	}
+	g_free (name);
 
 	result = cmd_generic (wbc, text, undo, redo);
 	g_free (text);



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