diff --git a/src/domain/UBGraphicsProxyWidget.cpp b/src/domain/UBGraphicsProxyWidget.cpp index 48242b99..5c811784 100644 --- a/src/domain/UBGraphicsProxyWidget.cpp +++ b/src/domain/UBGraphicsProxyWidget.cpp @@ -111,6 +111,16 @@ void UBGraphicsProxyWidget::wheelEvent(QGraphicsSceneWheelEvent *event) } } +void UBGraphicsProxyWidget::hoverEnterEvent(QGraphicsSceneHoverEvent *event) +{ + Q_UNUSED(event) +// NOOP +} +void UBGraphicsProxyWidget::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) +{ + Q_UNUSED(event) +// NOOP +} void UBGraphicsProxyWidget::setDelegate(UBGraphicsItemDelegate* pDelegate) { diff --git a/src/domain/UBGraphicsProxyWidget.h b/src/domain/UBGraphicsProxyWidget.h index 6faecb06..ae1e9692 100644 --- a/src/domain/UBGraphicsProxyWidget.h +++ b/src/domain/UBGraphicsProxyWidget.h @@ -51,6 +51,8 @@ class UBGraphicsProxyWidget: public QGraphicsProxyWidget, public UBItem, public virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); virtual void wheelEvent(QGraphicsSceneWheelEvent *event); + virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); + virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index aace8aa2..08ac72b1 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -78,6 +78,16 @@ void UBGraphicsWidgetItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) UBGraphicsProxyWidget::mouseReleaseEvent(event); } +void UBGraphicsWidgetItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) +{ + sendJSEnterEvent(); + UBGraphicsProxyWidget::hoverEnterEvent(event); +} +void UBGraphicsWidgetItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) +{ + sendJSLeaveEvent(); + UBGraphicsProxyWidget::hoverLeaveEvent(event); +} bool UBGraphicsWidgetItem::eventFilter(QObject *obj, QEvent *event) { @@ -247,6 +257,20 @@ void UBGraphicsWidgetItem::removeScript() mWebKitWidget->page()->mainFrame()->evaluateJavaScript("if(widget && widget.onremove) { widget.onremove();}"); } } +void UBGraphicsWidgetItem::sendJSEnterEvent() +{ + if (mWebKitWidget && mWebKitWidget->page() && mWebKitWidget->page()->mainFrame()) + { + mWebKitWidget->page()->mainFrame()->evaluateJavaScript("if(widget && widget.onenter) { widget.onenter();}"); + } +} +void UBGraphicsWidgetItem::sendJSLeaveEvent() +{ + if (mWebKitWidget && mWebKitWidget->page() && mWebKitWidget->page()->mainFrame()) + { + mWebKitWidget->page()->mainFrame()->evaluateJavaScript("if(widget && widget.onleave) { widget.onleave();}"); + } +} void UBGraphicsWidgetItem::clearSource() { diff --git a/src/domain/UBGraphicsWidgetItem.h b/src/domain/UBGraphicsWidgetItem.h index 26cbb3dc..9eba8d80 100644 --- a/src/domain/UBGraphicsWidgetItem.h +++ b/src/domain/UBGraphicsWidgetItem.h @@ -66,6 +66,7 @@ class UBGraphicsWidgetItem : public UBGraphicsProxyWidget virtual void remove(); void removeScript(); + QString downloadUrl(const QString &fileUrl, const QString &extention); QString downloadWeb(const QString &fileUrl); void processDropEvent(QDropEvent *event); @@ -77,13 +78,20 @@ class UBGraphicsWidgetItem : public UBGraphicsProxyWidget virtual void clearSource(); + protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); + virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); + virtual bool eventFilter(QObject *obj, QEvent *event); + virtual void sendJSEnterEvent(); + virtual void sendJSLeaveEvent(); + UBAbstractWidget* mWebKitWidget; QMap mPreferences;