Proposed fix 1416 Drag-and-drop of automatables to Automation Editor
This commit is contained in:
@@ -70,6 +70,7 @@ public:
|
||||
|
||||
virtual void saveSettings(QDomDocument & doc, QDomElement & parent);
|
||||
virtual void loadSettings(const QDomElement & parent);
|
||||
|
||||
QString nodeName() const
|
||||
{
|
||||
return "automationeditor";
|
||||
@@ -262,6 +263,9 @@ public:
|
||||
void setCurrentPattern(AutomationPattern* pattern);
|
||||
const AutomationPattern* currentPattern();
|
||||
|
||||
virtual void dropEvent( QDropEvent * _de );
|
||||
virtual void dragEnterEvent( QDragEnterEvent * _dee );
|
||||
|
||||
void open(AutomationPattern* pattern);
|
||||
|
||||
AutomationEditor* m_editor;
|
||||
|
||||
@@ -52,6 +52,7 @@ public:
|
||||
QDomElement & _parent );
|
||||
virtual void loadTrackSpecificSettings( const QDomElement & _this );
|
||||
|
||||
|
||||
private:
|
||||
friend class AutomationTrackView;
|
||||
|
||||
|
||||
@@ -64,6 +64,8 @@
|
||||
#include "PianoRoll.h"
|
||||
#include "debug.h"
|
||||
#include "MeterModel.h"
|
||||
#include "StringPairDrag.h"
|
||||
#include "ProjectJournal.h"
|
||||
|
||||
|
||||
QPixmap * AutomationEditor::s_toolDraw = NULL;
|
||||
@@ -239,6 +241,7 @@ void AutomationEditor::loadSettings( const QDomElement & dom_parent)
|
||||
|
||||
|
||||
|
||||
|
||||
// qproperty access methods
|
||||
|
||||
QColor AutomationEditor::gridColor() const
|
||||
@@ -2220,6 +2223,7 @@ AutomationEditorWindow::AutomationEditorWindow() :
|
||||
setFocusPolicy( Qt::StrongFocus );
|
||||
setFocus();
|
||||
setWindowIcon( embed::getIconPixmap( "automation" ) );
|
||||
setAcceptDrops( true );
|
||||
}
|
||||
|
||||
|
||||
@@ -2282,6 +2286,35 @@ const AutomationPattern* AutomationEditorWindow::currentPattern()
|
||||
return m_editor->currentPattern();
|
||||
}
|
||||
|
||||
void AutomationEditorWindow::dropEvent(QDropEvent *_de)
|
||||
{
|
||||
QString type = StringPairDrag::decodeKey( _de );
|
||||
QString val = StringPairDrag::decodeValue( _de );
|
||||
if( type == "automatable_model" )
|
||||
{
|
||||
AutomatableModel * mod = dynamic_cast<AutomatableModel *>(
|
||||
Engine::projectJournal()->
|
||||
journallingObject( val.toInt() ) );
|
||||
if( mod != NULL )
|
||||
{
|
||||
if( m_editor->m_pattern->firstObject() )
|
||||
{
|
||||
m_editor->m_pattern->objectDestroyed( m_editor->m_pattern->firstObject()->id() );
|
||||
}
|
||||
m_editor->m_pattern->addObject( mod );
|
||||
setCurrentPattern( m_editor->m_pattern );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
void AutomationEditorWindow::dragEnterEvent(QDragEnterEvent *_dee)
|
||||
{
|
||||
StringPairDrag::processDragEnterEvent( _dee, "automatable_model" );
|
||||
}
|
||||
|
||||
void AutomationEditorWindow::open(AutomationPattern* pattern)
|
||||
{
|
||||
setCurrentPattern(pattern);
|
||||
|
||||
@@ -127,6 +127,7 @@ void AutomationTrack::loadTrackSpecificSettings( const QDomElement & _this )
|
||||
|
||||
|
||||
|
||||
|
||||
AutomationTrackView::AutomationTrackView( AutomationTrack * _at, TrackContainerView* tcv ) :
|
||||
TrackView( _at, tcv )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user