From 68b323a1a7958ef16f7e9fba98d0f983ca27e57a Mon Sep 17 00:00:00 2001 From: nikolay Date: Mon, 11 Aug 2014 13:11:37 +0300 Subject: [PATCH] [Summary] Updated Auto Lock Timer according to PRD [Reviewed] GZharun --- gtk2_ardour/editor.cc | 2 +- gtk2_ardour/tracks_control_panel.cc | 2 +- gtk2_ardour/tracks_control_panel.h | 4 +- gtk2_ardour/tracks_control_panel.logic.cc | 50 ++++++++++++++--------- gtk2_ardour/tracks_control_panel.logic.h | 2 +- gtk2_ardour/ui/tracks_preferences.xml | 4 +- 6 files changed, 37 insertions(+), 27 deletions(-) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 291fcec666..7acc29fc57 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1183,7 +1183,7 @@ Editor::lock_timeout_callback () if( !ARDOUR_UI::instance()->screen_lock_is_allowed() ) return false; // Returning false will effectively disconnect us from the timer callback. - if (delta.tv_sec > ARDOUR_UI::config()->get_auto_lock_timer ()) + if (delta.tv_sec >= 60 * ARDOUR_UI::config()->get_auto_lock_timer ()) { lock (); /* don't call again. Returning false will effectively diff --git a/gtk2_ardour/tracks_control_panel.cc b/gtk2_ardour/tracks_control_panel.cc index b02beb8f8d..41112a09a4 100644 --- a/gtk2_ardour/tracks_control_panel.cc +++ b/gtk2_ardour/tracks_control_panel.cc @@ -93,7 +93,7 @@ TracksControlPanel::TracksControlPanel () , _bit_depth_combo (get_combo_box_text ("bit_depth_combo")) , _frame_rate_combo (get_combo_box_text ("frame_rate_combo")) , _browse_button(get_waves_button("browse_default_folder")) - , _auto_lock_timer_spin_button(get_spin_button("auto_lock_timer_spin_button")) + , _auto_lock_timer_combo(get_combo_box_text("auto_lock_timer_combo")) , _have_control (false) , _ignore_changes (0) { diff --git a/gtk2_ardour/tracks_control_panel.h b/gtk2_ardour/tracks_control_panel.h index 9fff564ca1..5d5a64b6cc 100644 --- a/gtk2_ardour/tracks_control_panel.h +++ b/gtk2_ardour/tracks_control_panel.h @@ -74,9 +74,9 @@ class TracksControlPanel : public WavesDialog, public PBD::ScopedConnectionList Gtk::ComboBoxText& _file_type_combo; Gtk::ComboBoxText& _bit_depth_combo; Gtk::ComboBoxText& _frame_rate_combo; - Gtk::Label& _latency_label; + Gtk::ComboBoxText& _auto_lock_timer_combo; + Gtk::Label& _latency_label; Gtk::Label& _default_open_path; - Gtk::SpinButton& _auto_lock_timer_spin_button; #include "tracks_control_panel.logic.h" }; diff --git a/gtk2_ardour/tracks_control_panel.logic.cc b/gtk2_ardour/tracks_control_panel.logic.cc index b458478b5e..b357aee08a 100644 --- a/gtk2_ardour/tracks_control_panel.logic.cc +++ b/gtk2_ardour/tracks_control_panel.logic.cc @@ -18,6 +18,7 @@ */ #include #include +#include #include "tracks_control_panel.h" #include "waves_button.h" @@ -47,6 +48,7 @@ using namespace Gtk; using namespace Gtkmm2ext; using namespace PBD; using namespace Glib; +using namespace std; #define dbg_msg(a) MessageDialog (a, PROGRAM_NAME).run(); @@ -150,7 +152,7 @@ TracksControlPanel::init () populate_file_type_combo(); populate_bit_depth_combo(); populate_frame_rate_combo(); - populate_auto_lock_timer(); + populate_auto_lock_timer_combo(); _audio_settings_tab_button.set_active(true); } @@ -560,6 +562,29 @@ TracksControlPanel::populate_frame_rate_combo() return; } +void +TracksControlPanel::populate_auto_lock_timer_combo() +{ + using namespace std; + + vector lock_time_strings; + lock_time_strings.push_back("0 Min"); + lock_time_strings.push_back("1 Min"); + lock_time_strings.push_back("3 Min"); + lock_time_strings.push_back("5 Min"); + lock_time_strings.push_back("10 Min"); + lock_time_strings.push_back("15 Min"); + + int time = ARDOUR_UI::config()->get_auto_lock_timer(); + stringstream ss; + ss << time; + string str_time = ss.str() + " Min"; + + set_popdown_strings (_auto_lock_timer_combo, lock_time_strings); + _auto_lock_timer_combo.set_sensitive (lock_time_strings.size() > 1); + _auto_lock_timer_combo.set_active_text( str_time ); +} + void TracksControlPanel::refresh_session_settings_info() { @@ -575,23 +600,6 @@ TracksControlPanel::refresh_session_settings_info() _frame_rate_combo.set_active_text( TimecodeFormat_to_string(session->config.get_timecode_format()) ); } -void -TracksControlPanel::populate_auto_lock_timer() -{ - using namespace std; - using namespace Gtk; - - _auto_lock_timer_spin_button.set_max_length(3); - _auto_lock_timer_spin_button.set_numeric(true); - - _auto_lock_timer_spin_button.set_update_policy(UPDATE_ALWAYS); - _auto_lock_timer_spin_button.set_range(0, 999); - _auto_lock_timer_spin_button.set_increments(1,1); - - int time = ARDOUR_UI::config()->get_auto_lock_timer(); - _auto_lock_timer_spin_button.set_value(time); -} - void TracksControlPanel::populate_default_session_path() { @@ -1264,8 +1272,10 @@ TracksControlPanel::save_auto_lock_time() { using namespace std; - string s = _auto_lock_timer_spin_button.get_text(); - int time = atoi(s); + string s = _auto_lock_timer_combo.get_active_text(); + + char * pEnd; + int time = strtol( s.c_str(), &pEnd, 10 ); ARDOUR_UI::config()->set_auto_lock_timer(time); ARDOUR_UI::config()->save_state(); diff --git a/gtk2_ardour/tracks_control_panel.logic.h b/gtk2_ardour/tracks_control_panel.logic.h index 1b11d6f7db..82d1018eaf 100644 --- a/gtk2_ardour/tracks_control_panel.logic.h +++ b/gtk2_ardour/tracks_control_panel.logic.h @@ -100,7 +100,7 @@ void populate_file_type_combo(); void populate_bit_depth_combo(); void populate_frame_rate_combo(); - void populate_auto_lock_timer(); + void populate_auto_lock_timer_combo(); // Engine State update callback handlers void on_port_registration_update(); diff --git a/gtk2_ardour/ui/tracks_preferences.xml b/gtk2_ardour/ui/tracks_preferences.xml index c1c211f96f..675242cabb 100644 --- a/gtk2_ardour/ui/tracks_preferences.xml +++ b/gtk2_ardour/ui/tracks_preferences.xml @@ -239,8 +239,8 @@