From 5e5ff9fa0d9a6b370ead2b1750376c6e077d8796 Mon Sep 17 00:00:00 2001 From: Tuomo Pelkonen Date: Tue, 9 Nov 2021 15:20:34 +0200 Subject: [PATCH] Avoid QmlPuppet crash when translation database is locked Task-number: QDS-5365 Change-Id: I0be2aaa4d64334273ce03f5bb692b8ed8597c266 Reviewed-by: Thomas Hartmann --- .../qml2puppet/instances/nodeinstanceserver.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp index 1b0fdd5a418..682b825eed2 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp @@ -1395,13 +1395,17 @@ void NodeInstanceServer::setTranslationLanguage(const QString &language) static QPointer multilanguageTranslator; if (!MultiLanguage::databaseFilePath().isEmpty() && QFileInfo::exists(QString::fromUtf8(MultiLanguage::databaseFilePath()))) { - if (!multilanguageLink) { - multilanguageLink = std::make_unique(); - multilanguageTranslator = multilanguageLink->translator().release(); - QCoreApplication::installTranslator(multilanguageTranslator); + try { + if (!multilanguageLink) { + multilanguageLink = std::make_unique(); + 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); } }