QGraphicsObject * GridLayoutItem::createNewItemView(int i) { if( m_listController && m_delegate ) { QSharedPointer<OSListItem> itemData = m_listController->itemAt(i); OS_ASSERT(itemData); QGraphicsObject * graphicsItem = m_delegate->view(itemData); OS_ASSERT(graphicsItem); graphicsItem->setParentItem(this); m_widgetItemPairs.insert( std::make_pair(graphicsItem,itemData) ); connect(graphicsItem, &QGraphicsObject::destroyed, this, &GridLayoutItem::removePair); return graphicsItem; } else { return nullptr; } }
static QDeclarativePrivate::AutoParentResult qgraphicsobject_autoParent(QObject *obj, QObject *parent) { QGraphicsObject* gobj = qobject_cast<QGraphicsObject*>(obj); if (!gobj) return QDeclarativePrivate::IncompatibleObject; QGraphicsObject* gparent = qobject_cast<QGraphicsObject*>(parent); if (!gparent) return QDeclarativePrivate::IncompatibleParent; gobj->setParentItem(gparent); return QDeclarativePrivate::Parented; }