forked from qt-creator/qt-creator
QmakeProjectManager: Use delay timer from base class
Change-Id: I38b55efc34b34b58430d1d665eb6672c3de89b4f Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -142,11 +142,26 @@ 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;
|
||||||
|
@@ -62,7 +62,10 @@ 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;
|
||||||
|
@@ -73,6 +73,7 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFileSystemWatcher>
|
#include <QFileSystemWatcher>
|
||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
using namespace QmakeProjectManager::Internal;
|
using namespace QmakeProjectManager::Internal;
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
@@ -187,9 +188,7 @@ QmakeBuildSystem::QmakeBuildSystem(QmakeBuildConfiguration *bc)
|
|||||||
const QTextCodec *codec = Core::EditorManager::defaultTextCodec();
|
const QTextCodec *codec = Core::EditorManager::defaultTextCodec();
|
||||||
m_qmakeVfs->setTextCodec(codec);
|
m_qmakeVfs->setTextCodec(codec);
|
||||||
|
|
||||||
m_asyncUpdateTimer.setSingleShot(true);
|
setParseDelay(0);
|
||||||
m_asyncUpdateTimer.setInterval(0);
|
|
||||||
connect(&m_asyncUpdateTimer, &QTimer::timeout, this, &QmakeBuildSystem::asyncUpdate);
|
|
||||||
|
|
||||||
m_rootProFile = std::make_unique<QmakeProFile>(this, projectFilePath());
|
m_rootProFile = std::make_unique<QmakeProFile>(this, projectFilePath());
|
||||||
|
|
||||||
@@ -497,13 +496,10 @@ void QmakeBuildSystem::startAsyncTimer(QmakeProFile::AsyncUpdateDelay delay)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const int interval = qMin(m_asyncUpdateTimer.interval(),
|
const int interval = qMin(parseDelay(),
|
||||||
delay == QmakeProFile::ParseLater ? UPDATE_INTERVAL : 0);
|
delay == QmakeProFile::ParseLater ? UPDATE_INTERVAL : 0);
|
||||||
qCDebug(qmakeBuildSystemLog) << __FUNCTION__ << interval;
|
qCDebug(qmakeBuildSystemLog) << __FUNCTION__ << interval;
|
||||||
|
requestParseWithCustomDelay(interval);
|
||||||
m_asyncUpdateTimer.stop();
|
|
||||||
m_asyncUpdateTimer.setInterval(interval);
|
|
||||||
m_asyncUpdateTimer.start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmakeBuildSystem::incrementPendingEvaluateFutures()
|
void QmakeBuildSystem::incrementPendingEvaluateFutures()
|
||||||
@@ -564,7 +560,7 @@ bool QmakeBuildSystem::wasEvaluateCanceled()
|
|||||||
|
|
||||||
void QmakeBuildSystem::asyncUpdate()
|
void QmakeBuildSystem::asyncUpdate()
|
||||||
{
|
{
|
||||||
m_asyncUpdateTimer.setInterval(UPDATE_INTERVAL);
|
setParseDelay(UPDATE_INTERVAL);
|
||||||
qCDebug(qmakeBuildSystemLog) << __FUNCTION__;
|
qCDebug(qmakeBuildSystemLog) << __FUNCTION__;
|
||||||
|
|
||||||
if (m_invalidateQmakeVfsContents) {
|
if (m_invalidateQmakeVfsContents) {
|
||||||
|
@@ -35,7 +35,6 @@
|
|||||||
|
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QFutureInterface>
|
#include <QFutureInterface>
|
||||||
#include <QTimer>
|
|
||||||
#include <QFuture>
|
#include <QFuture>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@@ -189,7 +188,6 @@ public:
|
|||||||
|
|
||||||
QString m_qmakeSysroot;
|
QString m_qmakeSysroot;
|
||||||
|
|
||||||
QTimer m_asyncUpdateTimer;
|
|
||||||
QFutureInterface<void> m_asyncUpdateFutureInterface;
|
QFutureInterface<void> m_asyncUpdateFutureInterface;
|
||||||
int m_pendingEvaluateFuturesCount = 0;
|
int m_pendingEvaluateFuturesCount = 0;
|
||||||
AsyncUpdateState m_asyncUpdateState = Base;
|
AsyncUpdateState m_asyncUpdateState = Base;
|
||||||
|
Reference in New Issue
Block a user