From ee6eb02c0e354ba34bbeb25aca7f8b0a6008d0e7 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sun, 7 Sep 2008 12:08:25 +0000 Subject: [PATCH] fixed hook-mechanism git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1568 0778d3d1-df1d-0410-868b-ea421aaaa00d --- src/core/serializing_object.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/core/serializing_object.cpp b/src/core/serializing_object.cpp index dc622dfb1..ec7ad13e4 100644 --- a/src/core/serializing_object.cpp +++ b/src/core/serializing_object.cpp @@ -54,6 +54,10 @@ QDomElement serializingObject::saveState( QDomDocument & _doc, QDomElement _this = _doc.createElement( nodeName() ); _parent.appendChild( _this ); saveSettings( _doc, _this ); + if( getHook() ) + { + getHook()->saveSettings( _doc, _this ); + } return( _this ); } @@ -62,8 +66,11 @@ QDomElement serializingObject::saveState( QDomDocument & _doc, void serializingObject::restoreState( const QDomElement & _this ) { - // load actual settings loadSettings( _this ); + if( getHook() ) + { + getHook()->loadSettings( _this ); + } } @@ -71,8 +78,15 @@ void serializingObject::restoreState( const QDomElement & _this ) void serializingObject::setHook( serializingObjectHook * _hook ) { + if( m_hook ) + { + m_hook->m_hookedIn = NULL; + } m_hook = _hook; - m_hook->m_hookedIn = this; + if( m_hook ) + { + m_hook->m_hookedIn = this; + } }