diff options
author | Pavel Geiger <pavel.geiger@gmail.com> | 2016-01-05 13:05:47 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@theqtcompany.com> | 2016-01-28 14:07:43 +0000 |
commit | eedf16c96fc9f3307087837785202ec3296df213 (patch) | |
tree | 8496f958111e9298ee65527655e8843b5377dda5 /src/tools | |
parent | eea8494fa09db99745ef795557aaf1cdba2bd925 (diff) |
uic: Accept an -idbased argument
When we want to use qtTrId function instead QApplication::translate in
generated files it's not possible to use custom function with presented by
the --tr argument due to signature difference between qtTrId and
QApplication::translate function.
With this argument present, uic will generate qtTrId function with second
argument empty. When used together with --tr parameter it will use
presented function instead.
Change-Id: I0d986e4ea25ce58917fd9a2866b1eac0a4671502
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/uic/cpp/cppwriteinitialization.cpp | 19 | ||||
-rw-r--r-- | src/tools/uic/main.cpp | 5 | ||||
-rw-r--r-- | src/tools/uic/option.h | 2 |
3 files changed, 20 insertions, 6 deletions
diff --git a/src/tools/uic/cpp/cppwriteinitialization.cpp b/src/tools/uic/cpp/cppwriteinitialization.cpp index 4ad4f60ca8..29a377984c 100644 --- a/src/tools/uic/cpp/cppwriteinitialization.cpp +++ b/src/tools/uic/cpp/cppwriteinitialization.cpp @@ -2309,18 +2309,25 @@ QString WriteInitialization::trCall(const QString &str, const QString &commentHi const QString comment = commentHint.isEmpty() ? QString(QLatin1Char('0')) : fixString(commentHint, m_dindent); if (m_option.translateFunction.isEmpty()) { - result = QLatin1String("QApplication::translate(\""); - result += m_generatedClass; - result += QLatin1Char('"'); - result += QLatin1String(", "); + if (m_option.idBased) { + result = QLatin1String("qtTrId("); + } else { + result = QLatin1String("QApplication::translate(\""); + result += m_generatedClass; + result += QLatin1Char('"'); + result += QLatin1String(", "); + } } else { result = m_option.translateFunction; result += QLatin1Char('('); } result += fixString(str, m_dindent); - result += QLatin1String(", "); - result += comment; + + if (!m_option.idBased) { + result += QLatin1String(", "); + result += comment; + } result += QLatin1Char(')'); return result; diff --git a/src/tools/uic/main.cpp b/src/tools/uic/main.cpp index d86ce28451..229e2a9c2f 100644 --- a/src/tools/uic/main.cpp +++ b/src/tools/uic/main.cpp @@ -95,6 +95,10 @@ int runUic(int argc, char *argv[]) generatorOption.setValueName(QStringLiteral("java|cpp")); parser.addOption(generatorOption); + QCommandLineOption idBasedOption(QStringLiteral("idbased")); + idBasedOption.setDescription(QStringLiteral("Use id based function for i18n")); + parser.addOption(idBasedOption); + parser.addPositionalArgument(QStringLiteral("[uifile]"), QStringLiteral("Input file (*.ui), otherwise stdin.")); parser.process(app); @@ -103,6 +107,7 @@ int runUic(int argc, char *argv[]) driver.option().outputFile = parser.value(outputOption); driver.option().headerProtection = !parser.isSet(noProtOption); driver.option().implicitIncludes = !parser.isSet(noImplicitIncludesOption); + driver.option().idBased = parser.isSet(idBasedOption); driver.option().postfix = parser.value(postfixOption); driver.option().translateFunction = parser.value(translateOption); driver.option().includeFile = parser.value(includeOption); diff --git a/src/tools/uic/option.h b/src/tools/uic/option.h index 57a1550657..1483d94c07 100644 --- a/src/tools/uic/option.h +++ b/src/tools/uic/option.h @@ -51,6 +51,7 @@ struct Option unsigned int extractImages : 1; unsigned int limitXPM_LineLength : 1; unsigned int implicitIncludes: 1; + unsigned int idBased: 1; Generator generator; QString inputFile; @@ -76,6 +77,7 @@ struct Option extractImages(0), limitXPM_LineLength(0), implicitIncludes(1), + idBased(0), generator(CppGenerator), prefix(QLatin1String("Ui_")) { indent.fill(QLatin1Char(' '), 4); } |