summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-09-08 10:24:07 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-09-15 17:57:54 +0200
commit3696c99a9ab74113557578401d467d845171e543 (patch)
tree7b7bdc1f9d795fb800df377ad1f28d1a658bc30f /src/tools
parent30947c7fd4dddd76b69a3aa11567e27174d7a3ea (diff)
uic: Add an option to modify the generated resource import
Historically, resource imports were generated as "import file_rc", however, pyside6-project generates files by prepending "rc_". Add an option to flip this. Pick-to: 6.4 Change-Id: Iee0f161cb2101c8080bd131a6401bbaf4682186d Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/uic/main.cpp8
-rw-r--r--src/tools/uic/option.h2
-rw-r--r--src/tools/uic/python/pythonwriteimports.cpp10
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';
}