[Summary] Add buttons "Name tracks after driver" and "Reset tracks name to default" in Preference Panel

[Reviewed] GZharun

[git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 465180]
This commit is contained in:
Nikolay Polyanovskii 2014-06-02 10:08:12 -05:00 committed by Paul Davis
parent 0d0271e431
commit cd94ffdebe
6 changed files with 121 additions and 12 deletions

View file

@ -79,8 +79,6 @@ TracksControlPanel::TracksControlPanel ()
, _apply_button (named_children ().get_waves_button ("apply_button"))
, _control_panel_button (named_children ().get_waves_button ("control_panel_button"))
, _no_button (named_children ().get_waves_button ("no_button"))
, _name_track_after_driver_button (named_children ().get_waves_button ("name_track_after_driver_button"))
, _reset_track_names_button (named_children ().get_waves_button ("reset_track_names_button"))
, _yes_button (named_children ().get_waves_button ("yes_button"))
, _engine_combo (named_children ().get_combo_box_text ("engine_combo"))
, _device_combo (named_children ().get_combo_box_text ("device_combo"))
@ -90,6 +88,8 @@ TracksControlPanel::TracksControlPanel ()
, _default_open_path (named_children ().get_label("default_open_path"))
, _multi_out_button(named_children ().get_waves_button ("multi_out_button"))
, _stereo_out_button(named_children ().get_waves_button ("stereo_out_button"))
, _name_tracks_after_driver(named_children ().get_waves_button ("name_tracks_after_driver_button"))
, _reset_tracks_name_to_default(named_children ().get_waves_button ("reset_tracks_name_to_default_button"))
, _browse_button(named_children ().get_waves_button("browse_default_folder"))
, _have_control (false)
, _ignore_changes (0)

View file

@ -63,10 +63,10 @@ class TracksControlPanel : public WavesDialog, public PBD::ScopedConnectionList
WavesButton& _apply_button;
WavesButton& _control_panel_button;
WavesButton& _no_button;
WavesButton& _name_track_after_driver_button;
WavesButton& _reset_track_names_button;
WavesButton& _yes_button;
WavesButton& _browse_button;
WavesButton& _name_tracks_after_driver;
WavesButton& _reset_tracks_name_to_default;
Gtk::ComboBoxText& _engine_combo;
Gtk::ComboBoxText& _device_combo;
Gtk::ComboBoxText& _sample_rate_combo;

View file

@ -99,6 +99,10 @@ TracksControlPanel::init ()
_sample_rate_combo.signal_changed().connect (sigc::mem_fun (*this, &TracksControlPanel::sample_rate_changed));
_buffer_size_combo.signal_changed().connect (sigc::mem_fun (*this, &TracksControlPanel::buffer_size_changed));
_name_tracks_after_driver.signal_clicked.connect(sigc::mem_fun (*this, &TracksControlPanel::on_name_tracks_after_driver));
_reset_tracks_name_to_default.signal_clicked.connect(sigc::mem_fun (*this, &TracksControlPanel::on_reset_tracks_name_to_default));
populate_engine_combo ();
populate_output_mode();
@ -458,8 +462,7 @@ void TracksControlPanel::device_changed (bool show_confirm_dial/*=true*/)
true);
msg.set_position (Gtk::WIN_POS_MOUSE);
set_keep_above(false);
msg.set_keep_above(true);
switch (msg.run()) {
case RESPONSE_NO:
@ -467,11 +470,10 @@ void TracksControlPanel::device_changed (bool show_confirm_dial/*=true*/)
PBD::Unwinder<uint32_t> protect_ignore_changes (_ignore_changes, _ignore_changes + 1);
_device_combo.set_active_text (EngineStateController::instance()->get_current_device_name());
set_keep_above(true);
return;
}
set_keep_above(true);
}
if (EngineStateController::instance()->set_new_device_as_current(device_name) )
@ -497,6 +499,78 @@ TracksControlPanel::on_all_inputs_on_button(WavesButton*)
EngineStateController::instance()->set_state_to_all_inputs(true);
}
void
TracksControlPanel::on_name_tracks_after_driver(WavesButton*)
{
if( Config->get_tracks_auto_naming() == NameAfterDriver )
{
std::string message = _("Current mode is already active");
MessageDialog msg (message,
false,
Gtk::MESSAGE_WARNING,
Gtk::BUTTONS_OK,
true);
msg.set_position (Gtk::WIN_POS_MOUSE);
msg.set_keep_above(true);
msg.run();
return;
}
std::string message = _("Do you realy want to switch tracks naming?");
MessageDialog msg (message,
false,
Gtk::MESSAGE_WARNING,
Gtk::BUTTONS_YES_NO,
true);
msg.set_position (Gtk::WIN_POS_MOUSE);
msg.set_keep_above(true);
switch (msg.run()) {
case RESPONSE_YES:
Config->set_tracks_auto_naming(NameAfterDriver);
}
}
void
TracksControlPanel::on_reset_tracks_name_to_default(WavesButton*)
{
if( Config->get_tracks_auto_naming() == UseDefaultNames )
{
std::string message = _("Current mode is already active");
MessageDialog msg (message,
false,
Gtk::MESSAGE_WARNING,
Gtk::BUTTONS_OK,
true);
msg.set_position (Gtk::WIN_POS_MOUSE);
msg.set_keep_above(true);
msg.run();
return;
}
std::string message = _("Do you realy want to switch tracks naming?");
MessageDialog msg (message,
false,
Gtk::MESSAGE_WARNING,
Gtk::BUTTONS_YES_NO,
true);
msg.set_position (Gtk::WIN_POS_MOUSE);
msg.set_keep_above(true);
switch (msg.run()) {
case RESPONSE_YES:
Config->set_tracks_auto_naming(UseDefaultNames);
}
}
void
TracksControlPanel::on_all_inputs_off_button(WavesButton*)
{
@ -762,7 +836,7 @@ TracksControlPanel::on_device_list_update (bool current_device_disconnected)
populate_device_combo();
if (current_device_disconnected) {
std::string message = _("Audio Device Has Been Removed");
std::string message = _("Audio device has been removed");
MessageDialog msg (message,
false,
@ -771,6 +845,7 @@ TracksControlPanel::on_device_list_update (bool current_device_disconnected)
true);
msg.set_position (Gtk::WIN_POS_MOUSE);
msg.set_keep_above(true);
msg.run();
return;

View file

@ -89,6 +89,8 @@
void on_all_inputs_off_button(WavesButton*);
void on_all_outputs_on_button(WavesButton*);
void on_all_outputs_off_button(WavesButton*);
void on_name_tracks_after_driver(WavesButton*);
void on_reset_tracks_name_to_default(WavesButton*);
void engine_changed ();
void device_changed (bool show_confirm_dial);

View file

@ -207,12 +207,12 @@
</HBox>
</ScrolledWindow>
<Button
id="name_track_after_driver_button"
id="name_tracks_after_driver_button"
text="NAME TRACK\nAFTER DRIVER"
style="generic_button"
x="16" y="369" width="136" height="39"/>
<Button
id="reset_track_names_button"
id="reset_tracks_name_to_default_button"
text="RESET TRACK\nNAMES TO DEFAULT"
style="generic_button"
x="153" y="369" width="136" height="39"/>

View file

@ -138,6 +138,19 @@ PBD::Signal2<void,std::string,std::string> Session::VersionMismatch;
static void clean_up_session_event (SessionEvent* ev) { delete ev; }
const SessionEvent::RTeventCallback Session::rt_cleanup (clean_up_session_event);
namespace {
// if pattern is not found out_str == in_str
bool remove_pattern_from_string(const std::string& in_str, const std::string& pattern, std::string& out_str) {
if (in_str.find(pattern) != std::string::npos ) {
out_str = in_str.substr(pattern.size() );
return true;
} else {
out_str = in_str;
return false;
}
}
}
/** @param snapshot_name Snapshot name, without .ardour suffix */
Session::Session (AudioEngine &eng,
const string& fullpath,
@ -369,7 +382,26 @@ Session::Session (AudioEngine &eng,
how_many = inputs.size();
list<boost::shared_ptr<AudioTrack> > tracks = new_audio_track (1, 1, Normal, 0, how_many, string() );
list<boost::shared_ptr<AudioTrack> > tracks;
// Track names after driver
if( Config->get_tracks_auto_naming() == NameAfterDriver )
{
string track_name = "";
for( int i = 0; i < inputs.size(); ++i)
{
string track_name;
remove_pattern_from_string(inputs[i], "system:", track_name);
list<boost::shared_ptr<AudioTrack> > single_track = new_audio_track (1, 1, Normal, 0, 1, track_name);
tracks.insert(tracks.begin(), single_track.front());
}
}
else
{ // Default track names
tracks = new_audio_track (1, 1, Normal, 0, how_many, string());
}
if (tracks.size() != how_many) {
destroy ();