From 9eb92d0f3b52316ddd2e34e84c94ca44b58ac3fe Mon Sep 17 00:00:00 2001 From: Uwe Klotz Date: Thu, 8 Dec 2016 23:19:16 +0100 Subject: Simplify and safeguard memory management of TreeItem(Model) --- src/library/banshee/bansheefeature.cpp | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'src/library/banshee') diff --git a/src/library/banshee/bansheefeature.cpp b/src/library/banshee/bansheefeature.cpp index 884c79947c..3973ad7d6d 100644 --- a/src/library/banshee/bansheefeature.cpp +++ b/src/library/banshee/bansheefeature.cpp @@ -91,25 +91,19 @@ void BansheeFeature::activate() { m_isActivated = true; - TreeItem* playlist_root = new TreeItem(this); - - QList list = m_connection.getPlaylists(); - - struct BansheeDbConnection::Playlist playlist; - foreach (playlist, list) { + auto pRootItem = std::make_unique(this); + QList playlists = m_connection.getPlaylists(); + for (const BansheeDbConnection::Playlist& playlist: playlists) { qDebug() << playlist.name; // append the playlist to the child model - playlist_root->appendChild( - new TreeItem(this, playlist.name, playlist.playlistId)); + pRootItem->appendChild(playlist.name, playlist.playlistId); } + m_childModel.setRootItem(std::move(pRootItem)); - if (playlist_root) { - m_childModel.setRootItem(playlist_root); - if (m_isActivated) { - activate(); - } - qDebug() << "Banshee library loaded: success"; + if (m_isActivated) { + activate(); } + qDebug() << "Banshee library loaded: success"; //calls a slot in the sidebarmodel such that 'isLoading' is removed from the feature title. m_title = tr("Banshee"); -- cgit v1.2.3