[gnumeric] Let the sort dialog guess whether there is a header



commit 23a9d0da9b2b657944a099d168cfdaece952639d
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date:   Fri Jun 12 00:41:40 2009 -0600

    Let the sort dialog guess whether there is a header
    
    2009-06-12  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* dialog-cell-sort.c (dialog_load_selection): return info about
    	  the selection
    	(dialog_init): use sheet_range_has_heading
    	* dialog-preferences.c (pref_sort_page_initializer): remove "Sort
    	  Area Has a HEADER" button.
    
    2009-06-12  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* schemas/gnumeric-general.schemas.in: remove sort header default
    	* src/GNOME_Gnumeric-gtk.xml.in move preferences menu item
    	* src/gnumeric-gconf.h: remove sort_default_has_header
    	* src/gnumeric-gconf.c: remove sort_default_has_header
    	(gnm_gconf_set_sort_has_header): deleted
    	* src/wbc-gtk-actions.c: sort_by_rows, trust the automatic
    	  detection and don't try to use the default too
    	(actions): move preferences, goto and fill menus

 ChangeLog                           |   11 ++++++
 NEWS                                |    2 +
 schemas/gnumeric-general.schemas.in |   11 ------
 src/GNOME_Gnumeric-gtk.xml.in       |   21 ++++++-----
 src/dialogs/ChangeLog               |    8 ++++
 src/dialogs/dialog-cell-sort.c      |   20 ++++++----
 src/dialogs/dialog-preferences.c    |    4 --
 src/gnumeric-gconf.c                |   10 -----
 src/gnumeric-gconf.h                |    2 -
 src/wbc-gtk-actions.c               |   68 ++++++++++++++++------------------
 10 files changed, 76 insertions(+), 81 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 1af405f..65e6fb7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2009-06-12  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* schemas/gnumeric-general.schemas.in: remove sort header default
+	* src/GNOME_Gnumeric-gtk.xml.in move preferences menu item
+	* src/gnumeric-gconf.h: remove sort_default_has_header
+	* src/gnumeric-gconf.c: remove sort_default_has_header
+	(gnm_gconf_set_sort_has_header): deleted
+	* src/wbc-gtk-actions.c: sort_by_rows, trust the automatic
+	  detection and don't try to use the default too
+	(actions): move preferences, goto and fill menus 
+	
 2009-06-11  Morten Welinder  <terra gnome org>
 
 	* src/stf-parse.c (stf_parse_fixed_line): Make sure we have the
diff --git a/NEWS b/NEWS
index 7cf9d26..f3800de 100644
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,8 @@ Andreas:
 	* Added Tests for Independence and Homogeneity
 	* Make imported manual page breaks work
 	* Improve print area handling and export to ODF
+	* Some minor menu rearrangement
+	* Let the sort dialog guess whether there is a header
 
 Jody:
 	* GOString start of richtext and phonetic support.
diff --git a/schemas/gnumeric-general.schemas.in b/schemas/gnumeric-general.schemas.in
index 760c246..0cb528d 100644
--- a/schemas/gnumeric-general.schemas.in
+++ b/schemas/gnumeric-general.schemas.in
@@ -339,17 +339,6 @@ they are also processed at that time. If `lag' is negative, then recalculation h
         </locale>
       </schema>
       <schema>
-        <key>/schemas/apps/gnumeric/core/sort/default/has-header</key>
-        <applyto>/apps/gnumeric/core/sort/default/has-header</applyto>
-        <owner>Gnumeric</owner>
-        <type>bool</type>
-	<default>FALSE</default>
-        <locale name="C">
-        <short>Sort Area Has Header</short>
-        <long>Setting this option will cause the sort buttons on the toolbar to assume that the area to be sorted has a header and determine the initial state of the has-header checkbox in the sort dialog.</long>
-        </locale>
-      </schema>
-      <schema>
         <key>/schemas/apps/gnumeric/core/sort/default/by-case</key>
         <applyto>/apps/gnumeric/core/sort/default/by-case</applyto>
         <owner>Gnumeric</owner>
diff --git a/src/GNOME_Gnumeric-gtk.xml.in b/src/GNOME_Gnumeric-gtk.xml.in
index 2b9a4d3..a736e6d 100644
--- a/src/GNOME_Gnumeric-gtk.xml.in
+++ b/src/GNOME_Gnumeric-gtk.xml.in
@@ -19,7 +19,6 @@
       <separator name="file-sep3"/>
       <menuitem action="FileSend"/>
       <menuitem action="FileMetaData"/>
-      <menuitem action="FilePreferences"/>
       <separator name="file-sep4"/>
       <placeholder name="FileHistory" />
       <menuitem action="FileHistoryFull"/>
@@ -37,13 +36,6 @@
       <menuitem action="EditPasteSpecial"/>
 <!--TODO  menuitem action="EditPasteLink" -->
       <separator name="edit-sep2"/>
-      <menu name="Fill" action="MenuEditFill">
-        <menuitem action="EditFillAutofill"/>
-        <menuitem action="ToolsMerge"/>
-        <menuitem action="ToolsTabulate"/>
-        <menuitem action="EditFillSeries"/>
-        <menuitem action="RandomGenerator"/>
-      </menu>
       <menu name="Clear" action="MenuEditClear">
         <menuitem action="EditClearAll"/>
         <menuitem action="EditClearFormats"/>
@@ -58,7 +50,6 @@
       <separator name="edit-sep3"/>
       <menuitem action="EditFind"/>
       <menuitem action="EditReplace"/>
-      <menuitem action="EditGoto"/>
       <separator name="edit-sep4"/>
       <menu name="EditSheet" action="MenuEditSheet">
         <menuitem action="SheetReorder"/>
@@ -77,9 +68,13 @@
         <menuitem action="EditSelectArray"/>
         <menuitem action="EditSelectDepends"/>
         <menuitem action="EditSelectInputs"/>
+        <separator name="edit-sep5"/>
+	<menuitem action="EditGoto"/>
       </menu>
       <menuitem action="EditRecalc"/>
       <placeholder name="ops"/>
+      <separator name="edit-sep6"/>
+      <menuitem action="EditPreferences"/>
     </menu>
     <menu name="View" action="MenuView">
       <menuitem action="ViewNew"/>
@@ -147,7 +142,6 @@
 	<menuitem action="SheetDirection"/>
       </menu>
       <menuitem action="FormatWorkbook"/>
-      <menuitem action="FilePreferences"/>
       <menuitem action="FormatAuto"/>
     </menu>
     <menu name="Tools" action="MenuTools">
@@ -199,6 +193,13 @@
     </menu>
     <menu name="Data" action="MenuData">
       <menuitem action="DataSort"/>
+      <menu name="Fill" action="MenuEditFill">
+        <menuitem action="EditFillAutofill"/>
+        <menuitem action="ToolsMerge"/>
+        <menuitem action="ToolsTabulate"/>
+        <menuitem action="EditFillSeries"/>
+        <menuitem action="RandomGenerator"/>
+      </menu>
       <menu name="Filter" action="MenuFilter">
         <menuitem action="DataAutoFilter"/>
         <menuitem action="DataFilterShowAll"/>
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index 7155249..76acfbc 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,3 +1,11 @@
+2009-06-12  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* dialog-cell-sort.c (dialog_load_selection): return info about
+	  the selection
+	(dialog_init): use sheet_range_has_heading
+	* dialog-preferences.c (pref_sort_page_initializer): remove "Sort 
+	  Area Has a HEADER" button.
+	
 2009-06-09  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* dialog-printer-setup.c (load_print_area) adjust for changes in 
diff --git a/src/dialogs/dialog-cell-sort.c b/src/dialogs/dialog-cell-sort.c
index a38937c..468d2d7 100644
--- a/src/dialogs/dialog-cell-sort.c
+++ b/src/dialogs/dialog-cell-sort.c
@@ -514,8 +514,8 @@ cb_dialog_cancel_clicked (G_GNUC_UNUSED GtkWidget *button,
 	gtk_widget_destroy (state->dialog);
 }
 
-static void
-dialog_load_selection (SortFlowState *state)
+static GnmRange const *
+dialog_load_selection (SortFlowState *state, gboolean *col_rb)
 {
 	GnmRange const *first;
 
@@ -524,13 +524,14 @@ dialog_load_selection (SortFlowState *state)
 	if (first != NULL) {
 		gtk_toggle_button_set_active (
 			GTK_TOGGLE_BUTTON (state->cell_sort_col_rb),
-			first->end.row - first->start.row > first->end.col - first->start.col);
+			(*col_rb = (first->end.row - first->start.row > first->end.col - first->start.col)));
 		gnm_expr_entry_load_from_range (state->range_entry,
 						state->sheet, first);
 	} else
 		gtk_toggle_button_set_active (
 			GTK_TOGGLE_BUTTON (state->cell_sort_col_rb),
-			TRUE);
+			(*col_rb = TRUE));
+	return first;
 }
 
 /**
@@ -874,6 +875,8 @@ dialog_init (SortFlowState *state)
 	GtkWidget *scrolled;
 	GtkTreeViewColumn *column;
 	GtkCellRenderer *renderer;
+	gboolean col_rb;
+	GnmRange const *range;
 
 	table = GTK_TABLE (glade_xml_get_widget (state->gui, "cell_sort_options_table"));
 	/* setup range entry */
@@ -994,8 +997,6 @@ dialog_init (SortFlowState *state)
 
 	state->cell_sort_header_check = glade_xml_get_widget (state->gui,
 							      "cell_sort_header_check");
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (state->cell_sort_header_check),
-				      gnm_app_prefs->sort_default_has_header);
 	g_signal_connect_swapped (G_OBJECT (state->cell_sort_header_check),
 				  "toggled",
 				  G_CALLBACK (cb_sort_header_check), state);
@@ -1059,9 +1060,12 @@ dialog_init (SortFlowState *state)
 	g_object_set_data_full (G_OBJECT (state->dialog),
 				"state", state, (GDestroyNotify) cb_dialog_destroy);
 	cb_sort_selection_changed (state);
-	dialog_load_selection (state);
-	cb_update_sensitivity (state);
+
+	range = dialog_load_selection (state, &col_rb);
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (state->cell_sort_header_check),
+				      sheet_range_has_heading (state->sheet, range, col_rb, FALSE));
 	cb_sort_header_check (state);
+	cb_update_sensitivity (state);
 
 	gnm_expr_entry_grab_focus(GNM_EXPR_ENTRY (state->add_entry), TRUE);
 }
diff --git a/src/dialogs/dialog-preferences.c b/src/dialogs/dialog-preferences.c
index 6767779..350d118 100644
--- a/src/dialogs/dialog-preferences.c
+++ b/src/dialogs/dialog-preferences.c
@@ -582,10 +582,6 @@ pref_sort_page_initializer (PrefState *state,
 				 page, row++, 
 				 gnm_gconf_set_sort_ascending,
 				 _("Sort Ascending"));
-	bool_pref_create_widget (node, GNM_CONF_SORT_DEFAULT_HAS_HEADER,
-				 page, row++, 
-				 gnm_gconf_set_sort_has_header,
-				 _("Sort Area Has a HEADER"));
 	go_conf_free_node (node);
 
 	gtk_widget_show_all (page);
diff --git a/src/gnumeric-gconf.c b/src/gnumeric-gconf.c
index c6aa988..ead50f1 100644
--- a/src/gnumeric-gconf.c
+++ b/src/gnumeric-gconf.c
@@ -345,8 +345,6 @@ gnm_conf_init_extras (void)
 	node = go_conf_get_node (root, GNM_CONF_SORT_DIR);
 	prefs.sort_default_by_case = go_conf_load_bool (
 		node, GNM_CONF_SORT_DEFAULT_BY_CASE, FALSE);
-	prefs.sort_default_has_header = go_conf_load_bool (
-		node, GNM_CONF_SORT_DEFAULT_HAS_HEADER, FALSE);
 	prefs.sort_default_retain_formats = go_conf_load_bool (
 		node, GNM_CONF_SORT_DEFAULT_RETAIN_FORM, TRUE);
 	prefs.sort_default_ascending = go_conf_load_bool (
@@ -926,14 +924,6 @@ gnm_gconf_set_sort_by_case (gboolean val)
 }
 
 void
-gnm_gconf_set_sort_has_header (gboolean val)
-{
-	prefs.sort_default_has_header = val;
-	go_conf_set_bool (
-		root, GNM_CONF_SORT_DIR "/" GNM_CONF_SORT_DEFAULT_HAS_HEADER, val != FALSE);
-}
-
-void
 gnm_gconf_set_sort_ascending (gboolean val)
 {
 	prefs.sort_default_ascending = val;
diff --git a/src/gnumeric-gconf.h b/src/gnumeric-gconf.h
index eea7a8d..e170c4f 100644
--- a/src/gnumeric-gconf.h
+++ b/src/gnumeric-gconf.h
@@ -50,7 +50,6 @@ typedef struct {
 	gboolean	 file_overwrite_default_answer;
 	gboolean	 file_ask_single_sheet_save;
 
-	gboolean	 sort_default_has_header;
 	gboolean	 sort_default_by_case;
 	gboolean	 sort_default_retain_formats;
 	gboolean	 sort_default_ascending;
@@ -185,7 +184,6 @@ void     gnm_gconf_set_hf_font (GnmStyle const *mstyle);
 /* sorting */
 void     gnm_gconf_set_sort_dialog_max_initial (gint value);
 void     gnm_gconf_set_sort_retain_form (gboolean value);
-void     gnm_gconf_set_sort_has_header (gboolean value);
 void     gnm_gconf_set_sort_by_case (gboolean value);
 void     gnm_gconf_set_sort_ascending (gboolean value);
 
diff --git a/src/wbc-gtk-actions.c b/src/wbc-gtk-actions.c
index 47b016f..83fd95a 100644
--- a/src/wbc-gtk-actions.c
+++ b/src/wbc-gtk-actions.c
@@ -1132,12 +1132,6 @@ sort_by_rows (WBCGtk *wbcg, gboolean descending)
 	sel = gnm_range_dup (tmp);
 	range_clip_to_finite (sel, sv_sheet (sv));
 
-	if (gnm_app_prefs->sort_default_has_header) {
-		sel->start.row++;
-		if (sel->start.row > sel->end.row)
-			return;
-	}
-
 	numclause = range_width (sel);
 	clause = g_new0 (GnmSortClause, numclause);
 	for (i = 0; i < numclause; i++) {
@@ -1792,9 +1786,6 @@ static GtkActionEntry const actions[] = {
 	{ "FileMetaData", GTK_STOCK_PROPERTIES, N_("Proper_ties..."),
 		NULL, N_("Edit descriptive information"),
 		G_CALLBACK (cb_doc_meta_data) },
-	{ "FilePreferences", GTK_STOCK_PREFERENCES, N_("Pre_ferences..."),
-		NULL, N_("Change Gnumeric Preferences"),
-		G_CALLBACK (cb_file_preferences) },
 	{ "FileHistoryFull", NULL, N_("Full _History..."),
 		NULL, N_("Access previously used file"),
 		G_CALLBACK (cb_file_history_full) },
@@ -1846,46 +1837,32 @@ static GtkActionEntry const actions[] = {
 	 *		gnm-pane.c:gnm_pane_key_mode_sheet
 	 *	with the rest of the key movement and rangeselection.
 	 *	Otherwise input methods would steal them */
-	{ "EditSelectAll", NULL, N_("Select _All"),
+	{ "EditSelectAll", NULL, N_("_All"),
 		"<control><shift>space", N_("Select all cells in the spreadsheet"),
 		G_CALLBACK (cb_edit_select_all) },
 	/* A duplicate that should not go into the menus, used only for the accelerator */
-	{ "EditSelectAllXL", NULL, N_("Select _All"),
+	{ "EditSelectAllXL", NULL, N_("_All"),
 		"<control>a", N_("Select all cells in the spreadsheet"),
 		G_CALLBACK (cb_edit_select_all) },
-	{ "EditSelectColumn", NULL, N_("Select _Column"),
+	{ "EditSelectColumn", NULL, N_("_Column"),
 		"<control>space", N_("Select an entire column"),
 		G_CALLBACK (cb_edit_select_col) },
-	{ "EditSelectRow", NULL, N_("Select _Row"),
+	{ "EditSelectRow", NULL, N_("_Row"),
 		"<shift>space", N_("Select an entire row"),
 		G_CALLBACK (cb_edit_select_row) },
 
-	{ "EditSelectArray", NULL, N_("Select Arra_y"),
+	{ "EditSelectArray", NULL, N_("Arra_y"),
 		"<control>slash", N_("Select an array of cells"),
 		G_CALLBACK (cb_edit_select_array) },
-	{ "EditSelectDepends", NULL, N_("Select _Depends"),
+	{ "EditSelectDepends", NULL, N_("_Depends"),
 		"<control>bracketright", N_("Select all the cells that depend on the current edit cell"),
 		G_CALLBACK (cb_edit_select_depends) },
-	{ "EditSelectInputs", NULL, N_("Select _Inputs"),
+	{ "EditSelectInputs", NULL, N_("_Inputs"),
 		"<control>bracketleft", N_("Select all the cells are used by the current edit cell"),
 		G_CALLBACK (cb_edit_select_inputs) },
-
-/* Edit -> Fill */
-	{ "EditFillAutofill", NULL, N_("Auto_fill"),
-		NULL, N_("Automatically fill the current selection"),
-		G_CALLBACK (cb_edit_fill_autofill) },
-	{ "ToolsMerge", NULL, N_("_Merge..."),
-		NULL, N_("Merges columnar data into a sheet creating duplicate sheets for each row"),
-		G_CALLBACK (cb_tools_merge) },
-	{ "ToolsTabulate", NULL, N_("_Tabulate Dependency..."),
-		NULL, N_("Make a table of a cell's value as a function of other cells"),
-		G_CALLBACK (cb_tools_tabulate) },
-	{ "EditFillSeries", NULL, N_("_Series..."),
-		NULL, N_("Fill according to a linear or exponential series"),
-		G_CALLBACK (cb_edit_fill_series) },
-	{ "RandomGenerator", NULL, N_("_Random Generator..."),
-		NULL, N_("Generate random numbers of a selection of distributions"),
-		G_CALLBACK (cb_tools_random_generator) },
+	{ "EditGoto", GTK_STOCK_JUMP_TO, N_("_Goto cell..."),
+		"<control>G", N_("Jump to a specified cell"),
+		G_CALLBACK (cb_edit_goto) },
 
 /* Edit -> Sheet */
 	{ "SheetReorder", NULL, N_("_Manage Sheets..."),
@@ -1932,14 +1909,15 @@ static GtkActionEntry const actions[] = {
 	{ "EditReplace", GTK_STOCK_FIND_AND_REPLACE, N_("R_eplace..."),
 		"<control>H", N_("Search for something and replace it with something else"),
 		G_CALLBACK (cb_edit_search_replace) },
-	{ "EditGoto", GTK_STOCK_JUMP_TO, N_("_Goto cell..."),
-		"<control>G", N_("Jump to a specified cell"),
-		G_CALLBACK (cb_edit_goto) },
 
 	{ "EditRecalc", NULL, N_("Recalculate"),
 		"F9", N_("Recalculate the spreadsheet"),
 		G_CALLBACK (cb_edit_recalc) },
 
+	{ "EditPreferences", GTK_STOCK_PREFERENCES, N_("Preferences..."),
+		NULL, N_("Change Gnumeric Preferences"),
+		G_CALLBACK (cb_file_preferences) },
+
 /* View */
 	{ "ViewNew", GTK_STOCK_NEW, N_("_New View..."),
 		NULL, N_("Create a new view of the workbook"),
@@ -2186,6 +2164,24 @@ static GtkActionEntry const actions[] = {
 		NULL, N_("Create a Data Table to evaluate a function with multiple inputs"),
 		G_CALLBACK (cb_data_table) },
 
+/* Data -> Fill */
+	{ "EditFillAutofill", NULL, N_("Auto_fill"),
+		NULL, N_("Automatically fill the current selection"),
+		G_CALLBACK (cb_edit_fill_autofill) },
+	{ "ToolsMerge", NULL, N_("_Merge..."),
+		NULL, N_("Merges columnar data into a sheet creating duplicate sheets for each row"),
+		G_CALLBACK (cb_tools_merge) },
+	{ "ToolsTabulate", NULL, N_("_Tabulate Dependency..."),
+		NULL, N_("Make a table of a cell's value as a function of other cells"),
+		G_CALLBACK (cb_tools_tabulate) },
+	{ "EditFillSeries", NULL, N_("_Series..."),
+		NULL, N_("Fill according to a linear or exponential series"),
+		G_CALLBACK (cb_edit_fill_series) },
+	{ "RandomGenerator", NULL, N_("_Random Generator..."),
+		NULL, N_("Generate random numbers of a selection of distributions"),
+		G_CALLBACK (cb_tools_random_generator) },
+
+
 /* Data -> Outline */
 	{ "DataOutlineHideDetail", "Gnumeric_HideDetail", N_("_Hide Detail"),
 		NULL, N_("Collapse an outline group"),



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