Help: Unregister documentation when unregistering Qt versions

While doing we must take care that we do not remove documentation that
is used by other, still registered Qt versions (since for example
desktop & mobile Qt versions share the same documentation).

Fixes: QTCREATORBUG-16631
Change-Id: I77a38c89698cb3050d4a0a6963ab12d3238e2068
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2019-10-04 16:01:36 +02:00
parent ab355bb157
commit 91d785a123
6 changed files with 81 additions and 29 deletions

View File

@@ -136,8 +136,20 @@ void HelpManager::registerDocumentation(const QStringList &files)
emit Core::HelpManager::Signals::instance()->documentationChanged();
}
});
ProgressManager::addTask(future, tr("Update Documentation"),
kUpdateDocumentationTask);
ProgressManager::addTask(future, tr("Update Documentation"), kUpdateDocumentationTask);
}
void HelpManager::unregisterDocumentation(const QStringList &fileNames)
{
if (fileNames.isEmpty())
return;
const auto getNamespaces = [](const QStringList &fileNames) {
QMutexLocker locker(&d->m_helpengineMutex);
return Utils::transform(fileNames, [](const QString &filePath) {
return d->m_helpEngine->namespaceName(filePath);
});
};
unregisterNamespaces(getNamespaces(fileNames));
}
void HelpManager::registerDocumentationNow(QFutureInterface<bool> &futureInterface,