@@ -31,68 +31,87 @@ class QgsComposerItem: QgsComposerObject, QGraphicsRectItem
31
31
#include <qgscomposerpolygon.h>
32
32
#include <qgscomposerpolyline.h>
33
33
#include <qgscomposertexttable.h>
34
+ #include <qgslayoutitemshape.h>
35
+ #include <qgslayoutitempage.h>
34
36
%End
35
37
36
38
%ConvertToSubClassCode
37
39
// the conversions have to be static, because they're using multiple inheritance
38
40
// (seen in PyQt4 .sip files for some QGraphicsItem classes)
39
- switch ( sipCpp->type( ) )
41
+ if ( dynamic_cast< QgsComposerItem * >( sipCpp ) )
40
42
{
41
- case QgsComposerItem::ComposerItem:
42
- sipType = sipType_QgsComposerItem;
43
- *sipCppRet = static_cast<QgsComposerItem *>( sipCpp );
44
- break;
45
- case QgsComposerItem::ComposerArrow:
46
- sipType = sipType_QgsComposerArrow;
47
- *sipCppRet = static_cast<QgsComposerArrow *>( sipCpp );
48
- break;
49
- case QgsComposerItem::ComposerItemGroup:
50
- sipType = sipType_QgsComposerItemGroup;
51
- *sipCppRet = static_cast<QgsComposerItemGroup *>( sipCpp );
52
- break;
53
- case QgsComposerItem::ComposerLabel:
54
- sipType = sipType_QgsComposerLabel;
55
- *sipCppRet = static_cast<QgsComposerLabel *>( sipCpp );
56
- break;
57
- case QgsComposerItem::ComposerLegend:
58
- sipType = sipType_QgsComposerLegend;
59
- *sipCppRet = static_cast<QgsComposerLegend *>( sipCpp );
60
- break;
61
- case QgsComposerItem::ComposerMap:
62
- sipType = sipType_QgsComposerMap;
63
- *sipCppRet = static_cast<QgsComposerMap *>( sipCpp );
64
- break;
65
- case QgsComposerItem::ComposerPaper:
66
- sipType = sipType_QgsPaperItem;
67
- *sipCppRet = static_cast<QgsPaperItem *>( sipCpp );
68
- break;
69
- case QgsComposerItem::ComposerPicture:
70
- sipType = sipType_QgsComposerPicture;
71
- *sipCppRet = static_cast<QgsComposerPicture *>( sipCpp );
72
- break;
73
- case QgsComposerItem::ComposerScaleBar:
74
- sipType = sipType_QgsComposerScaleBar;
75
- *sipCppRet = static_cast<QgsComposerScaleBar *>( sipCpp );
76
- break;
77
- case QgsComposerItem::ComposerShape:
78
- sipType = sipType_QgsComposerShape;
79
- *sipCppRet = static_cast<QgsComposerShape *>( sipCpp );
80
- break;
81
- case QgsComposerItem::ComposerPolygon:
82
- sipType = sipType_QgsComposerPolygon;
83
- *sipCppRet = static_cast<QgsComposerPolygon *>( sipCpp );
84
- break;
85
- case QgsComposerItem::ComposerPolyline:
86
- sipType = sipType_QgsComposerPolyline;
87
- *sipCppRet = static_cast<QgsComposerPolyline *>( sipCpp );
88
- break;
89
- case QgsComposerItem::ComposerFrame:
90
- sipType = sipType_QgsComposerFrame;
91
- *sipCppRet = static_cast<QgsComposerFrame *>( sipCpp );
92
- break;
93
- default:
94
- sipType = 0;
43
+ switch ( sipCpp->type() )
44
+ {
45
+ case QgsComposerItem::ComposerItem:
46
+ sipType = sipType_QgsComposerItem;
47
+ *sipCppRet = static_cast<QgsComposerItem *>( sipCpp );
48
+ break;
49
+ case QgsComposerItem::ComposerArrow:
50
+ sipType = sipType_QgsComposerArrow;
51
+ *sipCppRet = static_cast<QgsComposerArrow *>( sipCpp );
52
+ break;
53
+ case QgsComposerItem::ComposerItemGroup:
54
+ sipType = sipType_QgsComposerItemGroup;
55
+ *sipCppRet = static_cast<QgsComposerItemGroup *>( sipCpp );
56
+ break;
57
+ case QgsComposerItem::ComposerLabel:
58
+ sipType = sipType_QgsComposerLabel;
59
+ *sipCppRet = static_cast<QgsComposerLabel *>( sipCpp );
60
+ break;
61
+ case QgsComposerItem::ComposerLegend:
62
+ sipType = sipType_QgsComposerLegend;
63
+ *sipCppRet = static_cast<QgsComposerLegend *>( sipCpp );
64
+ break;
65
+ case QgsComposerItem::ComposerMap:
66
+ sipType = sipType_QgsComposerMap;
67
+ *sipCppRet = static_cast<QgsComposerMap *>( sipCpp );
68
+ break;
69
+ case QgsComposerItem::ComposerPaper:
70
+ sipType = sipType_QgsPaperItem;
71
+ *sipCppRet = static_cast<QgsPaperItem *>( sipCpp );
72
+ break;
73
+ case QgsComposerItem::ComposerPicture:
74
+ sipType = sipType_QgsComposerPicture;
75
+ *sipCppRet = static_cast<QgsComposerPicture *>( sipCpp );
76
+ break;
77
+ case QgsComposerItem::ComposerScaleBar:
78
+ sipType = sipType_QgsComposerScaleBar;
79
+ *sipCppRet = static_cast<QgsComposerScaleBar *>( sipCpp );
80
+ break;
81
+ case QgsComposerItem::ComposerShape:
82
+ sipType = sipType_QgsComposerShape;
83
+ *sipCppRet = static_cast<QgsComposerShape *>( sipCpp );
84
+ break;
85
+ case QgsComposerItem::ComposerPolygon:
86
+ sipType = sipType_QgsComposerPolygon;
87
+ *sipCppRet = static_cast<QgsComposerPolygon *>( sipCpp );
88
+ break;
89
+ case QgsComposerItem::ComposerPolyline:
90
+ sipType = sipType_QgsComposerPolyline;
91
+ *sipCppRet = static_cast<QgsComposerPolyline *>( sipCpp );
92
+ break;
93
+ case QgsComposerItem::ComposerFrame:
94
+ sipType = sipType_QgsComposerFrame;
95
+ *sipCppRet = static_cast<QgsComposerFrame *>( sipCpp );
96
+ break;
97
+ default:
98
+ sipType = 0;
99
+ }
95
100
}
101
+ else
102
+ {
103
+ switch ( sipCpp->type() )
104
+ {
105
+ // really, these *should* use the constants from QgsLayoutItemRegistry, but sip doesn't like that!
106
+ case QGraphicsItem::UserType + 101:
107
+ sipType = sipType_QgsLayoutItemPage;
108
+ *sipCppRet = static_cast<QgsLayoutItemPage *>( sipCpp );
109
+ break;
110
+ default:
111
+ sipType = 0;
112
+ }
113
+ }
114
+
96
115
%End
97
116
public:
98
117
0 commit comments