13
0

selected Stripables now have a counter to indicate the order they were selected in

This commit is contained in:
Paul Davis 2017-02-26 18:17:50 +01:00
parent 02cf331403
commit 67ba18d154
2 changed files with 8 additions and 0 deletions

View File

@ -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;
};
}

View File

@ -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));