Core: Do not use help engine of another thread

As documentation is now registered in another thread
accessing the help engine from the main thread may crash.

Task-number: QTCREATORBUG-19933
Change-Id: Id5e376c793156bf2d553c237cfb068b000c5afb1
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2018-03-01 10:12:45 +01:00
parent 5915779e81
commit 35efebf6f8

View File

@@ -158,7 +158,7 @@ void HelpManager::registerDocumentationNow(QFutureInterface<bool> &futureInterfa
QHelpEngineCore helpEngine(collectionFilePath());
helpEngine.setupData();
bool docsChanged = false;
QStringList nameSpaces = d->m_helpEngine->registeredDocumentations();
QStringList nameSpaces = helpEngine.registeredDocumentations();
for (const QString &file : files) {
if (futureInterface.isCanceled())
break;
@@ -178,7 +178,7 @@ void HelpManager::registerDocumentationNow(QFutureInterface<bool> &futureInterfa
const QLatin1String key("CreationDate");
const QString &newDate = helpEngine.metaData(file, key).toString();
const QString &oldDate = helpEngine.metaData(
d->m_helpEngine->documentationFileName(nameSpace), key).toString();
helpEngine.documentationFileName(nameSpace), key).toString();
if (QDateTime::fromString(newDate, Qt::ISODate)
> QDateTime::fromString(oldDate, Qt::ISODate)) {
if (helpEngine.unregisterDocumentation(nameSpace)) {