forked from qt-creator/qt-creator
CMake: Wire up the readers only once
They can not get disconnected anymore, so just wire them up once. Change-Id: I46af563e6aebe7bee00c813648bcbfab9967e766 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -136,20 +136,31 @@ void BuildDirManager::updateReaderType(const BuildDirParameters &p,
|
|||||||
std::function<void()> todo)
|
std::function<void()> todo)
|
||||||
{
|
{
|
||||||
if (!m_reader || !m_reader->isCompatible(p)) {
|
if (!m_reader || !m_reader->isCompatible(p)) {
|
||||||
qCDebug(cmakeBuildDirManagerLog) << "Creating new reader";
|
if (m_reader) {
|
||||||
|
stopParsingAndClearState();
|
||||||
|
qCDebug(cmakeBuildDirManagerLog) << "Creating new reader do to incompatible parameters";
|
||||||
|
} else {
|
||||||
|
qCDebug(cmakeBuildDirManagerLog) << "Creating first reader";
|
||||||
|
}
|
||||||
m_reader = BuildDirReader::createReader(p);
|
m_reader = BuildDirReader::createReader(p);
|
||||||
|
|
||||||
|
connect(m_reader.get(),
|
||||||
|
&BuildDirReader::configurationStarted,
|
||||||
|
this,
|
||||||
|
&BuildDirManager::parsingStarted);
|
||||||
|
connect(m_reader.get(),
|
||||||
|
&BuildDirReader::dataAvailable,
|
||||||
|
this,
|
||||||
|
&BuildDirManager::emitDataAvailable);
|
||||||
|
connect(m_reader.get(),
|
||||||
|
&BuildDirReader::errorOccured,
|
||||||
|
this,
|
||||||
|
&BuildDirManager::emitErrorOccured);
|
||||||
|
connect(m_reader.get(), &BuildDirReader::dirty, this, &BuildDirManager::becameDirty);
|
||||||
|
connect(m_reader.get(), &BuildDirReader::isReadyNow, this, todo);
|
||||||
}
|
}
|
||||||
|
|
||||||
QTC_ASSERT(m_reader, return);
|
QTC_ASSERT(m_reader, return );
|
||||||
|
|
||||||
connect(m_reader.get(), &BuildDirReader::configurationStarted,
|
|
||||||
this, &BuildDirManager::parsingStarted);
|
|
||||||
connect(m_reader.get(), &BuildDirReader::dataAvailable,
|
|
||||||
this, &BuildDirManager::emitDataAvailable);
|
|
||||||
connect(m_reader.get(), &BuildDirReader::errorOccured,
|
|
||||||
this, &BuildDirManager::emitErrorOccured);
|
|
||||||
connect(m_reader.get(), &BuildDirReader::dirty, this, &BuildDirManager::becameDirty);
|
|
||||||
connect(m_reader.get(), &BuildDirReader::isReadyNow, this, todo);
|
|
||||||
|
|
||||||
m_reader->setParameters(p);
|
m_reader->setParameters(p);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user