diff options
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/uic/main.cpp | 8 | ||||
-rw-r--r-- | src/tools/uic/option.h | 2 | ||||
-rw-r--r-- | src/tools/uic/python/pythonwriteimports.cpp | 10 |
3 files changed, 17 insertions, 3 deletions
diff --git a/src/tools/uic/main.cpp b/src/tools/uic/main.cpp index 467bcc5574..c2f117ec21 100644 --- a/src/tools/uic/main.cpp +++ b/src/tools/uic/main.cpp @@ -89,6 +89,11 @@ int runUic(int argc, char *argv[]) fromImportsOption.setDescription(QStringLiteral("Python: generate imports relative to '.'")); parser.addOption(fromImportsOption); + // FIXME Qt 7: Flip the default? + QCommandLineOption rcPrefixOption(QStringLiteral("rc-prefix")); + rcPrefixOption.setDescription(QStringLiteral("Python: Generate \"rc_file\" instead of \"file_rc\" import")); + parser.addOption(rcPrefixOption); + // FIXME Qt 7: Remove? QCommandLineOption useStarImportsOption(QStringLiteral("star-imports")); useStarImportsOption.setDescription(QStringLiteral("Python: Use * imports")); @@ -117,6 +122,9 @@ int runUic(int argc, char *argv[]) driver.option().forceStringConnectionSyntax = 1; } + if (parser.isSet(rcPrefixOption)) + driver.option().rcPrefix = 1; + Language language = Language::Cpp; if (parser.isSet(generatorOption)) { if (parser.value(generatorOption).compare("python"_L1) == 0) diff --git a/src/tools/uic/option.h b/src/tools/uic/option.h index 277655b3ad..9b4c98344f 100644 --- a/src/tools/uic/option.h +++ b/src/tools/uic/option.h @@ -24,6 +24,7 @@ struct Option unsigned int forceMemberFnPtrConnectionSyntax: 1; unsigned int forceStringConnectionSyntax: 1; unsigned int useStarImports: 1; + unsigned int rcPrefix: 1; // Python: Generate "rc_file" instead of "file_rc" import QString inputFile; QString outputFile; @@ -48,6 +49,7 @@ struct Option forceMemberFnPtrConnectionSyntax(0), forceStringConnectionSyntax(0), useStarImports(0), + rcPrefix(0), prefix(QLatin1StringView("Ui_")) { indent.fill(u' ', 4); } diff --git a/src/tools/uic/python/pythonwriteimports.cpp b/src/tools/uic/python/pythonwriteimports.cpp index a894a00a8d..a268f87bb4 100644 --- a/src/tools/uic/python/pythonwriteimports.cpp +++ b/src/tools/uic/python/pythonwriteimports.cpp @@ -56,14 +56,17 @@ static WriteImports::ClassesPerModule defaultClasses() // Change the name of a qrc file "dir/foo.qrc" file to the Python // module name "foo_rc" according to project conventions. -static QString pythonResource(QString resource) +static QString pythonResource(QString resource, bool prefix) { const qsizetype lastSlash = resource.lastIndexOf(u'/'); if (lastSlash != -1) resource.remove(0, lastSlash + 1); if (resource.endsWith(".qrc"_L1)) { resource.chop(4); - resource.append("_rc"_L1); + if (prefix) + resource.prepend("rc_"_L1); + else + resource.append("_rc"_L1); } return resource; } @@ -140,7 +143,8 @@ void WriteImports::acceptUI(DomUI *node) const auto includes = resources->elementInclude(); for (auto include : includes) { if (include->hasAttributeLocation()) - writeImport(pythonResource(include->attributeLocation())); + writeImport(pythonResource(include->attributeLocation(), + uic()->option().rcPrefix)); } output << '\n'; } |