From 899f010959095fdec48171992aa56c6be3d9db09 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Sat, 13 Jan 2018 14:21:54 +0100 Subject: [PATCH] src: Removed shared_ptr use for QtCodeSnippet in QtCodeFile --- src/lib_gui/qt/element/QtCodeFile.cpp | 64 ++++++++++++------------ src/lib_gui/qt/element/QtCodeFile.h | 4 +- src/lib_gui/qt/element/QtCodeSnippet.cpp | 4 +- src/lib_gui/qt/element/QtCodeSnippet.h | 3 +- 4 files changed, 38 insertions(+), 37 deletions(-) diff --git a/src/lib_gui/qt/element/QtCodeFile.cpp b/src/lib_gui/qt/element/QtCodeFile.cpp index dce46bb2..85a1352d 100644 --- a/src/lib_gui/qt/element/QtCodeFile.cpp +++ b/src/lib_gui/qt/element/QtCodeFile.cpp @@ -12,6 +12,7 @@ QtCodeFile::QtCodeFile(const FilePath& filePath, QtCodeNavigator* navigator) : QFrame() , m_navigator(navigator) + , m_fileSnippet(nullptr) , m_filePath(filePath) , m_isWholeFile(false) , m_contentRequested(false) @@ -71,16 +72,16 @@ const QtCodeFileTitleBar* QtCodeFile::getTitleBar() const QtCodeSnippet* QtCodeFile::addCodeSnippet(const CodeSnippetParams& params) { - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { if (snippet->getStartLineNumber() == params.startLineNumber && snippet->getEndLineNumber() == params.endLineNumber) { - return snippet.get(); + return snippet; } } - std::shared_ptr snippet(new QtCodeSnippet(params, m_navigator, this)); + QtCodeSnippet* snippet = new QtCodeSnippet(params, m_navigator, this); if (params.reduced) { @@ -88,7 +89,7 @@ QtCodeSnippet* QtCodeFile::addCodeSnippet(const CodeSnippetParams& params) m_isWholeFile = true; } - m_snippetLayout->addWidget(snippet.get()); + m_snippetLayout->addWidget(snippet); if (params.locationFile->isWhole() || m_isWholeFile) { @@ -106,7 +107,7 @@ QtCodeSnippet* QtCodeFile::addCodeSnippet(const CodeSnippetParams& params) updateRefCount(0); } - return m_fileSnippet.get(); + return m_fileSnippet; } m_snippets.push_back(snippet); @@ -114,12 +115,12 @@ QtCodeSnippet* QtCodeFile::addCodeSnippet(const CodeSnippetParams& params) setSnippets(); updateRefCount(params.refCount); - return snippet.get(); + return snippet; } QtCodeSnippet* QtCodeFile::insertCodeSnippet(const CodeSnippetParams& params) { - std::shared_ptr snippet(new QtCodeSnippet(params, m_navigator, this)); + QtCodeSnippet* snippet = new QtCodeSnippet(params, m_navigator, this); size_t i = 0; while (i < m_snippets.size()) @@ -127,7 +128,7 @@ QtCodeSnippet* QtCodeFile::insertCodeSnippet(const CodeSnippetParams& params) uint start = snippet->getStartLineNumber(); uint end = snippet->getEndLineNumber(); - std::shared_ptr s = m_snippets[i]; + QtCodeSnippet* s = m_snippets[i]; if (s->getEndLineNumber() + 1 < start) { @@ -141,37 +142,38 @@ QtCodeSnippet* QtCodeFile::insertCodeSnippet(const CodeSnippetParams& params) else if (s->getStartLineNumber() < start || s->getEndLineNumber() > end) { m_navigator->clearSnippetReferences(); - snippet = QtCodeSnippet::merged(snippet.get(), s.get(), m_navigator, this); + snippet = QtCodeSnippet::merged(snippet, s, m_navigator, this); } s->hide(); - m_snippetLayout->removeWidget(s.get()); + m_snippetLayout->removeWidget(s); + s->deleteLater(); m_snippets.erase(m_snippets.begin() + i); } - m_snippetLayout->insertWidget(i, snippet.get()); + m_snippetLayout->insertWidget(i, snippet); m_snippets.insert(m_snippets.begin() + i, snippet); setSnippets(); - return snippet.get(); + return snippet; } std::vector QtCodeFile::getVisibleSnippets() const { if (m_fileSnippet && m_fileSnippet->isVisible()) { - return { m_fileSnippet.get() }; + return { m_fileSnippet }; } std::vector snippets; - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { if (snippet->isVisible()) { - snippets.push_back(snippet.get()); + snippets.push_back(snippet); } } @@ -182,14 +184,14 @@ QtCodeSnippet* QtCodeFile::getSnippetForLocationId(Id locationId) const { if (m_fileSnippet && m_fileSnippet->isVisible() && m_fileSnippet->getLineNumberForLocationId(locationId)) { - return m_fileSnippet.get(); + return m_fileSnippet; } - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { if (snippet->getLineNumberForLocationId(locationId)) { - return snippet.get(); + return snippet; } } @@ -200,14 +202,14 @@ QtCodeSnippet* QtCodeFile::getSnippetForLine(unsigned int line) const { if (m_fileSnippet && m_fileSnippet->isVisible()) { - return m_fileSnippet.get(); + return m_fileSnippet; } - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { if (snippet->getStartLineNumber() <= line && line <= snippet->getEndLineNumber()) { - return snippet.get(); + return snippet; } } @@ -216,19 +218,19 @@ QtCodeSnippet* QtCodeFile::getSnippetForLine(unsigned int line) const QtCodeSnippet* QtCodeFile::getFileSnippet() const { - return m_fileSnippet.get(); + return m_fileSnippet; } std::pair QtCodeFile::getFirstSnippetWithActiveLocationId(Id tokenId) const { std::pair result(nullptr, 0); - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { Id locationId = snippet->getFirstActiveLocationId(tokenId); if (locationId != 0) { - result.first = snippet.get(); + result.first = snippet; result.second = locationId; break; } @@ -282,7 +284,7 @@ void QtCodeFile::updateContent() { updateSnippets(); - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { snippet->updateContent(); } @@ -308,7 +310,7 @@ void QtCodeFile::setIsComplete(bool isComplete) void QtCodeFile::setMinimized() { - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { snippet->hide(); } @@ -329,14 +331,14 @@ void QtCodeFile::setSnippets() { m_fileSnippet->show(); - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { snippet->hide(); } } else { - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { snippet->show(); } @@ -365,7 +367,7 @@ void QtCodeFile::updateSnippets() } int maxDigits = 1; - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { if (snippet != m_snippets.front() && snippet->styleSheet().size()) { @@ -375,7 +377,7 @@ void QtCodeFile::updateSnippets() maxDigits = qMax(maxDigits, snippet->lineNumberDigits()); } - for (const std::shared_ptr& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { snippet->updateLineNumberAreaWidthForDigits(maxDigits); } @@ -399,7 +401,7 @@ void QtCodeFile::findScreenMatches(const std::string& query, std::vector& snippet : m_snippets) + for (QtCodeSnippet* snippet : m_snippets) { if (snippet->isVisible()) { diff --git a/src/lib_gui/qt/element/QtCodeFile.h b/src/lib_gui/qt/element/QtCodeFile.h index 2a1e965b..ddc91970 100644 --- a/src/lib_gui/qt/element/QtCodeFile.h +++ b/src/lib_gui/qt/element/QtCodeFile.h @@ -76,8 +76,8 @@ private: QtCodeFileTitleBar* m_titleBar; QVBoxLayout* m_snippetLayout; - std::vector> m_snippets; - std::shared_ptr m_fileSnippet; + std::vector m_snippets; + QtCodeSnippet* m_fileSnippet; const FilePath m_filePath; bool m_isWholeFile; diff --git a/src/lib_gui/qt/element/QtCodeSnippet.cpp b/src/lib_gui/qt/element/QtCodeSnippet.cpp index d2c9271d..ce1ce0fd 100644 --- a/src/lib_gui/qt/element/QtCodeSnippet.cpp +++ b/src/lib_gui/qt/element/QtCodeSnippet.cpp @@ -10,7 +10,7 @@ #include "qt/element/QtCodeNavigator.h" #include "qt/element/QtCodeFile.h" -std::shared_ptr QtCodeSnippet::merged( +QtCodeSnippet* QtCodeSnippet::merged( QtCodeSnippet* a, QtCodeSnippet* b, QtCodeNavigator* navigator, QtCodeFile* file) { QtCodeSnippet* first = a->getStartLineNumber() < b->getStartLineNumber() ? a : b; @@ -55,7 +55,7 @@ std::shared_ptr QtCodeSnippet::merged( params.code = code; params.locationFile = locationFile; - return std::shared_ptr(new QtCodeSnippet(params, navigator, file)); + return new QtCodeSnippet(params, navigator, file); } QtCodeSnippet::QtCodeSnippet(const CodeSnippetParams& params, QtCodeNavigator* navigator, QtCodeFile* file) diff --git a/src/lib_gui/qt/element/QtCodeSnippet.h b/src/lib_gui/qt/element/QtCodeSnippet.h index 8af79312..8f7aa520 100644 --- a/src/lib_gui/qt/element/QtCodeSnippet.h +++ b/src/lib_gui/qt/element/QtCodeSnippet.h @@ -2,7 +2,6 @@ #define QT_CODE_SNIPPET_H #include -#include #include @@ -24,7 +23,7 @@ class QtCodeSnippet Q_OBJECT public: - static std::shared_ptr merged( + static QtCodeSnippet* merged( QtCodeSnippet* a, QtCodeSnippet* b, QtCodeNavigator* navigator, QtCodeFile* file); QtCodeSnippet(const CodeSnippetParams& params, QtCodeNavigator* navigator, QtCodeFile* file);