diff --git a/libs/widgets/image_view.cpp b/libs/widgets/image_view.cpp index 21cfd61..13522fe 100644 --- a/libs/widgets/image_view.cpp +++ b/libs/widgets/image_view.cpp @@ -110,6 +110,12 @@ void ImageView::mouseMoveEvent(QMouseEvent * e) { } +void ImageView::mouseReleaseEvent(QMouseEvent * e) { + QGraphicsView::mouseReleaseEvent(e); + emit released(mapToScene(e->pos()), e->buttons()); +} + + void ImageView::wheelEvent(QWheelEvent * e) { if (!e->modifiers().testFlag(Qt::ControlModifier) || !viewInteractive()) return; double scl = 1. + e->angleDelta().y() / 500.; diff --git a/libs/widgets/image_view.h b/libs/widgets/image_view.h index c1a2664..6d58439 100644 --- a/libs/widgets/image_view.h +++ b/libs/widgets/image_view.h @@ -56,11 +56,13 @@ public slots: signals: void clicked(QPointF, Qt::MouseButtons); void hovered(QPointF, Qt::MouseButtons); + void released(QPointF, Qt::MouseButtons); private: void mouseDoubleClickEvent(QMouseEvent *) override; void mousePressEvent(QMouseEvent * e) override; void mouseMoveEvent(QMouseEvent * e) override; + void mouseReleaseEvent(QMouseEvent * e) override; void wheelEvent(QWheelEvent * e) override; bool eventFilter(QObject * o, QEvent * e) override; void adjustView();