diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-02-26 18:17:50 +0100 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-02-26 18:24:56 +0100 |
commit | 67ba18d15430f3e639d97a8a30717d7ff009bec1 (patch) | |
tree | 6246006f1aa464ad26464ad53cf70516374481d3 | |
parent | 02cf331403458c0895b3f44689ca5a781977818f (diff) |
selected Stripables now have a counter to indicate the order they were selected in
-rw-r--r-- | libs/ardour/ardour/presentation_info.h | 5 | ||||
-rw-r--r-- | libs/ardour/presentation_info.cc | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/libs/ardour/ardour/presentation_info.h b/libs/ardour/ardour/presentation_info.h index 6984930f3d..7c847e9fce 100644 --- a/libs/ardour/ardour/presentation_info.h +++ b/libs/ardour/ardour/presentation_info.h @@ -158,6 +158,8 @@ class LIBARDOUR_API PresentationInfo : public PBD::Stateful bool order_set() const { return _flags & OrderSet; } + int selection_cnt() const { return _selection_cnt; } + bool hidden() const { return _flags & Hidden; } bool selected() const { return _flags & Selected; } bool special() const { return _flags & (MasterOut|MonitorOut|Auditioner); } @@ -263,11 +265,14 @@ class LIBARDOUR_API PresentationInfo : public PBD::Stateful order_t _order; Flag _flags; color_t _color; + int _selection_cnt; static PBD::PropertyChange _pending_static_changes; static Glib::Threads::Mutex static_signal_lock; static int _change_signal_suspended; static void send_static_change (const PBD::PropertyChange&); + + static int selection_counter; }; } diff --git a/libs/ardour/presentation_info.cc b/libs/ardour/presentation_info.cc index 25048eaf98..e3e7700d40 100644 --- a/libs/ardour/presentation_info.cc +++ b/libs/ardour/presentation_info.cc @@ -43,6 +43,7 @@ PBD::Signal1<void,PropertyChange const &> PresentationInfo::Change; Glib::Threads::Mutex PresentationInfo::static_signal_lock; int PresentationInfo::_change_signal_suspended = 0; PBD::PropertyChange PresentationInfo::_pending_static_changes; +int PresentationInfo::selection_counter = 0; namespace ARDOUR { namespace Properties { @@ -243,8 +244,10 @@ PresentationInfo::set_selected (bool yn) if (yn != selected()) { if (yn) { _flags = Flag (_flags | Selected); + _selection_cnt = g_atomic_int_add (&selection_counter, 1); } else { _flags = Flag (_flags & ~Selected); + _selection_cnt = 0; } send_change (PropertyChange (Properties::selected)); send_static_change (PropertyChange (Properties::selected)); |