[gnumeric] Permit data entry by-passing autocorrection.



commit 92f94a17ecaad1e0a1510d17f8cbaf2bedf62625
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date:   Sun Nov 28 17:12:36 2010 -0700

    Permit data entry by-passing autocorrection.
    
    2010-11-28  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* src/commands.h (cmd_set_text): add autocorrect flag
    	* src/commands.c (cmd_set_text): add autocorrect flag, change
    	all callers
    	(cmd_set_text_full): add autocorrect flag, change all callers
    	* src/wbc-gtk-edit.c (wbcg_edit_finish): handle WBC_EDIT_ACCEPT_WO_AC
    	* src/wbc-gtk.h (WBCEditResult): add WBC_EDIT_ACCEPT_WO_AC
    	* src/wbc-gtk.c (cb_accept_input_wo_ac): new
    	(cb_accept_input_menu): connect cb_accept_input_wo_ac

 ChangeLog                                 |   11 +++++++++++
 NEWS                                      |    1 +
 src/commands.c                            |   20 ++++++++++++++------
 src/commands.h                            |    2 +-
 src/wbc-gtk-edit.c                        |    7 ++++++-
 src/wbc-gtk.c                             |    8 ++++++++
 src/wbc-gtk.h                             |    2 ++
 src/widgets/gnm-sheet-slicer-combo-view.c |    2 +-
 src/widgets/gnm-validation-combo-view.c   |    2 +-
 9 files changed, 45 insertions(+), 10 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 450e601..d02769e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2010-11-28  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* src/commands.h (cmd_set_text): add autocorrect flag
+	* src/commands.c (cmd_set_text): add autocorrect flag, change 
+	all callers
+	(cmd_set_text_full): add autocorrect flag, change all callers
+	* src/wbc-gtk-edit.c (wbcg_edit_finish): handle WBC_EDIT_ACCEPT_WO_AC
+	* src/wbc-gtk.h (WBCEditResult): add WBC_EDIT_ACCEPT_WO_AC
+	* src/wbc-gtk.c (cb_accept_input_wo_ac): new
+	(cb_accept_input_menu): connect cb_accept_input_wo_ac
+	
 2010-11-25  Morten Welinder <terra gnome org>
 
 	* configure.in: Post-release bump.
diff --git a/NEWS b/NEWS
index db6e857..745aff7 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@ Gnumeric 1.10.13
 
 Andreas:
 	* Calculate residuals when using the regression tool. [#635064]
+	* Permit data entry by-passing autocorrection.
 
 --------------------------------------------------------------------------
 Gnumeric 1.10.12
diff --git a/src/commands.c b/src/commands.c
index 4eb589b..8b25e39 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -806,7 +806,8 @@ cmd_set_text_full_check_markup (GnmCellIter const *iter, PangoAttrList *markup)
 
 static gboolean
 cmd_set_text_full (WorkbookControl *wbc, GSList *selection, GnmEvalPos *ep,
-		   char const *new_text, PangoAttrList *markup)
+		   char const *new_text, PangoAttrList *markup, 
+		   gboolean autocorrect)
 {
 	GSList	*l;
 	char const *expr_txt;
@@ -891,10 +892,16 @@ cmd_set_text_full (WorkbookControl *wbc, GSList *selection, GnmEvalPos *ep,
 	} else {
 		GString *text_str;
 		PangoAttrList *adj_markup = NULL;
-		char *corrected = (new_text != NULL) ?
-			autocorrect_tool (new_text) : NULL;
+		char *corrected;
 		gboolean same_text = TRUE;
 		gboolean same_markup = TRUE;
+		
+		if (new_text == NULL)
+			corrected = NULL;
+		else if (autocorrect)
+			corrected = autocorrect_tool (new_text);
+		else
+			corrected = g_strdup (new_text);
 
 		if (corrected && (corrected[0] == '\'') && corrected[1] == '\0') {
 			g_free (corrected);
@@ -1075,7 +1082,7 @@ cmd_area_set_text (WorkbookControl *wbc, SheetView *sv,
 
 	eval_pos_init_editpos (&ep, sv);
 	result = cmd_set_text_full (wbc, selection, &ep,
-				    new_text, markup);
+				    new_text, markup, TRUE);
 	return result;
 }
 
@@ -1083,7 +1090,8 @@ gboolean
 cmd_set_text (WorkbookControl *wbc,
 	      Sheet *sheet, GnmCellPos const *pos,
 	      char const *new_text,
-	      PangoAttrList *markup)
+	      PangoAttrList *markup,
+	      gboolean autocorrect)
 {
 	GnmCell const *cell;
 	GnmEvalPos ep;
@@ -1107,7 +1115,7 @@ cmd_set_text (WorkbookControl *wbc,
 	r->start = r->end = *pos;
 	selection = g_slist_prepend (NULL, r);
 	result = cmd_set_text_full (wbc, selection, &ep,
-				    new_text, markup);
+				    new_text, markup, autocorrect);
 	return result;
 }
 
diff --git a/src/commands.h b/src/commands.h
index 4d2c75c..609936a 100644
--- a/src/commands.h
+++ b/src/commands.h
@@ -33,7 +33,7 @@ gboolean cmd_generic_with_size (WorkbookControl *wbc, const char *text,
 
 gboolean cmd_set_text		(WorkbookControl *wbc, Sheet *sheet,
 				 GnmCellPos const *pos, char const *new_text,
-				 PangoAttrList *markup);
+				 PangoAttrList *markup, gboolean autocorrect);
 
 gboolean cmd_area_set_text	(WorkbookControl *wbc, SheetView *sv,
 				 char const *text, PangoAttrList *markup);
diff --git a/src/wbc-gtk-edit.c b/src/wbc-gtk-edit.c
index 7f76e08..c58fe44 100644
--- a/src/wbc-gtk-edit.c
+++ b/src/wbc-gtk-edit.c
@@ -162,6 +162,7 @@ wbcg_edit_finish (WBCGtk *wbcg, WBCEditResult result,
 			}
 			break;
 		}
+		case (WBC_EDIT_ACCEPT_WO_AC):
 		case (WBC_EDIT_ACCEPT): {
 			GnmCell const *cell = sheet_cell_get
 				(sheet, sv->edit_pos.col, sv->edit_pos.row);
@@ -196,6 +197,7 @@ wbcg_edit_finish (WBCGtk *wbcg, WBCEditResult result,
 			}
 			break;
 		}
+		case (WBC_EDIT_ACCEPT_WO_AC):
 		case (WBC_EDIT_ACCEPT): {
 			GnmRange r;
 			r.end = r.start = pp.eval;
@@ -358,6 +360,7 @@ wbcg_edit_finish (WBCGtk *wbcg, WBCEditResult result,
 						       showed_dialog);
 			break;
 		}
+		case (WBC_EDIT_ACCEPT_WO_AC):
 		case (WBC_EDIT_ACCEPT): {
 			GnmRange r;
 			GnmCell *cell;
@@ -406,7 +409,9 @@ wbcg_edit_finish (WBCGtk *wbcg, WBCEditResult result,
 					? pango_attr_list_copy (wbcg->edit_line.markup)
 					: NULL;
 				if (result == WBC_EDIT_ACCEPT)
-					cmd_set_text (wbc, sheet, &sv->edit_pos, txt, res_markup);
+					cmd_set_text (wbc, sheet, &sv->edit_pos, txt, res_markup, TRUE);
+				else if (result == WBC_EDIT_ACCEPT_WO_AC)
+					cmd_set_text (wbc, sheet, &sv->edit_pos, txt, res_markup, FALSE);
 				else
 					cmd_area_set_text (wbc, sv, txt, res_markup);
 				if (res_markup)
diff --git a/src/wbc-gtk.c b/src/wbc-gtk.c
index 7678922..0e8695e 100644
--- a/src/wbc-gtk.c
+++ b/src/wbc-gtk.c
@@ -1953,6 +1953,12 @@ cb_accept_input (WBCGtk *wbcg)
 }
 
 static void
+cb_accept_input_wo_ac (WBCGtk *wbcg)
+{
+	wbcg_edit_finish (wbcg, WBC_EDIT_ACCEPT_WO_AC, NULL);
+}
+
+static void
 cb_accept_input_array (WBCGtk *wbcg)
 {
 	wbcg_edit_finish (wbcg, WBC_EDIT_ACCEPT_ARRAY, NULL);
@@ -2092,6 +2098,8 @@ cb_accept_input_menu (GtkMenuToolButton *button, WBCGtk *wbcg)
 	} const accept_input_actions [] = {
 		{ N_("Enter in current cell"),       cb_accept_input,
 		  NULL },
+		{ N_("Enter in current cell without autocorrection"), cb_accept_input_wo_ac,
+		  NULL },
 /* 		{ N_("Enter on all non-hidden sheets"), cb_accept_input_sheets,  */
 /* 		  cb_accept_input_menu_sensitive_sheets}, */
 /* 		{ N_("Enter on multiple sheets..."), cb_accept_input_selected_sheets,  */
diff --git a/src/wbc-gtk.h b/src/wbc-gtk.h
index 75d3b19..646ada2 100644
--- a/src/wbc-gtk.h
+++ b/src/wbc-gtk.h
@@ -54,6 +54,8 @@ WBCGtk *wbcg_find_for_workbook (Workbook *wb,
 typedef enum {
 	WBC_EDIT_REJECT = 0,
 	WBC_EDIT_ACCEPT,	/* assign content to current edit pos */
+	WBC_EDIT_ACCEPT_WO_AC,	/* assign content to current edit pos not */
+	                        /* autocorrecting*/
 	WBC_EDIT_ACCEPT_RANGE,	/* assign content to first range in selection */
 	WBC_EDIT_ACCEPT_ARRAY	/* assign content as an array to the first range in selection */
 } WBCEditResult;
diff --git a/src/widgets/gnm-sheet-slicer-combo-view.c b/src/widgets/gnm-sheet-slicer-combo-view.c
index 4c2042b..3982f5e 100644
--- a/src/widgets/gnm-sheet-slicer-combo-view.c
+++ b/src/widgets/gnm-sheet-slicer-combo-view.c
@@ -62,7 +62,7 @@ sscombo_activate (SheetObject *so, GtkTreeView *list, WBCGtk *wbcg, gboolean but
 	GnmSheetSlicerCombo *sscombo = GNM_SHEET_SLICER_COMBO (so);
 		SheetView	*sv  = sscombo->sv;
 		cmd_set_text (WORKBOOK_CONTROL (wbcg),
-			sv_sheet (sv), &sv->edit_pos, strval, NULL);
+			      sv_sheet (sv), &sv->edit_pos, strval, NULL, TRUE);
 #endif
 		g_free (strval);
 	}
diff --git a/src/widgets/gnm-validation-combo-view.c b/src/widgets/gnm-validation-combo-view.c
index 90f40e2..9976bf5 100644
--- a/src/widgets/gnm-validation-combo-view.c
+++ b/src/widgets/gnm-validation-combo-view.c
@@ -59,7 +59,7 @@ vcombo_activate (SheetObject *so, GtkTreeView *list, WBCGtk *wbcg,
 			1, &strval,
 			-1);
 		cmd_set_text (WORKBOOK_CONTROL (wbcg),
-			sv_sheet (sv), &sv->edit_pos, strval, NULL);
+			      sv_sheet (sv), &sv->edit_pos, strval, NULL, TRUE);
 		g_free (strval);
 	}
 	return TRUE;



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