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 <cristian.maureira-fredes@qt.io>
This commit is contained in:
parent
7719fcea4b
commit
e376c229e9
@ -233,16 +233,31 @@ void WriteImports::addPythonCustomWidget(const QString &className, const DomCust
|
|||||||
|
|
||||||
void WriteImports::acceptProperty(DomProperty *node)
|
void WriteImports::acceptProperty(DomProperty *node)
|
||||||
{
|
{
|
||||||
if (node->kind() == DomProperty::Enum) {
|
switch (node->kind()) {
|
||||||
// Add base classes like QFrame for QLabel::frameShape()
|
case DomProperty::Enum:
|
||||||
const QString &enumV = node->elementEnum();
|
addEnumBaseClass(node->elementEnum());
|
||||||
const auto colonPos = enumV.indexOf(u"::");
|
break;
|
||||||
if (colonPos > 0)
|
case DomProperty::Set:
|
||||||
addQtClass(enumV.left(colonPos));
|
addEnumBaseClass(node->elementSet());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteIncludesBase::acceptProperty(node);
|
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
|
} // namespace Python
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
@ -55,6 +55,7 @@ protected:
|
|||||||
private:
|
private:
|
||||||
void addPythonCustomWidget(const QString &className, const DomCustomWidget *dcw);
|
void addPythonCustomWidget(const QString &className, const DomCustomWidget *dcw);
|
||||||
bool addQtClass(const QString &className);
|
bool addQtClass(const QString &className);
|
||||||
|
void addEnumBaseClass(const QString &v);
|
||||||
void writeImport(const QString &module);
|
void writeImport(const QString &module);
|
||||||
|
|
||||||
QHash<QString, QString> m_classToModule;
|
QHash<QString, QString> m_classToModule;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user