From c4fbcdfcbc5b251add7f292cca37615c875703c0 Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Sat, 2 Mar 2013 20:41:09 +0100 Subject: [PATCH] Properly remove ScriptCollection ViewPages to prevent crash. --- src/sourcetree/SourcesModel.cpp | 3 +-- src/sourcetree/items/ScriptCollectionItem.cpp | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sourcetree/SourcesModel.cpp b/src/sourcetree/SourcesModel.cpp index ae3a8c18a..6dfb0696d 100644 --- a/src/sourcetree/SourcesModel.cpp +++ b/src/sourcetree/SourcesModel.cpp @@ -537,7 +537,6 @@ SourcesModel::onScriptCollectionRemoved( const collection_ptr& collection ) m_cloudGroup->removeChild( item ); endRemoveRows(); - dynamic_cast< QObject* >( m_scriptCollectionPages.value( collection ) )->deleteLater(); m_scriptCollectionPages.remove( collection ); m_scriptCollections.remove( collection ); item->deleteLater(); @@ -547,7 +546,7 @@ SourcesModel::onScriptCollectionRemoved( const collection_ptr& collection ) ViewPage* SourcesModel::scriptCollectionClicked( const Tomahawk::collection_ptr& collection ) { - m_scriptCollectionPages[ collection ] = ViewManager::instance()->show( collection ); + m_scriptCollectionPages.insert( collection, ViewManager::instance()->show( collection ) ); return m_scriptCollectionPages[ collection ]; } diff --git a/src/sourcetree/items/ScriptCollectionItem.cpp b/src/sourcetree/items/ScriptCollectionItem.cpp index 52162bdc6..c686340f9 100644 --- a/src/sourcetree/items/ScriptCollectionItem.cpp +++ b/src/sourcetree/items/ScriptCollectionItem.cpp @@ -33,6 +33,8 @@ ScriptCollectionItem::ScriptCollectionItem( SourcesModel* model, ScriptCollectionItem::~ScriptCollectionItem() { model()->removeSourceItemLink( this ); + ViewManager::instance()->destroyPage( m_page ); + dynamic_cast< QObject* >( m_page )->deleteLater(); }