diff options
Diffstat (limited to 'src/widgets/graphicsview/qgraphicsitem.h')
-rw-r--r-- | src/widgets/graphicsview/qgraphicsitem.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/widgets/graphicsview/qgraphicsitem.h b/src/widgets/graphicsview/qgraphicsitem.h index 4283deb5b8..d0c6cc12af 100644 --- a/src/widgets/graphicsview/qgraphicsitem.h +++ b/src/widgets/graphicsview/qgraphicsitem.h @@ -105,7 +105,8 @@ public: ItemIsFocusScope = 0x8000, // internal ItemSendsScenePositionChanges = 0x10000, ItemStopsClickFocusPropagation = 0x20000, - ItemStopsFocusHandling = 0x40000 + ItemStopsFocusHandling = 0x40000, + ItemContainsChildrenInShape = 0x80000 // NB! Don't forget to increase the d_ptr->flags bit field by 1 when adding a new flag. }; Q_DECLARE_FLAGS(GraphicsItemFlags, GraphicsItemFlag) @@ -1029,14 +1030,16 @@ private: template <class T> inline T qgraphicsitem_cast(QGraphicsItem *item) { - return int(static_cast<T>(0)->Type) == int(QGraphicsItem::Type) - || (item && int(static_cast<T>(0)->Type) == item->type()) ? static_cast<T>(item) : 0; + typedef typename QtPrivate::remove_cv<typename QtPrivate::remove_pointer<T>::type>::type Item; + return int(Item::Type) == int(QGraphicsItem::Type) + || (item && int(Item::Type) == item->type()) ? static_cast<T>(item) : 0; } template <class T> inline T qgraphicsitem_cast(const QGraphicsItem *item) { - return int(static_cast<T>(0)->Type) == int(QGraphicsItem::Type) - || (item && int(static_cast<T>(0)->Type) == item->type()) ? static_cast<T>(item) : 0; + typedef typename QtPrivate::remove_cv<typename QtPrivate::remove_pointer<T>::type>::type Item; + return int(Item::Type) == int(QGraphicsItem::Type) + || (item && int(Item::Type) == item->type()) ? static_cast<T>(item) : 0; } #ifndef QT_NO_DEBUG_STREAM |