From 75a4acaea7e1c46af8c7578ecb831a4fd06cfd6e Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Wed, 2 Dec 2015 21:33:42 +0200 Subject: [PATCH 1/3] Resolved Issue #272. Show that user can move workpiece. --HG-- branch : feature --- src/libs/vtools/tools/vtooldetail.cpp | 16 ++++++++++++++++ src/libs/vtools/tools/vtooldetail.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/src/libs/vtools/tools/vtooldetail.cpp b/src/libs/vtools/tools/vtooldetail.cpp index 07936d6da..63d7fc44f 100644 --- a/src/libs/vtools/tools/vtooldetail.cpp +++ b/src/libs/vtools/tools/vtooldetail.cpp @@ -113,6 +113,7 @@ VToolDetail::VToolDetail(VAbstractPattern *doc, VContainer *data, const quint32 qApp->getUndoStack()->endMacro(); } } + setAcceptHoverEvents(true); } //--------------------------------------------------------------------------------------------------------------------- @@ -405,6 +406,21 @@ void VToolDetail::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) QGraphicsItem::mouseReleaseEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void VToolDetail::hoverEnterEvent(QGraphicsSceneHoverEvent *event) +{ + Q_UNUSED(event); + QApplication::setOverrideCursor(QCursor(cursorArrowOpenHand, 1, 1)); +} + +////--------------------------------------------------------------------------------------------------------------------- +void VToolDetail::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) +{ + Q_UNUSED(event); + //Disable cursor-arrow-openhand + QApplication::restoreOverrideCursor(); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief contextMenuEvent handle context menu events. diff --git a/src/libs/vtools/tools/vtooldetail.h b/src/libs/vtools/tools/vtooldetail.h index 6491b0fb5..3c84648f5 100644 --- a/src/libs/vtools/tools/vtooldetail.h +++ b/src/libs/vtools/tools/vtooldetail.h @@ -94,10 +94,13 @@ protected: virtual void RefreshDataInFile() Q_DECL_OVERRIDE; virtual QVariant itemChange ( GraphicsItemChange change, const QVariant &value ) Q_DECL_OVERRIDE; virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) Q_DECL_OVERRIDE; + virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; + virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ) Q_DECL_OVERRIDE; virtual void RemoveReferens() Q_DECL_OVERRIDE; virtual void keyReleaseEvent(QKeyEvent * event) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE {} + private: Q_DISABLE_COPY(VToolDetail) /** @brief dialog dialog options. */ From dfa46dc1cd97a5074258ae6892b8420810795a0c Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Wed, 2 Dec 2015 23:07:23 +0200 Subject: [PATCH 2/3] Added mousePressEvent and changed QApplication::setOverrideCursor to SetOverrideCursor --HG-- branch : feature --- src/libs/vtools/tools/vtooldetail.cpp | 20 ++++++++++++++++++-- src/libs/vtools/tools/vtooldetail.h | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/libs/vtools/tools/vtooldetail.cpp b/src/libs/vtools/tools/vtooldetail.cpp index 63d7fc44f..e590b48d9 100644 --- a/src/libs/vtools/tools/vtooldetail.cpp +++ b/src/libs/vtools/tools/vtooldetail.cpp @@ -392,6 +392,20 @@ void VToolDetail::keyReleaseEvent(QKeyEvent *event) QGraphicsItem::keyReleaseEvent ( event ); } +//--------------------------------------------------------------------------------------------------------------------- +void VToolDetail::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + if (flags() & QGraphicsItem::ItemIsMovable) + { + if (event->button() == Qt::LeftButton && event->type() != QEvent::GraphicsSceneMouseDoubleClick) + { + SetOverrideCursor(cursorArrowCloseHand, 1, 1); + event->accept(); + } + } + QGraphicsPathItem::mousePressEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief mouseReleaseEvent handle mouse release events. @@ -402,6 +416,8 @@ void VToolDetail::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) if (event->button() == Qt::LeftButton) { emit ChoosedTool(id, SceneObject::Detail); + //Disable cursor-arrow-closehand + RestoreOverrideCursor(cursorArrowCloseHand); } QGraphicsItem::mouseReleaseEvent(event); } @@ -410,7 +426,7 @@ void VToolDetail::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) void VToolDetail::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event); - QApplication::setOverrideCursor(QCursor(cursorArrowOpenHand, 1, 1)); + SetOverrideCursor(cursorArrowOpenHand, 1, 1); } ////--------------------------------------------------------------------------------------------------------------------- @@ -418,7 +434,7 @@ void VToolDetail::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event); //Disable cursor-arrow-openhand - QApplication::restoreOverrideCursor(); + RestoreOverrideCursor(cursorArrowOpenHand); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/tools/vtooldetail.h b/src/libs/vtools/tools/vtooldetail.h index 3c84648f5..bb94984d0 100644 --- a/src/libs/vtools/tools/vtooldetail.h +++ b/src/libs/vtools/tools/vtooldetail.h @@ -93,6 +93,7 @@ protected: virtual void AddToFile () Q_DECL_OVERRIDE; virtual void RefreshDataInFile() Q_DECL_OVERRIDE; virtual QVariant itemChange ( GraphicsItemChange change, const QVariant &value ) Q_DECL_OVERRIDE; + virtual void mousePressEvent( QGraphicsSceneMouseEvent * event) Q_DECL_OVERRIDE; virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) Q_DECL_OVERRIDE; virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; @@ -100,7 +101,6 @@ protected: virtual void RemoveReferens() Q_DECL_OVERRIDE; virtual void keyReleaseEvent(QKeyEvent * event) Q_DECL_OVERRIDE; virtual void SetVisualization() Q_DECL_OVERRIDE {} - private: Q_DISABLE_COPY(VToolDetail) /** @brief dialog dialog options. */ From 178419742a618115bb3715d011838329f43027a4 Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Sun, 6 Dec 2015 18:20:37 +0200 Subject: [PATCH 3/3] Added hoverMoveEvent. The cursor should not be changed to arrow until we leave the detail area --HG-- branch : feature --- src/libs/vtools/tools/vtooldetail.cpp | 7 +++++++ src/libs/vtools/tools/vtooldetail.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/libs/vtools/tools/vtooldetail.cpp b/src/libs/vtools/tools/vtooldetail.cpp index e590b48d9..8bdd1cc30 100644 --- a/src/libs/vtools/tools/vtooldetail.cpp +++ b/src/libs/vtools/tools/vtooldetail.cpp @@ -422,6 +422,13 @@ void VToolDetail::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) QGraphicsItem::mouseReleaseEvent(event); } +//--------------------------------------------------------------------------------------------------------------------- +void VToolDetail::hoverMoveEvent(QGraphicsSceneHoverEvent *event) +{ + Q_UNUSED(event); + SetOverrideCursor(cursorArrowOpenHand, 1, 1); +} + //--------------------------------------------------------------------------------------------------------------------- void VToolDetail::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { diff --git a/src/libs/vtools/tools/vtooldetail.h b/src/libs/vtools/tools/vtooldetail.h index bb94984d0..f9f60740b 100644 --- a/src/libs/vtools/tools/vtooldetail.h +++ b/src/libs/vtools/tools/vtooldetail.h @@ -95,6 +95,7 @@ protected: virtual QVariant itemChange ( GraphicsItemChange change, const QVariant &value ) Q_DECL_OVERRIDE; virtual void mousePressEvent( QGraphicsSceneMouseEvent * event) Q_DECL_OVERRIDE; virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ) Q_DECL_OVERRIDE; + virtual void hoverMoveEvent( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ) Q_DECL_OVERRIDE; virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ) Q_DECL_OVERRIDE;