aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp
diff options
context:
space:
mode:
authorTobias Hunger <[email protected]>2019-08-06 14:46:37 +0200
committerTobias Hunger <[email protected]>2019-08-09 12:45:29 +0000
commit09530d6dcc0fdbdf27d04c63149eb285e122d9dc (patch)
tree5f33e1bd1d04fb258251f74057f24ab96fe6fdd7 /src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp
parent8868989d5c72cd57e5068481198ffa0af4cb4bb0 (diff)
ProjectExplorer: Use RAII pattern for parsing start/stop signalling
Change-Id: I13de537140f265db3e3d0ab1cd924d6897cd90c8 Reviewed-by: Christian Kandeler <[email protected]>
Diffstat (limited to 'src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp')
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp
index d75bf7be404..6c913118985 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp
@@ -43,14 +43,18 @@ using namespace Utils;
namespace CompilationDatabaseProjectManager {
namespace Internal {
-CompilationDbParser::CompilationDbParser(const QString &projectName, const FilePath &projectPath,
- const FilePath &rootPath, MimeBinaryCache &mimeBinaryCache,
+CompilationDbParser::CompilationDbParser(const QString &projectName,
+ const FilePath &projectPath,
+ const FilePath &rootPath,
+ MimeBinaryCache &mimeBinaryCache,
+ ProjectExplorer::Project::ParseGuard &&guard,
QObject *parent)
- : QObject(parent),
- m_projectName(projectName),
- m_projectFilePath(projectPath),
- m_rootPath(rootPath),
- m_mimeBinaryCache(mimeBinaryCache)
+ : QObject(parent)
+ , m_projectName(projectName)
+ , m_projectFilePath(projectPath)
+ , m_rootPath(rootPath)
+ , m_mimeBinaryCache(mimeBinaryCache)
+ , m_guard(std::move(guard))
{
connect(&m_parserWatcher, &QFutureWatcher<void>::finished, this, [this] {
m_dbContents = m_parserWatcher.result();
@@ -112,6 +116,7 @@ void CompilationDbParser::stop()
m_treeScanner->disconnect();
m_treeScanner->future().cancel();
}
+ m_guard = {};
deleteLater();
}