diff --git a/gtk2_ardour/tracks_control_panel.logic.cc b/gtk2_ardour/tracks_control_panel.logic.cc
index 549e118bb8..80447a5e97 100644
--- a/gtk2_ardour/tracks_control_panel.logic.cc
+++ b/gtk2_ardour/tracks_control_panel.logic.cc
@@ -522,33 +522,39 @@ void
TracksControlPanel::populate_auto_lock_timer_dropdown()
{
int time = ARDOUR_UI::config()->get_auto_lock_timer();
- std::stringstream ss;
- ss << time;
- std::string str_time = ss.str() + " Min";
-
- _auto_lock_timer_dropdown.set_text( str_time );
+ int size = _auto_lock_timer_dropdown.get_menu ().items ().size ();
+ for (int i = 0; i < size; ++i) {
+ if (_auto_lock_timer_dropdown.get_item_data_u (i) == time) {
+ _auto_lock_timer_dropdown.set_current_item (i);
+ break;
+ }
+ }
}
void
TracksControlPanel::populate_auto_save_timer_dropdown()
{
int time = ARDOUR_UI::config()->get_auto_save_timer();
- std::stringstream ss;
- ss << time;
- std::string str_time = ss.str() + " Min";
-
- _auto_save_timer_dropdown.set_text( str_time );
+ int size = _auto_save_timer_dropdown.get_menu ().items ().size ();
+ for (int i = 0; i < size; ++i) {
+ if (_auto_save_timer_dropdown.get_item_data_u (i) == time) {
+ _auto_save_timer_dropdown.set_current_item (i);
+ break;
+ }
+ }
}
void
TracksControlPanel::populate_pre_record_buffer_dropdown()
{
int time = ARDOUR_UI::config()->get_pre_record_buffer();
- std::stringstream ss;
- ss << time;
- std::string str_time = ss.str() + " Min";
-
- _pre_record_buffer_dropdown.set_text( str_time );
+ int size = _pre_record_buffer_dropdown.get_menu ().items ().size ();
+ for (int i = 0; i < size; ++i) {
+ if (_pre_record_buffer_dropdown.get_item_data_u (i) == time) {
+ _pre_record_buffer_dropdown.set_current_item (i);
+ break;
+ }
+ }
}
#define UINT_TO_RGB(u,r,g,b) { (*(r)) = ((u)>>16)&0xff; (*(g)) = ((u)>>8)&0xff; (*(b)) = (u)&0xff; }
@@ -1569,27 +1575,21 @@ TracksControlPanel::save_default_session_path()
void
TracksControlPanel::save_auto_lock_time()
{
- std::string s = _auto_lock_timer_dropdown.get_text();
- char * pEnd;
- int time = strtol( s.c_str(), &pEnd, 10 );
+ int time = _auto_lock_timer_dropdown.get_item_data_u (_auto_lock_timer_dropdown.get_current_item ());
ARDOUR_UI::config()->set_auto_lock_timer(time);
}
void
TracksControlPanel::save_auto_save_time()
{
- std::string s = _auto_save_timer_dropdown.get_text();
- char * pEnd;
- int time = strtol( s.c_str(), &pEnd, 10 );
+ int time = _auto_save_timer_dropdown.get_item_data_u (_auto_save_timer_dropdown.get_current_item ());
ARDOUR_UI::config()->set_auto_save_timer(time);
}
void
TracksControlPanel::save_pre_record_buffer()
{
- std::string s = _pre_record_buffer_dropdown.get_text();
- char * pEnd;
- int time = strtol( s.c_str(), &pEnd, 10 );
+ int time = _pre_record_buffer_dropdown.get_item_data_u (_pre_record_buffer_dropdown.get_current_item ());
ARDOUR_UI::config()->set_pre_record_buffer(time);
}
@@ -1648,29 +1648,9 @@ TracksControlPanel::reject ()
response(Gtk::RESPONSE_CANCEL);
// restore previous value in combo-boxes
- std::stringstream ss;
- int temp;
- std::string str;
- temp = ARDOUR_UI::config()->get_auto_lock_timer();
- ss.str(std::string(""));
- ss.clear();
- ss << temp;
- str = ss.str() + " Min";
- _auto_lock_timer_dropdown.set_text(str);
-
- temp = ARDOUR_UI::config()->get_auto_save_timer();
- ss.str(std::string(""));
- ss.clear();
- ss << temp;
- str = ss.str() + " Min";
- _auto_save_timer_dropdown.set_text(str);
-
- temp = ARDOUR_UI::config()->get_pre_record_buffer();
- ss.str(std::string(""));
- ss.clear();
- ss << temp;
- str = ss.str() + " Min";
- _pre_record_buffer_dropdown.set_text(str);
+ populate_auto_lock_timer_dropdown ();
+ populate_auto_save_timer_dropdown ();
+ populate_pre_record_buffer_dropdown ();
std::string buffer_size_str = bufsize_as_string (EngineStateController::instance()->get_current_buffer_size() );
_buffer_size_dropdown.set_text(buffer_size_str);
diff --git a/gtk2_ardour/ui/tracks_preferences.xml b/gtk2_ardour/ui/tracks_preferences.xml
index 0534f43267..87cdcaddab 100644
--- a/gtk2_ardour/ui/tracks_preferences.xml
+++ b/gtk2_ardour/ui/tracks_preferences.xml
@@ -650,18 +650,24 @@
width="117"/>
-
+
+ style="generic_dropdown_item"
+ data="1"/>
+ style="generic_dropdown_item"
+ data="3"/>
+ style="generic_dropdown_item"
+ data="5"/>
+ style="generic_dropdown_item"
+ data="10"/>
+ style="generic_dropdown_item"
+ data="15"/>
@@ -681,18 +687,24 @@
width="117"/>
-
+
+ style="generic_dropdown_item"
+ data="1"/>
+ style="generic_dropdown_item"
+ data="3"/>
+ style="generic_dropdown_item"
+ data="5"/>
+ style="generic_dropdown_item"
+ data="10"/>
+ style="generic_dropdown_item"
+ data="15"/>
-
+
+ style="generic_dropdown_item"
+ data="1"/>