QGraphicsProxyWidget *QWidgetProto::graphicsProxyWidget() const { QWidget *item = qscriptvalue_cast<QWidget*>(thisObject()); if (item) return item->graphicsProxyWidget(); return 0; }
void OverlayEditorScene::updateCursorShape(const QPointF &point) { Qt::CursorShape cs; if (qgriSelected->isVisible()) { wfsHover = rectSection(qgriSelected->rect(), point); } else { wfsHover = Qt::NoSection; } switch (wfsHover) { case Qt::TopLeftSection: case Qt::BottomRightSection: cs = Qt::SizeFDiagCursor; break; case Qt::TopRightSection: case Qt::BottomLeftSection: cs = Qt::SizeBDiagCursor; break; case Qt::TopSection: case Qt::BottomSection: cs = Qt::SizeVerCursor; break; case Qt::LeftSection: case Qt::RightSection: cs = Qt::SizeHorCursor; break; case Qt::TitleBarArea: cs = Qt::OpenHandCursor; break; default: cs = Qt::ArrowCursor; break; } foreach(QGraphicsView *v, views()) { if (v->viewport()->cursor().shape() != cs) { v->viewport()->setCursor(cs); // But an embedded, injected GraphicsView doesn't propagage mouse cursors... QWidget *p = v->parentWidget(); if (p) { QGraphicsProxyWidget *qgpw = p->graphicsProxyWidget(); if (qgpw) { qgpw->setCursor(cs); if (g.ocIntercept) g.ocIntercept->updateMouse(); } } } } }