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; static QPointer<MultiLanguage::Translator> multilanguageTranslator;
if (!MultiLanguage::databaseFilePath().isEmpty() if (!MultiLanguage::databaseFilePath().isEmpty()
&& QFileInfo::exists(QString::fromUtf8(MultiLanguage::databaseFilePath()))) { && QFileInfo::exists(QString::fromUtf8(MultiLanguage::databaseFilePath()))) {
if (!multilanguageLink) { try {
multilanguageLink = std::make_unique<MultiLanguage::Link>(); if (!multilanguageLink) {
multilanguageTranslator = multilanguageLink->translator().release(); multilanguageLink = std::make_unique<MultiLanguage::Link>();
QCoreApplication::installTranslator(multilanguageTranslator); 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);
} }
} }