[gnumeric] disable/enable printarea menu items as needed



commit 082f4eea0fd9d5bd9361abe998027efb65c034f9
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date:   Wed Jun 17 08:23:13 2009 -0600

    disable/enable printarea menu items as needed
    
    2009-06-17  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* src/commands.c (cmd_define_name_undo): we have to update the
    	  printarea menu items
    	(cmd_define_name_redo): ditto
    	* src/wbc-gtk.c (wbcg_menu_state_update): update the printarea menu
    	  items
    	* src/workbook-control.h: add enum for printarea menu item update
    
    2009-06-17  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* xlsx-write.c (xlsx_write_breaks): Quiet enum handling

 ChangeLog                  |    9 +++++++++
 plugins/excel/ChangeLog    |    4 ++++
 plugins/excel/xlsx-write.c |    1 +
 src/commands.c             |    9 ++++++++-
 src/wbc-gtk.c              |    8 ++++++++
 src/workbook-control.h     |    5 +++--
 6 files changed, 33 insertions(+), 3 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index b4477d5..acab870 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-06-17  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* src/commands.c (cmd_define_name_undo): we have to update the 
+	  printarea menu items
+	(cmd_define_name_redo): ditto
+	* src/wbc-gtk.c (wbcg_menu_state_update): update the printarea menu
+	  items
+	* src/workbook-control.h: add enum for printarea menu item update
+
 2009-06-16  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* src/gnm-so-filled.c (gnm_so_filled_write_xml_sax): be rather safe
diff --git a/plugins/excel/ChangeLog b/plugins/excel/ChangeLog
index fc48748..a5c726c 100644
--- a/plugins/excel/ChangeLog
+++ b/plugins/excel/ChangeLog
@@ -1,3 +1,7 @@
+2009-06-17  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* xlsx-write.c (xlsx_write_breaks): Quiet enum handling
+
 2009-06-16  Morten Welinder  <terra gnome org>
 
 	* boot.c: Quiet pivot debugging.
diff --git a/plugins/excel/xlsx-write.c b/plugins/excel/xlsx-write.c
index b59689a..6569676 100644
--- a/plugins/excel/xlsx-write.c
+++ b/plugins/excel/xlsx-write.c
@@ -862,6 +862,7 @@ xlsx_write_breaks (XLSXWriteState *state, GsfXMLOut *xml, GnmPageBreaks *breaks)
 		switch (binfo->type) {
 		case GNM_PAGE_BREAK_MANUAL :	gsf_xml_out_add_bool (xml, "man", TRUE); break;
 		case GNM_PAGE_BREAK_AUTO :	break;
+		case GNM_PAGE_BREAK_NONE :	break;
 		case GNM_PAGE_BREAK_DATA_SLICE :gsf_xml_out_add_bool (xml, "pt", TRUE); break;
 		}
 		gsf_xml_out_end_element (xml); /* </brk> */
diff --git a/src/commands.c b/src/commands.c
index 8183191..d5c11d8 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -5714,7 +5714,7 @@ MAKE_GNM_COMMAND (CmdDefineName, cmd_define_name, NULL)
 
 static gboolean
 cmd_define_name_undo (GnmCommand *cmd,
-		      G_GNUC_UNUSED WorkbookControl *wbc)
+		      WorkbookControl *wbc)
 {
 	CmdDefineName *me = CMD_DEFINE_NAME (cmd);
 	GnmNamedExpr  *nexpr = expr_name_lookup (&(me->pp), me->name);
@@ -5729,6 +5729,10 @@ cmd_define_name_undo (GnmCommand *cmd,
 		expr_name_set_expr (nexpr, me->texpr); /* restore old def */
 
 	me->texpr = texpr;
+
+	WORKBOOK_FOREACH_VIEW (wb_control_get_workbook (wbc), each_wbv, {
+			wb_view_menus_update (each_wbv);
+		});
 	return FALSE;
 }
 
@@ -5757,6 +5761,9 @@ cmd_define_name_redo (GnmCommand *cmd, WorkbookControl *wbc)
 		expr_name_set_expr (nexpr, me->texpr);
 		me->texpr = tmp; /* store the old definition */
 	}
+	WORKBOOK_FOREACH_VIEW (wb_control_get_workbook (wbc), each_wbv, {
+			wb_view_menus_update (each_wbv);
+		});
 
 	return FALSE;
 }
diff --git a/src/wbc-gtk.c b/src/wbc-gtk.c
index 3353ea2..ad04105 100644
--- a/src/wbc-gtk.c
+++ b/src/wbc-gtk.c
@@ -1430,6 +1430,7 @@ wbcg_menu_state_update (WorkbookControl *wbc, int flags)
 	gboolean has_filtered_rows = sheet->has_filtered_rows;
 	gboolean edit_object = scg != NULL &&
 		(scg->selected_objects != NULL || wbcg->new_object != NULL);
+	gboolean has_print_area;
 
 	if (!has_filtered_rows) {
 		GSList *ptr = sheet->filters;
@@ -1470,6 +1471,13 @@ wbcg_menu_state_update (WorkbookControl *wbc, int flags)
 		wbc_gtk_set_action_sensitivity (wbcg, "DataConsolidate", !has_guru);
 	if (MS_CONSOLIDATE & flags)
 		wbc_gtk_set_action_sensitivity (wbcg, "DataFilterShowAll", has_filtered_rows);
+	if (MS_SHOW_PRINTAREA & flags) {
+		GnmRange *print_area = sheet_get_nominal_printarea (sheet);
+		has_print_area = (print_area != NULL);
+		g_free (print_area);
+		wbc_gtk_set_action_sensitivity (wbcg, "FilePrintAreaClear", has_print_area);
+		wbc_gtk_set_action_sensitivity (wbcg, "FilePrintAreaShow", has_print_area);
+	}
 
 	if (MS_FREEZE_VS_THAW & flags) {
 		/* Cheat and use the same accelerator for both states because
diff --git a/src/workbook-control.h b/src/workbook-control.h
index 5d3ba45..0de7ad6 100644
--- a/src/workbook-control.h
+++ b/src/workbook-control.h
@@ -53,14 +53,15 @@ enum {
 	MS_DEFINE_NAME      = 1 << 7,
 	MS_CONSOLIDATE      = 1 << 8,
 	MS_FREEZE_VS_THAW   = 1 << 9,
-	MS_ADD_VS_REMOVE_FILTER = 1 << 10
+	MS_ADD_VS_REMOVE_FILTER = 1 << 10,
+	MS_SHOW_PRINTAREA = 1 << 11
 };
 
 #define MS_ALL \
     (MS_INSERT_COLS | MS_INSERT_ROWS | MS_INSERT_CELLS |		    \
      MS_SHOWHIDE_DETAIL | MS_PASTE_SPECIAL |				    \
      MS_PRINT_SETUP | MS_SEARCH_REPLACE | MS_DEFINE_NAME | MS_CONSOLIDATE | \
-     MS_FREEZE_VS_THAW | MS_ADD_VS_REMOVE_FILTER)
+     MS_FREEZE_VS_THAW | MS_ADD_VS_REMOVE_FILTER | MS_SHOW_PRINTAREA)
 #define MS_GURU_MENU_ITEMS \
     (MS_PRINT_SETUP | MS_SEARCH_REPLACE | MS_DEFINE_NAME | MS_CONSOLIDATE)
 



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