From e1d9d899fdc06c24c3470600d361a137099df21a Mon Sep 17 00:00:00 2001 From: Hyunjin Song Date: Sat, 22 Dec 2018 11:37:34 +0900 Subject: [PATCH] Fix lost control links in copied automation patterns (#4723) This hack should be removed once the automation system gets fixed. --- include/ProjectJournal.h | 1 + src/core/AutomationPattern.cpp | 10 ++++++++++ src/core/ProjectJournal.cpp | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/include/ProjectJournal.h b/include/ProjectJournal.h index a89c9725a2d..e0e738b707c 100644 --- a/include/ProjectJournal.h +++ b/include/ProjectJournal.h @@ -77,6 +77,7 @@ class ProjectJournal } static jo_id_t idToSave( jo_id_t id ); + static jo_id_t idFromSave( jo_id_t id ); void clearJournal(); void stopAllJournalling(); diff --git a/src/core/AutomationPattern.cpp b/src/core/AutomationPattern.cpp index 25da6defbdf..2ee41b5f269 100644 --- a/src/core/AutomationPattern.cpp +++ b/src/core/AutomationPattern.cpp @@ -787,6 +787,16 @@ void AutomationPattern::resolveAllIDs() { a->addObject( dynamic_cast( o ), false ); } + else + { + // FIXME: Remove this block once the automation system gets fixed + // This is a temporary fix for https://github.com/LMMS/lmms/issues/3781 + o = Engine::projectJournal()->journallingObject(ProjectJournal::idFromSave(*k)); + if( o && dynamic_cast( o ) ) + { + a->addObject( dynamic_cast( o ), false ); + } + } } a->m_idsToResolve.clear(); a->dataChanged(); diff --git a/src/core/ProjectJournal.cpp b/src/core/ProjectJournal.cpp index 57646aeaa79..ce811dbc595 100644 --- a/src/core/ProjectJournal.cpp +++ b/src/core/ProjectJournal.cpp @@ -164,6 +164,11 @@ jo_id_t ProjectJournal::idToSave( jo_id_t id ) return id & ~EO_ID_MSB; } +jo_id_t ProjectJournal::idFromSave( jo_id_t id ) +{ + return id | EO_ID_MSB; +} +