]> git.street.me.uk Git - andy/viking.git/commitdiff
Add a preference to control the number of recent files made available.
authorRob Norris <rw_norris@hotmail.com>
Wed, 1 Jan 2014 17:36:55 +0000 (17:36 +0000)
committerRob Norris <rw_norris@hotmail.com>
Wed, 1 Jan 2014 17:36:55 +0000 (17:36 +0000)
src/globals.c
src/globals.h
src/vikwindow.c

index a5077decaf106402c1a1527e95be301ef10d0b09..c06f4d3f5575f420dac334af2f98c6d0c0763e3d 100644 (file)
@@ -106,10 +106,14 @@ static VikLayerParam io_prefs_external_gpx[] = {
   { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_IO_NAMESPACE "external_gpx_2", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("External GPX Program 2:"), VIK_LAYER_WIDGET_FILEENTRY, NULL, NULL, NULL, NULL, NULL },
 };
 
+static VikLayerParamScale params_recent_files[] = { {-1, 25, 1, 0} };
+
 static VikLayerParam prefs_advanced[] = {
   { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "save_file_reference_mode", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Save File Reference Mode:"), VIK_LAYER_WIDGET_COMBOBOX, params_vik_fileref, NULL,
     N_("When saving a Viking .vik file, this determines how the directory paths of filenames are written."), NULL, NULL, NULL },
   { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "create_track_tooltip", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Show Tooltip during Track Creation:"), VIK_LAYER_WIDGET_CHECKBUTTON, NULL, NULL, NULL, NULL, NULL },
+  { VIK_LAYER_NUM_TYPES, VIKING_PREFERENCES_ADVANCED_NAMESPACE "number_recent_files", VIK_LAYER_PARAM_INT, VIK_LAYER_GROUP_NONE, N_("The number of recent files:"), VIK_LAYER_WIDGET_SPINBUTTON, params_recent_files, NULL,
+    N_("Only applies to new windows or on application restart. -1 means all available files."), NULL, NULL, NULL },
 };
 
 static gchar * params_startup_methods[] = {N_("Home Location"), N_("Last Location"), N_("Specified File"), N_("Auto Location"), NULL};
@@ -234,6 +238,9 @@ void a_vik_preferences_init ()
 
   tmp.b = TRUE;
   a_preferences_register(&prefs_advanced[1], tmp, VIKING_PREFERENCES_ADVANCED_GROUP_KEY);
+
+  tmp.i = 10; // Seemingly GTK's default for the number of recent files
+  a_preferences_register(&prefs_advanced[2], tmp, VIKING_PREFERENCES_ADVANCED_GROUP_KEY);
 }
 
 vik_degree_format_t a_vik_get_degree_format ( )
@@ -325,6 +332,7 @@ const gchar* a_vik_get_external_gpx_program_2 ( )
   return a_preferences_get(VIKING_PREFERENCES_IO_NAMESPACE "external_gpx_2")->s;
 }
 
+// Advanced Options
 vik_file_ref_format_t a_vik_get_file_ref_format ( )
 {
   vik_file_ref_format_t format;
@@ -337,6 +345,11 @@ gboolean a_vik_get_create_track_tooltip ( )
   return a_preferences_get(VIKING_PREFERENCES_ADVANCED_NAMESPACE "create_track_tooltip")->b;
 }
 
+gint a_vik_get_recent_number_files ( )
+{
+  return a_preferences_get(VIKING_PREFERENCES_ADVANCED_NAMESPACE "number_recent_files")->i;
+}
+
 // Startup Options
 gboolean a_vik_get_restore_window_state ( )
 {
index b22e9736bea7ecf3ef216dfb3b338f92c649cc92..6b26e40bc96a3538cfb9f7e3083cb4533b7c3f2c 100644 (file)
@@ -192,6 +192,8 @@ const gchar *a_vik_get_startup_file ( );
 
 gboolean a_vik_get_check_version ( );
 
+gint a_vik_get_recent_number_files ( );
+
 /* Group for global preferences */
 #define VIKING_PREFERENCES_GROUP_KEY "viking.globals"
 #define VIKING_PREFERENCES_NAMESPACE "viking.globals."
index a1ac98d6d176df4d85712adc1554d04f40b499fd..7bccefdd8bdc4c051fcca488e9828d27ed3b9bf0 100644 (file)
@@ -2639,6 +2639,7 @@ static void setup_recent_files (VikWindow *self)
   menu = gtk_recent_chooser_menu_new_for_manager (manager);
   gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (menu), GTK_RECENT_SORT_MRU);
   gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (menu), filter);
+  gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER (menu), a_vik_get_recent_number_files() );
 
   menu_item = gtk_ui_manager_get_widget (self->uim, "/ui/MainMenu/File/OpenRecentFile");
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), menu);