forked from qt-creator/qt-creator
ProjectExplorer: Add non-translatable text options to text edit fields
LineEdit and TextEdit have a couple of text options which start with "tr". These strings can be translated via Qt Linguist. In some cases, these text options contain macros or even JavaScript code which must not be translated. Translation of these fields can easily break the wizard. This change adds the possibility to set non-translatable options for LineEdits and TextEdits "(tr)Text", "(tr)DisabledText" and "(tr)Placeholder" in the .json files. Task-number: QTCREATORBUG-29649 Change-Id: I278a0bec848888cf96bdb49306e319c14a09236c Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -81,6 +81,17 @@ static Key fullSettingsKey(const QString &fieldKey)
|
||||
return "Wizards/" + keyFromString(fieldKey);
|
||||
}
|
||||
|
||||
static QString translatedOrUntranslatedText(QVariantMap &map, const QString &key)
|
||||
{
|
||||
if (key.size() >= 1) {
|
||||
const QString trKey = "tr" + key.at(0).toUpper() + key.mid(1); // "text" -> "trText"
|
||||
const QString trValue = JsonWizardFactory::localizedString(consumeValue(map, trKey).toString());
|
||||
if (!trValue.isEmpty())
|
||||
return trValue;
|
||||
}
|
||||
|
||||
return consumeValue(map, key).toString();
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// Helper:
|
||||
@@ -489,9 +500,9 @@ bool LineEditField::parseData(const QVariant &data, QString *errorMessage)
|
||||
QVariantMap tmp = data.toMap();
|
||||
|
||||
m_isPassword = consumeValue(tmp, "isPassword", false).toBool();
|
||||
m_defaultText = JsonWizardFactory::localizedString(consumeValue(tmp, "trText").toString());
|
||||
m_disabledText = JsonWizardFactory::localizedString(consumeValue(tmp, "trDisabledText").toString());
|
||||
m_placeholderText = JsonWizardFactory::localizedString(consumeValue(tmp, "trPlaceholder").toString());
|
||||
m_defaultText = translatedOrUntranslatedText(tmp, "text");
|
||||
m_disabledText = translatedOrUntranslatedText(tmp, "disabledText");
|
||||
m_placeholderText = translatedOrUntranslatedText(tmp, "placeholder");
|
||||
m_historyId = consumeValue(tmp, "historyId").toString();
|
||||
m_restoreLastHistoryItem = consumeValue(tmp, "restoreLastHistoryItem", false).toBool();
|
||||
QString pattern = consumeValue(tmp, "validator").toString();
|
||||
@@ -686,8 +697,8 @@ bool TextEditField::parseData(const QVariant &data, QString *errorMessage)
|
||||
|
||||
QVariantMap tmp = data.toMap();
|
||||
|
||||
m_defaultText = JsonWizardFactory::localizedString(consumeValue(tmp, "trText").toString());
|
||||
m_disabledText = JsonWizardFactory::localizedString(consumeValue(tmp, "trDisabledText").toString());
|
||||
m_defaultText = translatedOrUntranslatedText(tmp, "text");
|
||||
m_disabledText = translatedOrUntranslatedText(tmp, "disabledText");
|
||||
m_acceptRichText = consumeValue(tmp, "richText", true).toBool();
|
||||
|
||||
warnAboutUnsupportedKeys(tmp, name(), type());
|
||||
|
||||
Reference in New Issue
Block a user