From 3b0fb2357bee91d6f3494f65078994d234b9a330 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Tue, 1 Jul 2008 01:26:55 +0000 Subject: [PATCH] fixed broken load/save of song-global automation git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1257 0778d3d1-df1d-0410-868b-ea421aaaa00d --- src/core/automation_pattern.cpp | 7 +++++-- src/core/mmp.cpp | 4 ++-- src/core/song.cpp | 6 ++++++ src/core/track.cpp | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/core/automation_pattern.cpp b/src/core/automation_pattern.cpp index ab7e70197..58908ceab 100644 --- a/src/core/automation_pattern.cpp +++ b/src/core/automation_pattern.cpp @@ -340,12 +340,14 @@ trackContentObjectView * automationPattern::createView( trackView * _tv ) bool automationPattern::isAutomated( const automatableModel * _m ) { - const trackContainer::trackList l = engine::getSong()->tracks() + + trackContainer::trackList l = engine::getSong()->tracks() + engine::getBBTrackContainer()->tracks(); + l += engine::getSong()->globalAutomationTrack(); for( trackContainer::trackList::const_iterator it = l.begin(); it != l.end(); ++it ) { - if( ( *it )->type() == track::AutomationTrack ) + if( ( *it )->type() == track::AutomationTrack || + ( *it )->type() == track::HiddenAutomationTrack ) { const track::tcoVector & v = ( *it )->getTCOs(); for( track::tcoVector::const_iterator j = v.begin(); @@ -409,6 +411,7 @@ void automationPattern::resolveAllIDs( void ) { trackContainer::trackList l = engine::getSong()->tracks() + engine::getBBTrackContainer()->tracks(); + l += engine::getSong()->globalAutomationTrack(); for( trackContainer::trackList::iterator it = l.begin(); it != l.end(); ++it ) { diff --git a/src/core/mmp.cpp b/src/core/mmp.cpp index 0217b59a6..90a1f240d 100644 --- a/src/core/mmp.cpp +++ b/src/core/mmp.cpp @@ -168,8 +168,8 @@ multimediaProject::multimediaProject( const QString & _in_file_name, node = node.nextSibling(); } - if( _upgrade && root.hasAttribute( "creatorversion" ) - && root.attribute( "creatorversion" ) != LMMS_VERSION ) + if( _upgrade && root.hasAttribute( "creatorversion" ) && + root.attribute( "creatorversion" ) != LMMS_VERSION ) { upgrade(); } diff --git a/src/core/song.cpp b/src/core/song.cpp index b58796c15..8b6c3baab 100644 --- a/src/core/song.cpp +++ b/src/core/song.cpp @@ -864,6 +864,11 @@ void song::loadProject( const QString & _file_name ) m_playPos[Mode_PlaySong].m_timeLine->toggleLoopPoints( 0 ); } + if( !mmp.content().firstChildElement( "track" ).isNull() ) + { + m_globalAutomationTrack->restoreState( mmp.content(). + firstChildElement( "track" ) ); + } QDomNode node = mmp.content().firstChild(); while( !node.isNull() ) { @@ -959,6 +964,7 @@ bool song::saveProject( void ) saveState( mmp, mmp.content() ); + m_globalAutomationTrack->saveState( mmp, mmp.content() ); engine::getFxMixer()->saveState( mmp, mmp.content() ); engine::getPianoRoll()->saveState( mmp, mmp.content() ); engine::getAutomationEditor()->saveState( mmp, mmp.content() ); diff --git a/src/core/track.cpp b/src/core/track.cpp index dbaa72aa8..5152d17de 100644 --- a/src/core/track.cpp +++ b/src/core/track.cpp @@ -1704,7 +1704,7 @@ void track::loadSettings( const QDomElement & _this ) while( !m_trackContentObjects.empty() ) { delete m_trackContentObjects.front(); - m_trackContentObjects.erase( m_trackContentObjects.begin() ); +// m_trackContentObjects.erase( m_trackContentObjects.begin() ); } QDomNode node = _this.firstChild();