mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 03:36:32 +01:00
NOOP, re-indent, remove trailing whitespace, sort includes
This commit is contained in:
parent
f23f379b37
commit
4167e83972
1 changed files with 195 additions and 195 deletions
|
|
@ -17,37 +17,37 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cassert>
|
||||||
|
#include <cmath>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cstdlib>
|
|
||||||
#include <cmath>
|
|
||||||
#include <cassert>
|
|
||||||
|
|
||||||
#include "pbd/unknown_type.h"
|
#include "pbd/unknown_type.h"
|
||||||
#include "pbd/unwind.h"
|
#include "pbd/unwind.h"
|
||||||
|
|
||||||
#include "ardour/debug.h"
|
#include "ardour/debug.h"
|
||||||
#include "ardour/route.h"
|
|
||||||
#include "ardour/midi_track.h"
|
#include "ardour/midi_track.h"
|
||||||
|
#include "ardour/route.h"
|
||||||
#include "ardour/session.h"
|
#include "ardour/session.h"
|
||||||
|
|
||||||
#include "gtkmm2ext/cell_renderer_pixbuf_multi.h"
|
#include "gtkmm2ext/cell_renderer_pixbuf_multi.h"
|
||||||
#include "gtkmm2ext/cell_renderer_pixbuf_toggle.h"
|
#include "gtkmm2ext/cell_renderer_pixbuf_toggle.h"
|
||||||
#include "gtkmm2ext/treeutils.h"
|
#include "gtkmm2ext/treeutils.h"
|
||||||
|
|
||||||
#include "editor.h"
|
#include "actions.h"
|
||||||
#include "keyboard.h"
|
|
||||||
#include "ardour_ui.h"
|
#include "ardour_ui.h"
|
||||||
#include "audio_time_axis.h"
|
#include "audio_time_axis.h"
|
||||||
#include "midi_time_axis.h"
|
#include "editor.h"
|
||||||
#include "mixer_strip.h"
|
|
||||||
#include "gui_thread.h"
|
|
||||||
#include "actions.h"
|
|
||||||
#include "utils.h"
|
|
||||||
#include "route_sorter.h"
|
|
||||||
#include "editor_group_tabs.h"
|
#include "editor_group_tabs.h"
|
||||||
#include "editor_routes.h"
|
#include "editor_routes.h"
|
||||||
|
#include "gui_thread.h"
|
||||||
|
#include "keyboard.h"
|
||||||
|
#include "midi_time_axis.h"
|
||||||
|
#include "mixer_strip.h"
|
||||||
|
#include "route_sorter.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
|
|
||||||
|
|
@ -61,23 +61,23 @@ using namespace Glib;
|
||||||
using Gtkmm2ext::Keyboard;
|
using Gtkmm2ext::Keyboard;
|
||||||
|
|
||||||
struct ColumnInfo {
|
struct ColumnInfo {
|
||||||
int index;
|
int index;
|
||||||
const char* label;
|
const char* label;
|
||||||
const char* tooltip;
|
const char* tooltip;
|
||||||
};
|
};
|
||||||
|
|
||||||
EditorRoutes::EditorRoutes (Editor* e)
|
EditorRoutes::EditorRoutes (Editor* e)
|
||||||
: EditorComponent (e)
|
: EditorComponent (e)
|
||||||
, _ignore_reorder (false)
|
, _ignore_reorder (false)
|
||||||
, _no_redisplay (false)
|
, _no_redisplay (false)
|
||||||
, _adding_routes (false)
|
, _adding_routes (false)
|
||||||
, _route_deletion_in_progress (false)
|
, _route_deletion_in_progress (false)
|
||||||
, _redisplay_active (0)
|
, _redisplay_active (0)
|
||||||
, _queue_tv_update (0)
|
, _queue_tv_update (0)
|
||||||
, _menu (0)
|
, _menu (0)
|
||||||
, old_focus (0)
|
, old_focus (0)
|
||||||
, selection_countdown (0)
|
, selection_countdown (0)
|
||||||
, name_editable (0)
|
, name_editable (0)
|
||||||
{
|
{
|
||||||
static const int column_width = 22;
|
static const int column_width = 22;
|
||||||
|
|
||||||
|
|
@ -187,7 +187,7 @@ EditorRoutes::EditorRoutes (Editor* e)
|
||||||
solo_safe_state_column->set_expand(false);
|
solo_safe_state_column->set_expand(false);
|
||||||
solo_safe_state_column->set_fixed_width(column_width);
|
solo_safe_state_column->set_fixed_width(column_width);
|
||||||
|
|
||||||
_name_column = _display.append_column ("", _columns.text) - 1;
|
_name_column = _display.append_column ("", _columns.text) - 1;
|
||||||
_visible_column = _display.append_column ("", _columns.visible) - 1;
|
_visible_column = _display.append_column ("", _columns.visible) - 1;
|
||||||
_active_column = _display.append_column ("", _columns.active) - 1;
|
_active_column = _display.append_column ("", _columns.active) - 1;
|
||||||
|
|
||||||
|
|
@ -236,7 +236,7 @@ EditorRoutes::EditorRoutes (Editor* e)
|
||||||
CellRendererText* name_cell = dynamic_cast<CellRendererText*> (_display.get_column_cell_renderer (_name_column));
|
CellRendererText* name_cell = dynamic_cast<CellRendererText*> (_display.get_column_cell_renderer (_name_column));
|
||||||
|
|
||||||
assert (name_cell);
|
assert (name_cell);
|
||||||
name_cell->signal_editing_started().connect (sigc::mem_fun (*this, &EditorRoutes::name_edit_started));
|
name_cell->signal_editing_started().connect (sigc::mem_fun (*this, &EditorRoutes::name_edit_started));
|
||||||
|
|
||||||
TreeViewColumn* name_column = _display.get_column (_name_column);
|
TreeViewColumn* name_column = _display.get_column (_name_column);
|
||||||
|
|
||||||
|
|
@ -274,20 +274,20 @@ EditorRoutes::EditorRoutes (Editor* e)
|
||||||
active_col->set_sizing (TREE_VIEW_COLUMN_FIXED);
|
active_col->set_sizing (TREE_VIEW_COLUMN_FIXED);
|
||||||
active_col->set_fixed_width (30);
|
active_col->set_fixed_width (30);
|
||||||
active_col->set_alignment (ALIGN_CENTER);
|
active_col->set_alignment (ALIGN_CENTER);
|
||||||
|
|
||||||
_model->signal_row_deleted().connect (sigc::mem_fun (*this, &EditorRoutes::row_deleted));
|
_model->signal_row_deleted().connect (sigc::mem_fun (*this, &EditorRoutes::row_deleted));
|
||||||
_model->signal_rows_reordered().connect (sigc::mem_fun (*this, &EditorRoutes::reordered));
|
_model->signal_rows_reordered().connect (sigc::mem_fun (*this, &EditorRoutes::reordered));
|
||||||
|
|
||||||
_display.signal_button_press_event().connect (sigc::mem_fun (*this, &EditorRoutes::button_press), false);
|
_display.signal_button_press_event().connect (sigc::mem_fun (*this, &EditorRoutes::button_press), false);
|
||||||
_scroller.signal_key_press_event().connect (sigc::mem_fun(*this, &EditorRoutes::key_press), false);
|
_scroller.signal_key_press_event().connect (sigc::mem_fun(*this, &EditorRoutes::key_press), false);
|
||||||
|
|
||||||
_scroller.signal_focus_in_event().connect (sigc::mem_fun (*this, &EditorRoutes::focus_in), false);
|
_scroller.signal_focus_in_event().connect (sigc::mem_fun (*this, &EditorRoutes::focus_in), false);
|
||||||
_scroller.signal_focus_out_event().connect (sigc::mem_fun (*this, &EditorRoutes::focus_out));
|
_scroller.signal_focus_out_event().connect (sigc::mem_fun (*this, &EditorRoutes::focus_out));
|
||||||
|
|
||||||
_display.signal_enter_notify_event().connect (sigc::mem_fun (*this, &EditorRoutes::enter_notify), false);
|
_display.signal_enter_notify_event().connect (sigc::mem_fun (*this, &EditorRoutes::enter_notify), false);
|
||||||
_display.signal_leave_notify_event().connect (sigc::mem_fun (*this, &EditorRoutes::leave_notify), false);
|
_display.signal_leave_notify_event().connect (sigc::mem_fun (*this, &EditorRoutes::leave_notify), false);
|
||||||
|
|
||||||
_display.set_enable_search (false);
|
_display.set_enable_search (false);
|
||||||
|
|
||||||
Route::SyncOrderKeys.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::sync_treeview_from_order_keys, this), gui_context());
|
Route::SyncOrderKeys.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::sync_treeview_from_order_keys, this), gui_context());
|
||||||
}
|
}
|
||||||
|
|
@ -295,29 +295,29 @@ EditorRoutes::EditorRoutes (Editor* e)
|
||||||
bool
|
bool
|
||||||
EditorRoutes::focus_in (GdkEventFocus*)
|
EditorRoutes::focus_in (GdkEventFocus*)
|
||||||
{
|
{
|
||||||
Window* win = dynamic_cast<Window*> (_scroller.get_toplevel ());
|
Window* win = dynamic_cast<Window*> (_scroller.get_toplevel ());
|
||||||
|
|
||||||
if (win) {
|
if (win) {
|
||||||
old_focus = win->get_focus ();
|
old_focus = win->get_focus ();
|
||||||
} else {
|
} else {
|
||||||
old_focus = 0;
|
old_focus = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
name_editable = 0;
|
name_editable = 0;
|
||||||
|
|
||||||
/* try to do nothing on focus in (doesn't work, hence selection_count nonsense) */
|
/* try to do nothing on focus in (doesn't work, hence selection_count nonsense) */
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
EditorRoutes::focus_out (GdkEventFocus*)
|
EditorRoutes::focus_out (GdkEventFocus*)
|
||||||
{
|
{
|
||||||
if (old_focus) {
|
if (old_focus) {
|
||||||
old_focus->grab_focus ();
|
old_focus->grab_focus ();
|
||||||
old_focus = 0;
|
old_focus = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
@ -327,27 +327,27 @@ EditorRoutes::enter_notify (GdkEventCrossing*)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* arm counter so that ::selection_filter() will deny selecting anything for the
|
/* arm counter so that ::selection_filter() will deny selecting anything for the
|
||||||
next two attempts to change selection status.
|
* next two attempts to change selection status.
|
||||||
*/
|
*/
|
||||||
selection_countdown = 2;
|
selection_countdown = 2;
|
||||||
_scroller.grab_focus ();
|
_scroller.grab_focus ();
|
||||||
Keyboard::magic_widget_grab_focus ();
|
Keyboard::magic_widget_grab_focus ();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
EditorRoutes::leave_notify (GdkEventCrossing*)
|
EditorRoutes::leave_notify (GdkEventCrossing*)
|
||||||
{
|
{
|
||||||
selection_countdown = 0;
|
selection_countdown = 0;
|
||||||
|
|
||||||
if (old_focus) {
|
if (old_focus) {
|
||||||
old_focus->grab_focus ();
|
old_focus->grab_focus ();
|
||||||
old_focus = 0;
|
old_focus = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Keyboard::magic_widget_drop_focus ();
|
Keyboard::magic_widget_drop_focus ();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -572,14 +572,14 @@ void
|
||||||
EditorRoutes::row_deleted (Gtk::TreeModel::Path const &)
|
EditorRoutes::row_deleted (Gtk::TreeModel::Path const &)
|
||||||
{
|
{
|
||||||
/* this happens as the second step of a DnD within the treeview, and
|
/* this happens as the second step of a DnD within the treeview, and
|
||||||
when a route is actually removed. we don't differentiate between
|
* when a route is actually removed. we don't differentiate between
|
||||||
the two cases.
|
* the two cases.
|
||||||
|
*
|
||||||
note that the sync_orders_keys() step may not actually change any
|
* note that the sync_orders_keys() step may not actually change any
|
||||||
RID's (e.g. the last track may be removed, so all other tracks keep
|
* RID's (e.g. the last track may be removed, so all other tracks keep
|
||||||
the same RID), which means that no redisplay would happen. so we
|
* the same RID), which means that no redisplay would happen. so we
|
||||||
have to force a redisplay.
|
* have to force a redisplay.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DEBUG_TRACE (DEBUG::OrderKeys, "editor routes treeview row deleted\n");
|
DEBUG_TRACE (DEBUG::OrderKeys, "editor routes treeview row deleted\n");
|
||||||
|
|
||||||
|
|
@ -652,7 +652,7 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
|
||||||
|
|
||||||
if(!from_scratch) {
|
if(!from_scratch) {
|
||||||
_editor->selection->tracks.clear();
|
_editor->selection->tracks.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
DisplaySuspender ds;
|
DisplaySuspender ds;
|
||||||
|
|
||||||
|
|
@ -700,12 +700,12 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
|
||||||
t->RecordEnableChanged.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_rec_display, this), gui_context());
|
t->RecordEnableChanged.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_rec_display, this), gui_context());
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((*x)->is_midi_track()) {
|
if ((*x)->is_midi_track()) {
|
||||||
boost::shared_ptr<MidiTrack> t = boost::dynamic_pointer_cast<MidiTrack> ((*x)->route());
|
boost::shared_ptr<MidiTrack> t = boost::dynamic_pointer_cast<MidiTrack> ((*x)->route());
|
||||||
t->StepEditStatusChange.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_rec_display, this), gui_context());
|
t->StepEditStatusChange.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_rec_display, this), gui_context());
|
||||||
t->InputActiveChanged.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_input_active_display, this), gui_context());
|
t->InputActiveChanged.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_input_active_display, this), gui_context());
|
||||||
}
|
}
|
||||||
|
|
||||||
(*x)->route()->mute_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_mute_display, this), gui_context());
|
(*x)->route()->mute_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_mute_display, this), gui_context());
|
||||||
(*x)->route()->solo_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_display, this, _1), gui_context());
|
(*x)->route()->solo_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_display, this, _1), gui_context());
|
||||||
(*x)->route()->listen_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_display, this, _1), gui_context());
|
(*x)->route()->listen_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_display, this, _1), gui_context());
|
||||||
|
|
@ -765,7 +765,7 @@ EditorRoutes::route_removed (TimeAxisView *tv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* the deleted signal for the treeview/model will take
|
/* the deleted signal for the treeview/model will take
|
||||||
care of any updates.
|
care of any updates.
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
@ -865,12 +865,12 @@ EditorRoutes::reset_remote_control_ids ()
|
||||||
}
|
}
|
||||||
|
|
||||||
TreeModel::Children rows = _model->children();
|
TreeModel::Children rows = _model->children();
|
||||||
|
|
||||||
if (rows.empty()) {
|
if (rows.empty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DEBUG_TRACE (DEBUG::OrderKeys, "editor reset remote control ids\n");
|
DEBUG_TRACE (DEBUG::OrderKeys, "editor reset remote control ids\n");
|
||||||
|
|
||||||
TreeModel::Children::iterator ri;
|
TreeModel::Children::iterator ri;
|
||||||
|
|
@ -889,10 +889,10 @@ EditorRoutes::reset_remote_control_ids ()
|
||||||
uint32_t new_rid = (visible ? rid : invisible_key--);
|
uint32_t new_rid = (visible ? rid : invisible_key--);
|
||||||
|
|
||||||
if (new_rid != route->remote_control_id()) {
|
if (new_rid != route->remote_control_id()) {
|
||||||
route->set_remote_control_id_explicit (new_rid);
|
route->set_remote_control_id_explicit (new_rid);
|
||||||
rid_change = true;
|
rid_change = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (visible) {
|
if (visible) {
|
||||||
rid++;
|
rid++;
|
||||||
}
|
}
|
||||||
|
|
@ -915,12 +915,12 @@ EditorRoutes::sync_order_keys_from_treeview ()
|
||||||
}
|
}
|
||||||
|
|
||||||
TreeModel::Children rows = _model->children();
|
TreeModel::Children rows = _model->children();
|
||||||
|
|
||||||
if (rows.empty()) {
|
if (rows.empty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DEBUG_TRACE (DEBUG::OrderKeys, "editor sync order keys from treeview\n");
|
DEBUG_TRACE (DEBUG::OrderKeys, "editor sync order keys from treeview\n");
|
||||||
|
|
||||||
TreeModel::Children::iterator ri;
|
TreeModel::Children::iterator ri;
|
||||||
|
|
@ -948,10 +948,10 @@ EditorRoutes::sync_order_keys_from_treeview ()
|
||||||
uint32_t new_rid = (visible ? rid : invisible_key--);
|
uint32_t new_rid = (visible ? rid : invisible_key--);
|
||||||
|
|
||||||
if (new_rid != route->remote_control_id()) {
|
if (new_rid != route->remote_control_id()) {
|
||||||
route->set_remote_control_id_explicit (new_rid);
|
route->set_remote_control_id_explicit (new_rid);
|
||||||
rid_change = true;
|
rid_change = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (visible) {
|
if (visible) {
|
||||||
rid++;
|
rid++;
|
||||||
}
|
}
|
||||||
|
|
@ -960,7 +960,7 @@ EditorRoutes::sync_order_keys_from_treeview ()
|
||||||
|
|
||||||
++order;
|
++order;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
/* tell the world that we changed the editor sort keys */
|
/* tell the world that we changed the editor sort keys */
|
||||||
_session->sync_order_keys ();
|
_session->sync_order_keys ();
|
||||||
|
|
@ -975,7 +975,7 @@ EditorRoutes::sync_order_keys_from_treeview ()
|
||||||
void
|
void
|
||||||
EditorRoutes::sync_treeview_from_order_keys ()
|
EditorRoutes::sync_treeview_from_order_keys ()
|
||||||
{
|
{
|
||||||
/* Some route order key(s) have been changed, make sure that
|
/* Some route order key(s) have been changed, make sure that
|
||||||
we update out tree/list model and GUI to reflect the change.
|
we update out tree/list model and GUI to reflect the change.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -1012,7 +1012,7 @@ EditorRoutes::sync_treeview_from_order_keys ()
|
||||||
neworder.assign (sorted_routes.size(), 0);
|
neworder.assign (sorted_routes.size(), 0);
|
||||||
|
|
||||||
uint32_t n = 0;
|
uint32_t n = 0;
|
||||||
|
|
||||||
for (OrderKeySortedRoutes::iterator sr = sorted_routes.begin(); sr != sorted_routes.end(); ++sr, ++n) {
|
for (OrderKeySortedRoutes::iterator sr = sorted_routes.begin(); sr != sorted_routes.end(); ++sr, ++n) {
|
||||||
|
|
||||||
neworder[n] = sr->old_display_order;
|
neworder[n] = sr->old_display_order;
|
||||||
|
|
@ -1189,59 +1189,58 @@ EditorRoutes::hide_all_miditracks ()
|
||||||
bool
|
bool
|
||||||
EditorRoutes::key_press (GdkEventKey* ev)
|
EditorRoutes::key_press (GdkEventKey* ev)
|
||||||
{
|
{
|
||||||
TreeViewColumn *col;
|
TreeViewColumn *col;
|
||||||
boost::shared_ptr<RouteList> rl (new RouteList);
|
boost::shared_ptr<RouteList> rl (new RouteList);
|
||||||
TreePath path;
|
TreePath path;
|
||||||
|
|
||||||
switch (ev->keyval) {
|
switch (ev->keyval) {
|
||||||
case GDK_Tab:
|
case GDK_Tab:
|
||||||
case GDK_ISO_Left_Tab:
|
case GDK_ISO_Left_Tab:
|
||||||
|
|
||||||
/* If we appear to be editing something, leave that cleanly and appropriately.
|
/* If we appear to be editing something, leave that cleanly and appropriately. */
|
||||||
*/
|
if (name_editable) {
|
||||||
if (name_editable) {
|
name_editable->editing_done ();
|
||||||
name_editable->editing_done ();
|
name_editable = 0;
|
||||||
name_editable = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
col = _display.get_column (_name_column); // select&focus on name column
|
|
||||||
|
|
||||||
if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
|
|
||||||
treeview_select_previous (_display, _model, col);
|
|
||||||
} else {
|
|
||||||
treeview_select_next (_display, _model, col);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'm':
|
|
||||||
if (get_relevant_routes (rl)) {
|
|
||||||
_session->set_mute (rl, !rl->front()->muted(), Session::rt_cleanup);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 's':
|
|
||||||
if (get_relevant_routes (rl)) {
|
|
||||||
if (Config->get_solo_control_is_listen_control()) {
|
|
||||||
_session->set_listen (rl, !rl->front()->listening_via_monitor(), Session::rt_cleanup);
|
|
||||||
} else {
|
|
||||||
_session->set_solo (rl, !rl->front()->self_soloed(), Session::rt_cleanup);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'r':
|
col = _display.get_column (_name_column); // select&focus on name column
|
||||||
if (get_relevant_routes (rl)) {
|
|
||||||
_session->set_record_enabled (rl, !rl->front()->record_enabled(), Session::rt_cleanup);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
|
||||||
break;
|
treeview_select_previous (_display, _model, col);
|
||||||
}
|
} else {
|
||||||
|
treeview_select_next (_display, _model, col);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'm':
|
||||||
|
if (get_relevant_routes (rl)) {
|
||||||
|
_session->set_mute (rl, !rl->front()->muted(), Session::rt_cleanup);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 's':
|
||||||
|
if (get_relevant_routes (rl)) {
|
||||||
|
if (Config->get_solo_control_is_listen_control()) {
|
||||||
|
_session->set_listen (rl, !rl->front()->listening_via_monitor(), Session::rt_cleanup);
|
||||||
|
} else {
|
||||||
|
_session->set_solo (rl, !rl->front()->self_soloed(), Session::rt_cleanup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'r':
|
||||||
|
if (get_relevant_routes (rl)) {
|
||||||
|
_session->set_record_enabled (rl, !rl->front()->record_enabled(), Session::rt_cleanup);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -1249,44 +1248,44 @@ EditorRoutes::key_press (GdkEventKey* ev)
|
||||||
bool
|
bool
|
||||||
EditorRoutes::get_relevant_routes (boost::shared_ptr<RouteList> rl)
|
EditorRoutes::get_relevant_routes (boost::shared_ptr<RouteList> rl)
|
||||||
{
|
{
|
||||||
TimeAxisView* tv;
|
TimeAxisView* tv;
|
||||||
RouteTimeAxisView* rtv;
|
RouteTimeAxisView* rtv;
|
||||||
RefPtr<TreeSelection> selection = _display.get_selection();
|
RefPtr<TreeSelection> selection = _display.get_selection();
|
||||||
TreePath path;
|
TreePath path;
|
||||||
TreeIter iter;
|
TreeIter iter;
|
||||||
|
|
||||||
if (selection->count_selected_rows() != 0) {
|
if (selection->count_selected_rows() != 0) {
|
||||||
|
|
||||||
/* use selection */
|
/* use selection */
|
||||||
|
|
||||||
RefPtr<TreeModel> tm = RefPtr<TreeModel>::cast_dynamic (_model);
|
RefPtr<TreeModel> tm = RefPtr<TreeModel>::cast_dynamic (_model);
|
||||||
iter = selection->get_selected (tm);
|
iter = selection->get_selected (tm);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* use mouse pointer */
|
/* use mouse pointer */
|
||||||
|
|
||||||
int x, y;
|
int x, y;
|
||||||
int bx, by;
|
int bx, by;
|
||||||
|
|
||||||
_display.get_pointer (x, y);
|
_display.get_pointer (x, y);
|
||||||
_display.convert_widget_to_bin_window_coords (x, y, bx, by);
|
_display.convert_widget_to_bin_window_coords (x, y, bx, by);
|
||||||
|
|
||||||
if (_display.get_path_at_pos (bx, by, path)) {
|
if (_display.get_path_at_pos (bx, by, path)) {
|
||||||
iter = _model->get_iter (path);
|
iter = _model->get_iter (path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iter) {
|
if (iter) {
|
||||||
tv = (*iter)[_columns.tv];
|
tv = (*iter)[_columns.tv];
|
||||||
if (tv) {
|
if (tv) {
|
||||||
rtv = dynamic_cast<RouteTimeAxisView*>(tv);
|
rtv = dynamic_cast<RouteTimeAxisView*>(tv);
|
||||||
if (rtv) {
|
if (rtv) {
|
||||||
rl->push_back (rtv->route());
|
rl->push_back (rtv->route());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return !rl->empty();
|
return !rl->empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
@ -1342,7 +1341,7 @@ EditorRoutes::selection_changed ()
|
||||||
TimeAxisView* tv = (*iter)[_columns.tv];
|
TimeAxisView* tv = (*iter)[_columns.tv];
|
||||||
selected.push_back (tv);
|
selected.push_back (tv);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_editor->get_selection().set (selected);
|
_editor->get_selection().set (selected);
|
||||||
|
|
@ -1356,28 +1355,29 @@ EditorRoutes::selection_changed ()
|
||||||
bool
|
bool
|
||||||
EditorRoutes::selection_filter (Glib::RefPtr<TreeModel> const &, TreeModel::Path const&, bool /*selected*/)
|
EditorRoutes::selection_filter (Glib::RefPtr<TreeModel> const &, TreeModel::Path const&, bool /*selected*/)
|
||||||
{
|
{
|
||||||
if (selection_countdown) {
|
if (selection_countdown) {
|
||||||
if (--selection_countdown == 0) {
|
if (--selection_countdown == 0) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
/* no selection yet ... */
|
/* no selection yet ... */
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct EditorOrderRouteSorter {
|
struct EditorOrderRouteSorter
|
||||||
bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
|
{
|
||||||
if (a->is_master()) {
|
bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
|
||||||
/* master before everything else */
|
if (a->is_master()) {
|
||||||
return true;
|
/* master before everything else */
|
||||||
} else if (b->is_master()) {
|
return true;
|
||||||
/* everything else before master */
|
} else if (b->is_master()) {
|
||||||
return false;
|
/* everything else before master */
|
||||||
}
|
return false;
|
||||||
return a->order_key () < b->order_key ();
|
}
|
||||||
}
|
return a->order_key () < b->order_key ();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1399,7 +1399,7 @@ EditorRoutes::initial_display ()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
_editor->add_routes (*(routes.get()));
|
_editor->add_routes (*(routes.get()));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* existing session: sort a copy of the route list by
|
/* existing session: sort a copy of the route list by
|
||||||
|
|
@ -1408,10 +1408,10 @@ EditorRoutes::initial_display ()
|
||||||
|
|
||||||
RouteList r (*routes);
|
RouteList r (*routes);
|
||||||
EditorOrderRouteSorter sorter;
|
EditorOrderRouteSorter sorter;
|
||||||
|
|
||||||
r.sort (sorter);
|
r.sort (sorter);
|
||||||
_editor->add_routes (r);
|
_editor->add_routes (r);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1550,7 +1550,7 @@ EditorRoutes::move_selected_tracks (bool up)
|
||||||
}
|
}
|
||||||
assert (*i < (int) neworder.size ());
|
assert (*i < (int) neworder.size ());
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_model->reorder (neworder);
|
_model->reorder (neworder);
|
||||||
}
|
}
|
||||||
|
|
@ -1566,7 +1566,7 @@ EditorRoutes::update_input_active_display ()
|
||||||
|
|
||||||
if (boost::dynamic_pointer_cast<Track> (route)) {
|
if (boost::dynamic_pointer_cast<Track> (route)) {
|
||||||
boost::shared_ptr<MidiTrack> mt = boost::dynamic_pointer_cast<MidiTrack> (route);
|
boost::shared_ptr<MidiTrack> mt = boost::dynamic_pointer_cast<MidiTrack> (route);
|
||||||
|
|
||||||
if (mt) {
|
if (mt) {
|
||||||
(*i)[_columns.is_input_active] = mt->input_active();
|
(*i)[_columns.is_input_active] = mt->input_active();
|
||||||
}
|
}
|
||||||
|
|
@ -1674,21 +1674,21 @@ EditorRoutes::clear ()
|
||||||
void
|
void
|
||||||
EditorRoutes::name_edit_started (CellEditable* ce, const Glib::ustring&)
|
EditorRoutes::name_edit_started (CellEditable* ce, const Glib::ustring&)
|
||||||
{
|
{
|
||||||
name_editable = ce;
|
name_editable = ce;
|
||||||
|
|
||||||
/* give it a special name */
|
/* give it a special name */
|
||||||
|
|
||||||
Gtk::Entry *e = dynamic_cast<Gtk::Entry*> (ce);
|
Gtk::Entry *e = dynamic_cast<Gtk::Entry*> (ce);
|
||||||
|
|
||||||
if (e) {
|
if (e) {
|
||||||
e->set_name (X_("RouteNameEditorEntry"));
|
e->set_name (X_("RouteNameEditorEntry"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
EditorRoutes::name_edit (std::string const & path, std::string const & new_text)
|
EditorRoutes::name_edit (std::string const & path, std::string const & new_text)
|
||||||
{
|
{
|
||||||
name_editable = 0;
|
name_editable = 0;
|
||||||
|
|
||||||
TreeIter iter = _model->get_iter (path);
|
TreeIter iter = _model->get_iter (path);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue