QbsProjectManager: No more "forced" vs "non-forced" parsing.

This differentiation complicates the code and duplicates checks
already done in qbs.
Just let the library reparse the project; if it turns out that nothing
has to be done, then the operation will be fast.

Change-Id: Ib6406f254e51541c69c948f275fff7877b65b4bd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
Christian Kandeler
2014-07-17 12:02:56 +02:00
parent 35940f16e4
commit e82a47e5af
7 changed files with 16 additions and 60 deletions

View File

@@ -100,7 +100,6 @@ QbsProject::QbsProject(QbsManager *manager, const QString &fileName) :
m_rootProjectNode(0),
m_qbsProjectParser(0),
m_qbsUpdateFutureInterface(0),
m_forceParsing(false),
m_parsingScheduled(false),
m_cancelStatus(CancelStatusNone),
m_currentBc(0)
@@ -283,7 +282,7 @@ void QbsProject::handleQbsParsingDone(bool success)
if (cancelStatus == CancelStatusCancelingForReparse) {
m_qbsProjectParser->deleteLater();
m_qbsProjectParser = 0;
parseCurrentBuildConfiguration(m_forceParsing);
parseCurrentBuildConfiguration();
return;
}
@@ -316,8 +315,8 @@ void QbsProject::handleQbsParsingDone(bool success)
void QbsProject::targetWasAdded(Target *t)
{
connect(t, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)),
this, SLOT(delayForcedParsing()));
connect(t, SIGNAL(buildDirectoryChanged()), this, SLOT(delayForcedParsing()));
this, SLOT(delayParsing()));
connect(t, SIGNAL(buildDirectoryChanged()), this, SLOT(delayParsing()));
}
void QbsProject::changeActiveTarget(Target *t)
@@ -351,7 +350,7 @@ void QbsProject::startParsing()
return;
}
parseCurrentBuildConfiguration(false);
parseCurrentBuildConfiguration();
}
void QbsProject::delayParsing()
@@ -359,12 +358,6 @@ void QbsProject::delayParsing()
m_parsingDelay.start();
}
void QbsProject::delayForcedParsing()
{
m_forceParsing = true;
delayParsing();
}
// Qbs may change its data
void QbsProject::readQbsData()
{
@@ -383,11 +376,9 @@ void QbsProject::readQbsData()
emit fileListChanged();
}
void QbsProject::parseCurrentBuildConfiguration(bool force)
void QbsProject::parseCurrentBuildConfiguration()
{
m_parsingScheduled = false;
if (!m_forceParsing)
m_forceParsing = force;
if (m_cancelStatus == CancelStatusCancelingForReparse)
return;
@@ -440,12 +431,8 @@ void QbsProject::registerQbsProjectParser(QbsProjectParser *p)
m_qbsProjectParser = p;
if (p) {
p->setForced(m_forceParsing);
if (p)
connect(m_qbsProjectParser, SIGNAL(done(bool)), this, SLOT(handleQbsParsingDone(bool)));
}
m_forceParsing = false;
}
bool QbsProject::fromMap(const QVariantMap &map)
@@ -482,8 +469,8 @@ void QbsProject::parse(const QVariantMap &config, const Environment &env, const
registerQbsProjectParser(new QbsProjectParser(this, m_qbsUpdateFutureInterface));
if (m_qbsProjectParser->parse(config, env, dir))
emit projectParsingStarted();
m_qbsProjectParser->parse(config, env, dir);
emit projectParsingStarted();
}
void QbsProject::prepareForParsing()