mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-23 23:17:46 +01:00
[Summary] Added use cases for master bus selection
This commit is contained in:
parent
1d17bd3321
commit
cb4f49e3b4
2 changed files with 48 additions and 15 deletions
|
|
@ -132,7 +132,7 @@ MasterBusUI::MasterBusUI (Session* sess, PublicEditor& ed)
|
|||
_master_mute_button.signal_clicked.connect (sigc::mem_fun (*this, &MasterBusUI::on_master_mute_button));
|
||||
_clear_solo_button.signal_clicked.connect (sigc::mem_fun (*this, &MasterBusUI::on_clear_solo_button));
|
||||
_global_rec_button.signal_clicked.connect (sigc::mem_fun (*this, &MasterBusUI::on_global_rec_button));
|
||||
_master_event_box.signal_button_press_event().connect (sigc::mem_fun (*this, &MasterBusUI::on_master_event_box_button_release));
|
||||
_master_event_box.signal_button_press_event().connect (sigc::mem_fun (*this, &MasterBusUI::on_master_event_box_button_press));
|
||||
|
||||
_editor.get_selection().TracksChanged.connect (sigc::mem_fun(*this, &MasterBusUI::update_master_bus_selection));
|
||||
|
||||
|
|
@ -247,31 +247,64 @@ MasterBusUI::update_master_bus_selection ()
|
|||
}
|
||||
|
||||
bool
|
||||
MasterBusUI::on_master_event_box_button_release (GdkEventButton *ev)
|
||||
MasterBusUI::on_master_event_box_button_press (GdkEventButton *ev)
|
||||
{
|
||||
if (ev->button == 1) {
|
||||
|
||||
switch (ArdourKeyboard::selection_type (ev->state)) {
|
||||
case Selection::Toggle:
|
||||
if (_selected) {
|
||||
if (Keyboard::modifier_state_equals (ev->state, (Keyboard::TertiaryModifier|Keyboard::PrimaryModifier))) {
|
||||
|
||||
TimeAxisView* tv = _editor.axis_view_from_route (_route );
|
||||
if (tv) {
|
||||
_editor.set_selected_track(*tv, Selection::Toggle);
|
||||
/* special case: select/deselect all tracks along with master bus*/
|
||||
if (_editor.get_selection().selected (tv)) {
|
||||
_editor.get_selection().clear_tracks ();
|
||||
} else {
|
||||
_editor.select_all_tracks ();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
switch (ArdourKeyboard::selection_type (ev->state)) {
|
||||
case Selection::Toggle:
|
||||
{
|
||||
TimeAxisView* tv = _editor.axis_view_from_route (_route );
|
||||
if (tv) {
|
||||
_editor.get_selection().toggle (tv);
|
||||
}
|
||||
_selected = false;
|
||||
}
|
||||
break;
|
||||
} /*else - just fall down*/
|
||||
|
||||
case Selection::Set:
|
||||
if (!_selected) {
|
||||
{
|
||||
TimeAxisView* tv = _editor.axis_view_from_route (_route );
|
||||
if (tv) {
|
||||
_editor.set_selected_track(*tv);
|
||||
}
|
||||
_selected = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Selection::Extend:
|
||||
{
|
||||
TimeAxisView* tv = _editor.axis_view_from_route (_route );
|
||||
if (tv) {
|
||||
_editor.extend_selection_to_track (*tv);
|
||||
}
|
||||
_selected = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Selection::Add:
|
||||
{
|
||||
TimeAxisView* tv = _editor.axis_view_from_route (_route );
|
||||
if (tv) {
|
||||
_editor.get_selection().add (tv);
|
||||
}
|
||||
_selected = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ private:
|
|||
void on_global_rec_button (WavesButton*);
|
||||
void on_output_connection_mode_changed ();
|
||||
bool on_level_meter_button_press (GdkEventButton*);
|
||||
bool on_master_event_box_button_release (GdkEventButton*);
|
||||
bool on_master_event_box_button_press (GdkEventButton*);
|
||||
|
||||
PBD::ScopedConnection _route_meter_connection;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue