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);
|
requestParseHelper(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BuildSystem::cancelDelayedParseRequest()
|
||||||
|
{
|
||||||
|
d->m_delayedParsingTimer.stop();
|
||||||
|
}
|
||||||
|
|
||||||
bool BuildSystem::isParsing() const
|
bool BuildSystem::isParsing() const
|
||||||
{
|
{
|
||||||
return d->m_isParsing;
|
return d->m_isParsing;
|
||||||
|
@@ -62,6 +62,7 @@ public:
|
|||||||
|
|
||||||
void requestParse();
|
void requestParse();
|
||||||
void requestDelayedParse();
|
void requestDelayedParse();
|
||||||
|
void cancelDelayedParseRequest();
|
||||||
|
|
||||||
bool isParsing() const;
|
bool isParsing() const;
|
||||||
bool hasParsingData() const;
|
bool hasParsingData() const;
|
||||||
|
@@ -77,6 +77,7 @@
|
|||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QSet>
|
#include <QSet>
|
||||||
|
#include <QTimer>
|
||||||
#include <QVariantMap>
|
#include <QVariantMap>
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
@@ -207,7 +208,6 @@ QbsBuildSystem::QbsBuildSystem(QbsBuildConfiguration *bc)
|
|||||||
});
|
});
|
||||||
connect(m_session, &QbsSession::fileListUpdated, this, &QbsBuildSystem::delayParsing);
|
connect(m_session, &QbsSession::fileListUpdated, this, &QbsBuildSystem::delayParsing);
|
||||||
|
|
||||||
m_parsingDelay.setInterval(1000); // delay parsing by 1s.
|
|
||||||
delayParsing();
|
delayParsing();
|
||||||
|
|
||||||
connect(bc->project(), &Project::activeTargetChanged,
|
connect(bc->project(), &Project::activeTargetChanged,
|
||||||
@@ -216,8 +216,6 @@ QbsBuildSystem::QbsBuildSystem(QbsBuildConfiguration *bc)
|
|||||||
connect(bc->target(), &Target::activeBuildConfigurationChanged,
|
connect(bc->target(), &Target::activeBuildConfigurationChanged,
|
||||||
this, &QbsBuildSystem::delayParsing);
|
this, &QbsBuildSystem::delayParsing);
|
||||||
|
|
||||||
connect(&m_parsingDelay, &QTimer::timeout, this, &QbsBuildSystem::triggerParsing);
|
|
||||||
|
|
||||||
connect(bc->project(), &Project::projectFileIsDirty, this, &QbsBuildSystem::delayParsing);
|
connect(bc->project(), &Project::projectFileIsDirty, this, &QbsBuildSystem::delayParsing);
|
||||||
updateProjectNodes({});
|
updateProjectNodes({});
|
||||||
}
|
}
|
||||||
@@ -591,7 +589,7 @@ void QbsBuildSystem::triggerParsing()
|
|||||||
void QbsBuildSystem::delayParsing()
|
void QbsBuildSystem::delayParsing()
|
||||||
{
|
{
|
||||||
if (m_buildConfiguration->isActive())
|
if (m_buildConfiguration->isActive())
|
||||||
m_parsingDelay.start();
|
requestDelayedParse();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QbsBuildSystem::parseCurrentBuildConfiguration()
|
void QbsBuildSystem::parseCurrentBuildConfiguration()
|
||||||
@@ -629,7 +627,7 @@ void QbsBuildSystem::parseCurrentBuildConfiguration()
|
|||||||
|
|
||||||
prepareForParsing();
|
prepareForParsing();
|
||||||
|
|
||||||
m_parsingDelay.stop();
|
cancelDelayedParseRequest();
|
||||||
|
|
||||||
QTC_ASSERT(!m_qbsProjectParser, return);
|
QTC_ASSERT(!m_qbsProjectParser, return);
|
||||||
m_qbsProjectParser = new QbsProjectParser(this, m_qbsUpdateFutureInterface);
|
m_qbsProjectParser = new QbsProjectParser(this, m_qbsUpdateFutureInterface);
|
||||||
|
@@ -39,7 +39,6 @@
|
|||||||
#include <QFutureWatcher>
|
#include <QFutureWatcher>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QTimer>
|
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
@@ -149,7 +148,6 @@ private:
|
|||||||
QSet<Core::IDocument *> m_qbsDocuments;
|
QSet<Core::IDocument *> m_qbsDocuments;
|
||||||
QJsonObject m_projectData; // TODO: Perhaps store this in the root project node instead?
|
QJsonObject m_projectData; // TODO: Perhaps store this in the root project node instead?
|
||||||
|
|
||||||
QTimer m_parsingDelay;
|
|
||||||
QbsProjectParser *m_qbsProjectParser = nullptr;
|
QbsProjectParser *m_qbsProjectParser = nullptr;
|
||||||
QFutureInterface<bool> *m_qbsUpdateFutureInterface = nullptr;
|
QFutureInterface<bool> *m_qbsUpdateFutureInterface = nullptr;
|
||||||
using TreeCreationWatcher = QFutureWatcher<QbsProjectNode *>;
|
using TreeCreationWatcher = QFutureWatcher<QbsProjectNode *>;
|
||||||
|
Reference in New Issue
Block a user