summaryrefslogtreecommitdiffstats
path: root/src/tools/uic/python/pythonwriteimports.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <[email protected]>2022-01-12 15:18:02 +0100
committerFriedemann Kleint <[email protected]>2022-01-13 15:47:46 +0100
commite376c229e906bc25068a22d758c24eef644e8b28 (patch)
tree0efa774dbd18f14d8f32c8612ebba3cf38845ee5 /src/tools/uic/python/pythonwriteimports.cpp
parent7719fcea4b174da078b6630df24345c63e6cc75d (diff)
uic/Python: Import base class for flag values
Extend the logic extracting enum base classes to flags to handle things like QAbstractItemView::EditTriggers. Exclude the Qt namespace. Amends de15836dbf5007092c19bc9ab15ca3d1a36901ad. Fixes: PYSIDE-1773 Task-number: PYSIDE-1404 Pick-to: 6.2 6.2.3 6.3 Change-Id: Ib0cd0836a91f330e5bc3307690062a965abec7eb Reviewed-by: Cristian Maureira-Fredes <[email protected]>
Diffstat (limited to 'src/tools/uic/python/pythonwriteimports.cpp')
-rw-r--r--src/tools/uic/python/pythonwriteimports.cpp27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/tools/uic/python/pythonwriteimports.cpp b/src/tools/uic/python/pythonwriteimports.cpp
index ec4968da2ff..0d295b483d5 100644
--- a/src/tools/uic/python/pythonwriteimports.cpp
+++ b/src/tools/uic/python/pythonwriteimports.cpp
@@ -233,16 +233,31 @@ void WriteImports::addPythonCustomWidget(const QString &className, const DomCust
void WriteImports::acceptProperty(DomProperty *node)
{
- if (node->kind() == DomProperty::Enum) {
- // Add base classes like QFrame for QLabel::frameShape()
- const QString &enumV = node->elementEnum();
- const auto colonPos = enumV.indexOf(u"::");
- if (colonPos > 0)
- addQtClass(enumV.left(colonPos));
+ switch (node->kind()) {
+ case DomProperty::Enum:
+ addEnumBaseClass(node->elementEnum());
+ break;
+ case DomProperty::Set:
+ addEnumBaseClass(node->elementSet());
+ break;
+ default:
+ break;
}
+
WriteIncludesBase::acceptProperty(node);
}
+void WriteImports::addEnumBaseClass(const QString &v)
+{
+ // Add base classes like QFrame for QLabel::frameShape()
+ const auto colonPos = v.indexOf(u"::");
+ if (colonPos > 0) {
+ const QString base = v.left(colonPos);
+ if (base.startsWith(u'Q') && base != u"Qt")
+ addQtClass(base);
+ }
+}
+
} // namespace Python
QT_END_NAMESPACE