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)
|
||||
{
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
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 );
|
||||
|
||||
m_reader->setParameters(p);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user