disallow selection of the fader and meter processor entries
This commit is contained in:
parent
966ed85005
commit
df2a8fccc7
@ -103,6 +103,7 @@ static const uint32_t midi_port_color = 0x960909FF; //Red
|
||||
ProcessorEntry::ProcessorEntry (ProcessorBox* parent, boost::shared_ptr<Processor> p, Width w)
|
||||
: _button (ArdourButton::led_default_elements)
|
||||
, _position (PreFader)
|
||||
, _selectable(true)
|
||||
, _parent (parent)
|
||||
, _processor (p)
|
||||
, _width (w)
|
||||
@ -1753,6 +1754,7 @@ ProcessorBox::add_processor_to_display (boost::weak_ptr<Processor> p)
|
||||
}
|
||||
|
||||
boost::shared_ptr<PluginInsert> plugin_insert = boost::dynamic_pointer_cast<PluginInsert> (processor);
|
||||
|
||||
ProcessorEntry* e = 0;
|
||||
if (plugin_insert) {
|
||||
e = new PluginInsertProcessorEntry (this, plugin_insert, _width);
|
||||
@ -1760,6 +1762,13 @@ ProcessorBox::add_processor_to_display (boost::weak_ptr<Processor> p)
|
||||
e = new ProcessorEntry (this, processor, _width);
|
||||
}
|
||||
|
||||
boost::shared_ptr<Send> send = boost::dynamic_pointer_cast<Send> (processor);
|
||||
boost::shared_ptr<PortInsert> ext = boost::dynamic_pointer_cast<PortInsert> (processor);
|
||||
|
||||
//faders and meters are not deletable, copy/paste-able, so they shouldn't be selectable
|
||||
if (!send && !plugin_insert && !ext)
|
||||
e->set_selectable(false);
|
||||
|
||||
/* Set up this entry's state from the GUIObjectState */
|
||||
XMLNode* proc = entry_gui_object_state (e);
|
||||
if (proc) {
|
||||
|
@ -119,6 +119,9 @@ public:
|
||||
std::string drag_text () const;
|
||||
void set_visual_state (Gtkmm2ext::VisualState, bool);
|
||||
|
||||
bool is_selectable() const {return _selectable;}
|
||||
void set_selectable(bool s) { _selectable = s; }
|
||||
|
||||
enum Position {
|
||||
PreFader,
|
||||
Fader,
|
||||
@ -149,6 +152,7 @@ protected:
|
||||
virtual void setup_visuals ();
|
||||
|
||||
private:
|
||||
bool _selectable;
|
||||
void led_clicked();
|
||||
void processor_active_changed ();
|
||||
void processor_property_changed (const PBD::PropertyChange&);
|
||||
|
@ -41,6 +41,9 @@ public:
|
||||
|
||||
/** Set the child's visual state */
|
||||
virtual void set_visual_state (VisualState, bool onoff) = 0;
|
||||
|
||||
/** @return True if the child can be selected in the list ( if you don't want it to copy/paste/drag then turn this off ) */
|
||||
virtual bool is_selectable () const = 0;
|
||||
};
|
||||
|
||||
/** A VBox whose contents can be dragged and dropped */
|
||||
@ -565,6 +568,8 @@ private:
|
||||
|
||||
void add_to_selection (T* child)
|
||||
{
|
||||
if ( !child->is_selectable() )
|
||||
return;
|
||||
_selection.push_back (child);
|
||||
setup_child_state (child);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user