forked from qt-creator/qt-creator
QmakeProjectManager: Get rid of custom parse delay
Use the same update interval as the other build systems and remove needlessly stateful logic that made it difficult to understand what's going on. Fixes: QTCREATORBUG-31636 Change-Id: I39ef5a9d6834f5e7f7b457e2e2466fb912ee92e2 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -141,26 +141,11 @@ void BuildSystem::requestDelayedParse()
|
|||||||
requestParseHelper(1000);
|
requestParseHelper(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildSystem::requestParseWithCustomDelay(int delayInMs)
|
|
||||||
{
|
|
||||||
requestParseHelper(delayInMs);
|
|
||||||
}
|
|
||||||
|
|
||||||
void BuildSystem::cancelDelayedParseRequest()
|
void BuildSystem::cancelDelayedParseRequest()
|
||||||
{
|
{
|
||||||
d->m_delayedParsingTimer.stop();
|
d->m_delayedParsingTimer.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildSystem::setParseDelay(int delayInMs)
|
|
||||||
{
|
|
||||||
d->m_delayedParsingTimer.setInterval(delayInMs);
|
|
||||||
}
|
|
||||||
|
|
||||||
int BuildSystem::parseDelay() const
|
|
||||||
{
|
|
||||||
return d->m_delayedParsingTimer.interval();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool BuildSystem::isParsing() const
|
bool BuildSystem::isParsing() const
|
||||||
{
|
{
|
||||||
return d->m_isParsing;
|
return d->m_isParsing;
|
||||||
|
@@ -56,10 +56,7 @@ public:
|
|||||||
|
|
||||||
void requestParse();
|
void requestParse();
|
||||||
void requestDelayedParse();
|
void requestDelayedParse();
|
||||||
void requestParseWithCustomDelay(int delayInMs = 1000);
|
|
||||||
void cancelDelayedParseRequest();
|
void cancelDelayedParseRequest();
|
||||||
void setParseDelay(int delayInMs);
|
|
||||||
int parseDelay() const;
|
|
||||||
|
|
||||||
bool isParsing() const;
|
bool isParsing() const;
|
||||||
bool hasParsingData() const;
|
bool hasParsingData() const;
|
||||||
|
@@ -68,8 +68,6 @@ using namespace Utils;
|
|||||||
namespace QmakeProjectManager {
|
namespace QmakeProjectManager {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
const int UPDATE_INTERVAL = 3000;
|
|
||||||
|
|
||||||
static Q_LOGGING_CATEGORY(qmakeBuildSystemLog, "qtc.qmake.buildsystem", QtWarningMsg);
|
static Q_LOGGING_CATEGORY(qmakeBuildSystemLog, "qtc.qmake.buildsystem", QtWarningMsg);
|
||||||
|
|
||||||
#define TRACE(msg) \
|
#define TRACE(msg) \
|
||||||
@@ -204,8 +202,6 @@ QmakeBuildSystem::QmakeBuildSystem(QmakeBuildConfiguration *bc)
|
|||||||
, m_qmakeVfs(new QMakeVfs)
|
, m_qmakeVfs(new QMakeVfs)
|
||||||
, m_cppCodeModelUpdater(ProjectUpdaterFactory::createCppProjectUpdater())
|
, m_cppCodeModelUpdater(ProjectUpdaterFactory::createCppProjectUpdater())
|
||||||
{
|
{
|
||||||
setParseDelay(0);
|
|
||||||
|
|
||||||
m_rootProFile = std::make_unique<QmakeProFile>(this, projectFilePath());
|
m_rootProFile = std::make_unique<QmakeProFile>(this, projectFilePath());
|
||||||
|
|
||||||
connect(BuildManager::instance(), &BuildManager::buildQueueFinished,
|
connect(BuildManager::instance(), &BuildManager::buildQueueFinished,
|
||||||
@@ -588,10 +584,11 @@ void QmakeBuildSystem::startAsyncTimer(QmakeProFile::AsyncUpdateDelay delay)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const int interval = qMin(parseDelay(),
|
TRACE("delay: " << delay);
|
||||||
delay == QmakeProFile::ParseLater ? UPDATE_INTERVAL : 0);
|
switch (delay) {
|
||||||
TRACE("interval: " << interval);
|
case QmakeProFile::ParseNow: requestParse(); break;
|
||||||
requestParseWithCustomDelay(interval);
|
case QmakeProFile::ParseLater: requestDelayedParse(); break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmakeBuildSystem::incrementPendingEvaluateFutures()
|
void QmakeBuildSystem::incrementPendingEvaluateFutures()
|
||||||
@@ -666,7 +663,6 @@ bool QmakeBuildSystem::wasEvaluateCanceled()
|
|||||||
void QmakeBuildSystem::asyncUpdate()
|
void QmakeBuildSystem::asyncUpdate()
|
||||||
{
|
{
|
||||||
TaskHub::clearTasks(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM);
|
TaskHub::clearTasks(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM);
|
||||||
setParseDelay(UPDATE_INTERVAL);
|
|
||||||
TRACE("");
|
TRACE("");
|
||||||
|
|
||||||
if (m_invalidateQmakeVfsContents) {
|
if (m_invalidateQmakeVfsContents) {
|
||||||
@@ -945,7 +941,7 @@ void QmakeBuildSystem::activeTargetWasChanged(Target *t)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
m_invalidateQmakeVfsContents = true;
|
m_invalidateQmakeVfsContents = true;
|
||||||
scheduleUpdateAll(QmakeProFile::ParseLater);
|
scheduleUpdateAllNowOrLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void notifyChangedHelper(const FilePath &fileName, QmakeProFile *file)
|
static void notifyChangedHelper(const FilePath &fileName, QmakeProFile *file)
|
||||||
|
Reference in New Issue
Block a user