Avoid QmlPuppet crash when translation database is locked

Task-number: QDS-5365
Change-Id: I0be2aaa4d64334273ce03f5bb692b8ed8597c266
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Tuomo Pelkonen
2021-11-09 15:20:34 +02:00
committed by Thomas Hartmann
parent 05d74d000e
commit 5e5ff9fa0d

View File

@@ -1395,13 +1395,17 @@ void NodeInstanceServer::setTranslationLanguage(const QString &language)
static QPointer<MultiLanguage::Translator> multilanguageTranslator;
if (!MultiLanguage::databaseFilePath().isEmpty()
&& QFileInfo::exists(QString::fromUtf8(MultiLanguage::databaseFilePath()))) {
if (!multilanguageLink) {
multilanguageLink = std::make_unique<MultiLanguage::Link>();
multilanguageTranslator = multilanguageLink->translator().release();
QCoreApplication::installTranslator(multilanguageTranslator);
try {
if (!multilanguageLink) {
multilanguageLink = std::make_unique<MultiLanguage::Link>();
multilanguageTranslator = multilanguageLink->translator().release();
QCoreApplication::installTranslator(multilanguageTranslator);
}
if (multilanguageTranslator)
multilanguageTranslator->setLanguage(language);
} catch (std::exception &e) {
qWarning() << "QmlPuppet is unable to initialize MultiLanguage translator:" << e.what();
}
if (multilanguageTranslator)
multilanguageTranslator->setLanguage(language);
}
}