From cc0d582b38119d195b3e23a348562c812f76fd9a Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Thu, 5 Jul 2018 20:30:47 -0700 Subject: [PATCH] Qt: More memory leak fixes --- src/platform/qt/library/LibraryController.cpp | 8 ++++---- src/platform/qt/library/LibraryController.h | 4 ++-- src/platform/qt/library/LibraryTree.cpp | 6 ++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/platform/qt/library/LibraryController.cpp b/src/platform/qt/library/LibraryController.cpp index 9bfad5d95..3f2a5fc96 100644 --- a/src/platform/qt/library/LibraryController.cpp +++ b/src/platform/qt/library/LibraryController.cpp @@ -45,10 +45,10 @@ LibraryController::LibraryController(QWidget* parent, const QString& path, Confi mLibraryAttachGameDB(m_library.get(), GBAApp::app()->gameDB()); - m_libraryTree = new LibraryTree(this); + m_libraryTree = std::make_unique(this); addWidget(m_libraryTree->widget()); - m_libraryGrid = new LibraryGrid(this); + m_libraryGrid = std::make_unique(this); addWidget(m_libraryGrid->widget()); setViewStyle(LibraryStyle::STYLE_LIST); @@ -67,9 +67,9 @@ void LibraryController::setViewStyle(LibraryStyle newStyle) { AbstractGameList* newCurrentList = nullptr; if (newStyle == LibraryStyle::STYLE_LIST || newStyle == LibraryStyle::STYLE_TREE) { - newCurrentList = m_libraryTree; + newCurrentList = m_libraryTree.get(); } else { - newCurrentList = m_libraryGrid; + newCurrentList = m_libraryGrid.get(); } newCurrentList->selectEntry(selectedEntry()); newCurrentList->setViewStyle(newStyle); diff --git a/src/platform/qt/library/LibraryController.h b/src/platform/qt/library/LibraryController.h index 789550919..029b96aaa 100644 --- a/src/platform/qt/library/LibraryController.h +++ b/src/platform/qt/library/LibraryController.h @@ -107,8 +107,8 @@ private: LibraryStyle m_currentStyle; AbstractGameList* m_currentList = nullptr; - LibraryGrid* m_libraryGrid = nullptr; - LibraryTree* m_libraryTree = nullptr; + std::unique_ptr m_libraryGrid; + std::unique_ptr m_libraryTree; }; } diff --git a/src/platform/qt/library/LibraryTree.cpp b/src/platform/qt/library/LibraryTree.cpp index 6dc763e4a..cfaa69187 100644 --- a/src/platform/qt/library/LibraryTree.cpp +++ b/src/platform/qt/library/LibraryTree.cpp @@ -62,6 +62,12 @@ LibraryTree::LibraryTree(LibraryController* parent) }); } +LibraryTree::~LibraryTree() { + for (QTreeWidgetItem* i : m_items.values()) { + delete i; + } +} + void LibraryTree::resizeAllCols() { for (int i = 0; i < m_widget->columnCount(); i++) { m_widget->resizeColumnToContents(i);