diff --git a/src/generatorthread.cpp b/src/generatorthread.cpp --- a/src/generatorthread.cpp +++ b/src/generatorthread.cpp @@ -43,16 +43,19 @@ void GeneratorThread::run() { - Cirkuit::Backend* bestBackend = Backend::autoChooseBackend(m_doc); if (CirkuitSettings::autoSelectBackend()) { - if (bestBackend->id() != m_backend->id()) { - m_backend = bestBackend; - emit backendChanged(m_backend->name()); + Cirkuit::Backend* bestBackend = Backend::autoChooseBackend(m_doc); + if (nullptr != bestBackend) { + if ((nullptr == m_backend) || (bestBackend->id() != m_backend->id())) { + m_backend = bestBackend; + emit backendChanged(m_backend->name()); + } } } - - if (!m_backend) { + + if (nullptr == m_backend) { kError() << i18n("No backend could be selected!"); + emit fail(); return; } else { kDebug() << m_backend->id();