From d8239b6a91d897bdf3f564f49553de09e9f361f1 Mon Sep 17 00:00:00 2001 From: mappu Date: Sat, 21 Sep 2024 11:02:05 +1200 Subject: [PATCH] genbindings/transform: fix missing enums/typedefs from inner classes --- cmd/genbindings/exceptions.go | 3 --- cmd/genbindings/transformchildclasses.go | 9 ++++++++- qt/gen_qevent.go | 7 +++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/cmd/genbindings/exceptions.go b/cmd/genbindings/exceptions.go index b2d09d2..69eaa52 100644 --- a/cmd/genbindings/exceptions.go +++ b/cmd/genbindings/exceptions.go @@ -21,9 +21,6 @@ func InsertTypedefs() { // Not sure the reason for this one KnownTypedefs["QSocketDescriptor::DescriptorType"] = CppTypedef{"QSocketDescriptor::DescriptorType", parseSingleTypeString("QSocketNotifier::Type")} - // QFlags<> typedef - KnownTypedefs["QTouchEvent::TouchPoint::InfoFlags"] = CppTypedef{"QTouchEvent::TouchPoint::InfoFlags", parseSingleTypeString("QFlags")} - // QFile doesn't see QFileDevice parent class enum KnownTypedefs["QFile::Permissions"] = CppTypedef{"QFile::Permissions", parseSingleTypeString("QFileDevice::Permissions")} KnownTypedefs["QFileDevice::Permissions"] = CppTypedef{"QFile::Permissions", parseSingleTypeString("QFlags")} diff --git a/cmd/genbindings/transformchildclasses.go b/cmd/genbindings/transformchildclasses.go index 1942b59..48530a5 100644 --- a/cmd/genbindings/transformchildclasses.go +++ b/cmd/genbindings/transformchildclasses.go @@ -24,11 +24,18 @@ func astTransformChildClasses(parsed *CppParsedHeader) { var taken []CppClass for i, c := range parsed.Classes { - taken = append(taken, takeChildren(&parsed.Classes[i])...) + + nestedClasses := takeChildren(&parsed.Classes[i]) + + taken = append(taken, nestedClasses...) // Also lift all child typedefs and enums parsed.Typedefs = append(parsed.Typedefs, c.ChildTypedefs...) parsed.Enums = append(parsed.Enums, c.ChildEnums...) + for _, nc := range nestedClasses { + parsed.Typedefs = append(parsed.Typedefs, nc.ChildTypedefs...) + parsed.Enums = append(parsed.Enums, nc.ChildEnums...) + } } parsed.Classes = append(parsed.Classes, taken...) diff --git a/qt/gen_qevent.go b/qt/gen_qevent.go index ebcd7cb..ea6f443 100644 --- a/qt/gen_qevent.go +++ b/qt/gen_qevent.go @@ -65,6 +65,13 @@ const ( QInputMethodEvent__AttributeType__Selection QInputMethodEvent__AttributeType = 4 ) +type QTouchEvent__TouchPoint__InfoFlag int + +const ( + QTouchEvent__TouchPoint__InfoFlag__Pen QTouchEvent__TouchPoint__InfoFlag = 1 + QTouchEvent__TouchPoint__InfoFlag__Token QTouchEvent__TouchPoint__InfoFlag = 2 +) + type QScrollEvent__ScrollState int const (