@@ -63,24 +63,28 @@ public void Preprocess(Driver driver, ASTContext lib)
6363 lib . SetClassAsValueType ( "QVariant" ) ;
6464 lib . IgnoreClassMethodWithName ( "QString" , "fromStdWString" ) ;
6565 lib . IgnoreClassMethodWithName ( "QString" , "toStdWString" ) ;
66- if ( this . module == "Widgets" )
66+ string [ ] classesWithTypeEnums = { } ;
67+ switch ( this . module )
6768 {
68- // HACK: work around https://llvm.org/bugs/show_bug.cgi?id=24655
69- foreach ( var method in lib . FindCompleteClass ( "QAbstractSlider" ) . Methods . Where ( m => m . Access == AccessSpecifier . Protected ) )
70- {
71- method . AccessDecl . PreprocessedEntities . Clear ( ) ;
72- }
73- string [ ] classesWithTypeEnums =
74- {
75- "QGraphicsEllipseItem" , "QGraphicsItemGroup" , "QGraphicsLineItem" ,
76- "QGraphicsPathItem" , "QGraphicsPixmapItem" , "QGraphicsPolygonItem" , "QGraphicsProxyWidget" ,
77- "QGraphicsRectItem" , "QGraphicsSimpleTextItem" , "QGraphicsTextItem" , "QGraphicsWidget"
78- } ;
79- foreach ( var enumeration in classesWithTypeEnums . Select ( c => lib . FindCompleteClass ( c ) ) . SelectMany (
80- @class => @class . Enums . Where ( e => string . IsNullOrEmpty ( e . Name ) ) ) )
81- {
82- enumeration . Name = "TypeEnum" ;
83- }
69+ case "Widgets" :
70+ classesWithTypeEnums = new [ ]
71+ {
72+ "QGraphicsEllipseItem" , "QGraphicsItemGroup" , "QGraphicsLineItem" ,
73+ "QGraphicsPathItem" , "QGraphicsPixmapItem" , "QGraphicsPolygonItem" ,
74+ "QGraphicsProxyWidget" , "QGraphicsRectItem" , "QGraphicsSimpleTextItem" ,
75+ "QGraphicsTextItem" , "QGraphicsWidget"
76+ } ;
77+ break ;
78+ case "Svg" :
79+ classesWithTypeEnums = new [ ] { "QGraphicsSvgItem" } ;
80+ break ;
81+ }
82+ foreach ( var enumeration in from @class in classesWithTypeEnums
83+ from @enum in lib . FindCompleteClass ( @class ) . Enums
84+ where string . IsNullOrEmpty ( @enum . Name )
85+ select @enum )
86+ {
87+ enumeration . Name = "TypeEnum" ;
8488 }
8589 }
8690
0 commit comments