diff --git a/include/AutomationPattern.h b/include/AutomationPattern.h index 5257cecab..b6d0e6f2e 100644 --- a/include/AutomationPattern.h +++ b/include/AutomationPattern.h @@ -56,7 +56,7 @@ public: AutomationPattern( const AutomationPattern & _pat_to_copy ); virtual ~AutomationPattern(); - void addObject( AutomatableModel * _obj, bool _search_dup = true ); + bool addObject( AutomatableModel * _obj, bool _search_dup = true ); const AutomatableModel * firstObject() const; diff --git a/src/core/AutomationPattern.cpp b/src/core/AutomationPattern.cpp index f14e6cb70..2e7570957 100644 --- a/src/core/AutomationPattern.cpp +++ b/src/core/AutomationPattern.cpp @@ -31,7 +31,6 @@ #include "ProjectJournal.h" #include "BBTrackContainer.h" #include "Song.h" -#include "TextFloat.h" #include "embed.h" int AutomationPattern::s_quantization = 1; @@ -107,7 +106,7 @@ AutomationPattern::~AutomationPattern() -void AutomationPattern::addObject( AutomatableModel * _obj, bool _search_dup ) +bool AutomationPattern::addObject( AutomatableModel * _obj, bool _search_dup ) { if( _search_dup ) { @@ -115,10 +114,8 @@ void AutomationPattern::addObject( AutomatableModel * _obj, bool _search_dup ) it != m_objects.end(); ++it ) { if( *it == _obj ) - { - TextFloat::displayMessage( _obj->displayName(), tr( "Model is already connected " - "to this pattern." ), embed::getIconPixmap( "automation" ), 2000 ); - return; + { + return false; } } } @@ -138,6 +135,7 @@ void AutomationPattern::addObject( AutomatableModel * _obj, bool _search_dup ) emit dataChanged(); + return true; } diff --git a/src/gui/AutomationPatternView.cpp b/src/gui/AutomationPatternView.cpp index 166552a39..09574a2de 100644 --- a/src/gui/AutomationPatternView.cpp +++ b/src/gui/AutomationPatternView.cpp @@ -35,6 +35,7 @@ #include "ProjectJournal.h" #include "RenameDialog.h" #include "StringPairDrag.h" +#include "TextFloat.h" #include "ToolTip.h" @@ -420,7 +421,15 @@ void AutomationPatternView::dropEvent( QDropEvent * _de ) journallingObject( val.toInt() ) ); if( mod != NULL ) { - m_pat->addObject( mod ); + bool added = m_pat->addObject( mod ); + if ( !added ) + { + TextFloat::displayMessage( mod->displayName(), + tr( "Model is already connected " + "to this pattern." ), + embed::getIconPixmap( "automation" ), + 2000 ); + } } update(); diff --git a/src/gui/editors/AutomationEditor.cpp b/src/gui/editors/AutomationEditor.cpp index 16431faa7..4b2eb6175 100644 --- a/src/gui/editors/AutomationEditor.cpp +++ b/src/gui/editors/AutomationEditor.cpp @@ -2299,7 +2299,15 @@ void AutomationEditorWindow::dropEvent( QDropEvent *_de ) journallingObject( val.toInt() ) ); if( mod != NULL ) { - m_editor->m_pattern->addObject( mod ); + bool added = m_editor->m_pattern->addObject( mod ); + if ( !added ) + { + TextFloat::displayMessage( mod->displayName(), + tr( "Model is already connected " + "to this pattern." ), + embed::getIconPixmap( "automation" ), + 2000 ); + } setCurrentPattern( m_editor->m_pattern ); } }