forked from qt-creator/qt-creator
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:
committed by
Thomas Hartmann
parent
05d74d000e
commit
5e5ff9fa0d
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user