forked from qt-creator/qt-creator
QbsProjectManager: Make more use of base class infrastructure
No need to duplicate the timer. Now BuildSystem::isWaitingForParse() returns the correct result. Change-Id: Iab754b2c488c48302039988bd36e51f00e0f1196 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -142,6 +142,11 @@ void BuildSystem::requestDelayedParse()
|
||||
requestParseHelper(1000);
|
||||
}
|
||||
|
||||
void BuildSystem::cancelDelayedParseRequest()
|
||||
{
|
||||
d->m_delayedParsingTimer.stop();
|
||||
}
|
||||
|
||||
bool BuildSystem::isParsing() const
|
||||
{
|
||||
return d->m_isParsing;
|
||||
|
@@ -62,6 +62,7 @@ public:
|
||||
|
||||
void requestParse();
|
||||
void requestDelayedParse();
|
||||
void cancelDelayedParseRequest();
|
||||
|
||||
bool isParsing() const;
|
||||
bool hasParsingData() const;
|
||||
|
@@ -77,6 +77,7 @@
|
||||
#include <QJsonArray>
|
||||
#include <QMessageBox>
|
||||
#include <QSet>
|
||||
#include <QTimer>
|
||||
#include <QVariantMap>
|
||||
|
||||
#include <algorithm>
|
||||
@@ -207,7 +208,6 @@ QbsBuildSystem::QbsBuildSystem(QbsBuildConfiguration *bc)
|
||||
});
|
||||
connect(m_session, &QbsSession::fileListUpdated, this, &QbsBuildSystem::delayParsing);
|
||||
|
||||
m_parsingDelay.setInterval(1000); // delay parsing by 1s.
|
||||
delayParsing();
|
||||
|
||||
connect(bc->project(), &Project::activeTargetChanged,
|
||||
@@ -216,8 +216,6 @@ QbsBuildSystem::QbsBuildSystem(QbsBuildConfiguration *bc)
|
||||
connect(bc->target(), &Target::activeBuildConfigurationChanged,
|
||||
this, &QbsBuildSystem::delayParsing);
|
||||
|
||||
connect(&m_parsingDelay, &QTimer::timeout, this, &QbsBuildSystem::triggerParsing);
|
||||
|
||||
connect(bc->project(), &Project::projectFileIsDirty, this, &QbsBuildSystem::delayParsing);
|
||||
updateProjectNodes({});
|
||||
}
|
||||
@@ -591,7 +589,7 @@ void QbsBuildSystem::triggerParsing()
|
||||
void QbsBuildSystem::delayParsing()
|
||||
{
|
||||
if (m_buildConfiguration->isActive())
|
||||
m_parsingDelay.start();
|
||||
requestDelayedParse();
|
||||
}
|
||||
|
||||
void QbsBuildSystem::parseCurrentBuildConfiguration()
|
||||
@@ -629,7 +627,7 @@ void QbsBuildSystem::parseCurrentBuildConfiguration()
|
||||
|
||||
prepareForParsing();
|
||||
|
||||
m_parsingDelay.stop();
|
||||
cancelDelayedParseRequest();
|
||||
|
||||
QTC_ASSERT(!m_qbsProjectParser, return);
|
||||
m_qbsProjectParser = new QbsProjectParser(this, m_qbsUpdateFutureInterface);
|
||||
|
@@ -39,7 +39,6 @@
|
||||
#include <QFutureWatcher>
|
||||
#include <QHash>
|
||||
#include <QJsonObject>
|
||||
#include <QTimer>
|
||||
|
||||
#include <functional>
|
||||
|
||||
@@ -149,7 +148,6 @@ private:
|
||||
QSet<Core::IDocument *> m_qbsDocuments;
|
||||
QJsonObject m_projectData; // TODO: Perhaps store this in the root project node instead?
|
||||
|
||||
QTimer m_parsingDelay;
|
||||
QbsProjectParser *m_qbsProjectParser = nullptr;
|
||||
QFutureInterface<bool> *m_qbsUpdateFutureInterface = nullptr;
|
||||
using TreeCreationWatcher = QFutureWatcher<QbsProjectNode *>;
|
||||
|
Reference in New Issue
Block a user