From f6ee63591d928ff63cca81864faa2e80f7d3277c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 10 Mar 2012 11:37:01 +0000 Subject: [PATCH] Patch from colinf to allow the number of recent sessions to be configured (#2207). git-svn-id: svn://localhost/ardour2/branches/3.0@11641 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/rc_option_editor.cc | 9 +++++++++ libs/ardour/ardour/rc_configuration_vars.h | 1 + libs/ardour/recent_sessions.cc | 7 +++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index c5952f0b64..ee0a9828a0 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -919,6 +919,15 @@ RCOptionEditor::RCOptionEditor () sigc::mem_fun (*_rc_config, &RCConfiguration::set_default_session_parent_dir) )); + add_option (_("Misc"), + new SpinOption ( + "max-recent-sessions", + _("Maximum number of recent sessions"), + sigc::mem_fun (*_rc_config, &RCConfiguration::get_max_recent_sessions), + sigc::mem_fun (*_rc_config, &RCConfiguration::set_max_recent_sessions), + 0, 1000, 1, 20 + )); + add_option (_("Misc"), new OptionEditorHeading (_("Click"))); add_option (_("Misc"), new ClickOptions (_rc_config, this)); diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.h index 146f91dd68..766db9db1c 100644 --- a/libs/ardour/ardour/rc_configuration_vars.h +++ b/libs/ardour/ardour/rc_configuration_vars.h @@ -174,6 +174,7 @@ CONFIG_VARIABLE (bool, update_editor_during_summary_drag, "update-editor-during- CONFIG_VARIABLE (bool, never_display_periodic_midi, "never-display-periodic-midi", true) CONFIG_VARIABLE (bool, sound_midi_notes, "sound-midi-notes", false) CONFIG_VARIABLE (bool, use_plugin_own_gui, "use-plugin-own-gui", true) +CONFIG_VARIABLE (uint32_t, max_recent_sessions, "max-recent-sessions", 10) /* denormal management */ diff --git a/libs/ardour/recent_sessions.cc b/libs/ardour/recent_sessions.cc index adc25294fb..45c30b085b 100644 --- a/libs/ardour/recent_sessions.cc +++ b/libs/ardour/recent_sessions.cc @@ -28,6 +28,7 @@ #include "pbd/error.h" #include "ardour/configuration.h" +#include "ardour/rc_configuration.h" #include "ardour/filesystem_paths.h" #include "ardour/recent_sessions.h" #include "ardour/utils.h" @@ -130,8 +131,10 @@ ARDOUR::store_recent_sessions (string name, string path) rs.push_front (newpair); - if (rs.size() > 10) { - rs.erase(rs.begin()+10, rs.end()); + uint32_t max_recent_sessions = Config->get_max_recent_sessions(); + + if (rs.size() > max_recent_sessions) { + rs.erase(rs.begin()+max_recent_sessions, rs.end()); } return ARDOUR::write_recent_sessions (rs);