diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 10cde3bf622..416f691810c 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -148,7 +148,7 @@ void ServerModeReader::parse(bool force) return i.toArgument(m_parameters.expander); }))); - m_future = new QFutureInterface(); + m_future.reset(new QFutureInterface()); m_future->setProgressRange(0, MAX_PROGRESS); m_progressStepMinimum = 0; m_progressStepMaximum = 1000; @@ -164,8 +164,7 @@ void ServerModeReader::stop() if (m_future) { m_future->reportCanceled(); m_future->reportFinished(); - delete m_future; - m_future = nullptr; + m_future.reset(); } } @@ -176,7 +175,7 @@ bool ServerModeReader::isReady() const bool ServerModeReader::isParsing() const { - return false; + return static_cast(m_future); } bool ServerModeReader::hasData() const @@ -288,8 +287,7 @@ void ServerModeReader::handleReply(const QVariantMap &data, const QString &inRep if (m_future) { m_future->setProgressValue(MAX_PROGRESS); m_future->reportFinished(); - delete m_future; - m_future = nullptr; + m_future.reset(); } m_hasData = true; emit dataAvailable(); diff --git a/src/plugins/cmakeprojectmanager/servermodereader.h b/src/plugins/cmakeprojectmanager/servermodereader.h index 45d847d6b62..358893f81f2 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.h +++ b/src/plugins/cmakeprojectmanager/servermodereader.h @@ -122,7 +122,7 @@ private: bool m_hasData = false; std::unique_ptr m_cmakeServer; - QFutureInterface *m_future = nullptr; + std::unique_ptr> m_future; int m_progressStepMinimum; int m_progressStepMaximum;