src: Removed shared_ptr use for QtCodeSnippet in QtCodeFile

This commit is contained in:
Eberhard Graether
2018-01-13 14:21:54 +01:00
parent 2ac430bbe5
commit 899f010959
4 changed files with 38 additions and 37 deletions
+33 -31
View File
@@ -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<QtCodeSnippet>& 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<QtCodeSnippet> 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<QtCodeSnippet> 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<QtCodeSnippet> 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<QtCodeSnippet*> QtCodeFile::getVisibleSnippets() const
{
if (m_fileSnippet && m_fileSnippet->isVisible())
{
return { m_fileSnippet.get() };
return { m_fileSnippet };
}
std::vector<QtCodeSnippet*> snippets;
for (const std::shared_ptr<QtCodeSnippet>& 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<QtCodeSnippet>& 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<QtCodeSnippet>& 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<QtCodeSnippet*, Id> QtCodeFile::getFirstSnippetWithActiveLocationId(Id tokenId) const
{
std::pair<QtCodeSnippet*, Id> result(nullptr, 0);
for (const std::shared_ptr<QtCodeSnippet>& 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<QtCodeSnippet>& 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<QtCodeSnippet>& 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<QtCodeSnippet>& snippet : m_snippets)
for (QtCodeSnippet* snippet : m_snippets)
{
snippet->hide();
}
}
else
{
for (const std::shared_ptr<QtCodeSnippet>& 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<QtCodeSnippet>& 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<QtCodeSnippet>& snippet : m_snippets)
for (QtCodeSnippet* snippet : m_snippets)
{
snippet->updateLineNumberAreaWidthForDigits(maxDigits);
}
@@ -399,7 +401,7 @@ void QtCodeFile::findScreenMatches(const std::string& query, std::vector<std::pa
return;
}
for (const std::shared_ptr<QtCodeSnippet>& snippet : m_snippets)
for (QtCodeSnippet* snippet : m_snippets)
{
if (snippet->isVisible())
{
+2 -2
View File
@@ -76,8 +76,8 @@ private:
QtCodeFileTitleBar* m_titleBar;
QVBoxLayout* m_snippetLayout;
std::vector<std::shared_ptr<QtCodeSnippet>> m_snippets;
std::shared_ptr<QtCodeSnippet> m_fileSnippet;
std::vector<QtCodeSnippet*> m_snippets;
QtCodeSnippet* m_fileSnippet;
const FilePath m_filePath;
bool m_isWholeFile;
+2 -2
View File
@@ -10,7 +10,7 @@
#include "qt/element/QtCodeNavigator.h"
#include "qt/element/QtCodeFile.h"
std::shared_ptr<QtCodeSnippet> 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> QtCodeSnippet::merged(
params.code = code;
params.locationFile = locationFile;
return std::shared_ptr<QtCodeSnippet>(new QtCodeSnippet(params, navigator, file));
return new QtCodeSnippet(params, navigator, file);
}
QtCodeSnippet::QtCodeSnippet(const CodeSnippetParams& params, QtCodeNavigator* navigator, QtCodeFile* file)
+1 -2
View File
@@ -2,7 +2,6 @@
#define QT_CODE_SNIPPET_H
#include <vector>
#include <memory>
#include <QFrame>
@@ -24,7 +23,7 @@ class QtCodeSnippet
Q_OBJECT
public:
static std::shared_ptr<QtCodeSnippet> merged(
static QtCodeSnippet* merged(
QtCodeSnippet* a, QtCodeSnippet* b, QtCodeNavigator* navigator, QtCodeFile* file);
QtCodeSnippet(const CodeSnippetParams& params, QtCodeNavigator* navigator, QtCodeFile* file);