[gnumeric] xls: write no expression for fake names.



commit d911f5470d6e2f2e0dd8633bdf38fa72b990d831
Author: Morten Welinder <terra gnome org>
Date:   Sat Oct 10 20:18:26 2009 -0400

    xls: write no expression for fake names.

 plugins/excel/ms-excel-write.c |   52 +++++----------------------------------
 1 files changed, 7 insertions(+), 45 deletions(-)
---
diff --git a/plugins/excel/ms-excel-write.c b/plugins/excel/ms-excel-write.c
index 46f58ca..3952e0d 100644
--- a/plugins/excel/ms-excel-write.c
+++ b/plugins/excel/ms-excel-write.c
@@ -5229,32 +5229,8 @@ excel_write_sheet (ExcelWriteState *ewb, ExcelWriteSheet *esheet)
 	g_array_free (dbcells, TRUE);
 }
 
-static GnmExprTop const *
-make_ref_global (GnmExprTop const *texpr, Sheet *sheet)
-{
-	GnmValue *vr;
-	GnmRangeRef rr;
-
-	if (!texpr) return texpr;
-
-	vr = gnm_expr_top_get_range (texpr);
-	if (!vr) return texpr;
-	rr = *value_get_rangeref (vr);
-
-	value_release (vr);
-	gnm_expr_top_unref (texpr);
-
-	if (!rr.a.sheet)
-		rr.a.sheet = sheet;
-	if (!rr.b.sheet)
-		rr.b.sheet = sheet;
-
-	vr = value_new_cellrange_unsafe (&rr.a, &rr.b);
-	return gnm_expr_top_new_constant (vr);
-}
-
 static GnmNamedExpr *
-create_macroname (SheetObject *so, GnmExprTop const *texpr)
+create_macroname (SheetObject *so)
 {
 	Sheet *sheet = sheet_object_get_sheet (so);
 	GnmNamedExpr *nexpr;
@@ -5262,8 +5238,6 @@ create_macroname (SheetObject *so, GnmExprTop const *texpr)
 	unsigned ui;
 	GnmParsePos pp;
 
-	texpr = make_ref_global (texpr, sheet);
-
 	parse_pos_init_sheet (&pp, sheet);
 
 	g_object_get (so, "name", &objname, NULL);
@@ -5282,7 +5256,9 @@ create_macroname (SheetObject *so, GnmExprTop const *texpr)
 	pp.sheet = NULL;
 	g_printerr ("Name = %s\n", name);
 
-	nexpr = expr_name_add (&pp, name, texpr, NULL, TRUE, NULL);
+	nexpr = expr_name_add (&pp, name, NULL, NULL, TRUE, NULL);
+	expr_name_set_expr (nexpr, NULL);
+
 	g_free (name);
 	g_free (basename);
 
@@ -5365,27 +5341,13 @@ excel_sheet_new (ExcelWriteState *ewb, Sheet *sheet,
 			esheet->textboxes =
 				g_slist_prepend (esheet->textboxes, so);
 			handled = TRUE;
-		} else if (GNM_IS_SOW_CHECKBOX (so)) {
-			GnmExprTop const *texpr =
-				sheet_widget_checkbox_get_link (so);
-			GnmNamedExpr *nexpr;
-			esheet->textboxes =
-				g_slist_prepend (esheet->textboxes, so);
-			nexpr = create_macroname (so, texpr);
-			g_hash_table_insert (esheet->widget_macroname,
-					     so,
-					     nexpr);
-			handled = TRUE;
-		} else if (GNM_IS_SOW_RADIO_BUTTON (so)) {
-			GnmExprTop const *texpr =
-				sheet_widget_radio_button_get_link (so);
-			GnmNamedExpr *nexpr;
+		} else if (GNM_IS_SOW_CHECKBOX (so) ||
+			   GNM_IS_SOW_RADIO_BUTTON (so)) {
 			esheet->textboxes =
 				g_slist_prepend (esheet->textboxes, so);
-			nexpr = create_macroname (so, texpr);
 			g_hash_table_insert (esheet->widget_macroname,
 					     so,
-					     nexpr);
+					     create_macroname (so));
 			handled = TRUE;
 		} else if (IS_GNM_SO_LINE (so)) {
 			esheet->lines =



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