diff --git a/lib/crop/croptool.h b/lib/crop/croptool.h --- a/lib/crop/croptool.h +++ b/lib/crop/croptool.h @@ -55,6 +55,7 @@ void mousePressEvent(QGraphicsSceneMouseEvent*) override; void mouseMoveEvent(QGraphicsSceneMouseEvent*) override; void mouseReleaseEvent(QGraphicsSceneMouseEvent*) override; + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) override; void hoverMoveEvent(QGraphicsSceneHoverEvent*) override; void keyPressEvent(QKeyEvent*) override; diff --git a/lib/crop/croptool.cpp b/lib/crop/croptool.cpp --- a/lib/crop/croptool.cpp +++ b/lib/crop/croptool.cpp @@ -402,6 +402,16 @@ imageView()->update(); } +void CropTool::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) +{ + if (event->buttons() != Qt::LeftButton || d->handleAt(event->pos()) == CH_None) { + event->ignore(); + return; + } + event->accept(); + d->mCropWidget->findChild()->accepted(); +} + void CropTool::hoverMoveEvent(QGraphicsSceneHoverEvent* event) { event->accept(); diff --git a/lib/documentview/abstractrasterimageviewtool.h b/lib/documentview/abstractrasterimageviewtool.h --- a/lib/documentview/abstractrasterimageviewtool.h +++ b/lib/documentview/abstractrasterimageviewtool.h @@ -60,6 +60,7 @@ {} virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent*) {} + virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent*) {} virtual void wheelEvent(QGraphicsSceneWheelEvent* event); diff --git a/lib/documentview/abstractrasterimageviewtool.cpp b/lib/documentview/abstractrasterimageviewtool.cpp --- a/lib/documentview/abstractrasterimageviewtool.cpp +++ b/lib/documentview/abstractrasterimageviewtool.cpp @@ -54,6 +54,11 @@ return d->mRasterImageView; } +void AbstractRasterImageViewTool::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) +{ + event->ignore(); +} + void AbstractRasterImageViewTool::wheelEvent(QGraphicsSceneWheelEvent* event) { event->ignore(); diff --git a/lib/documentview/rasterimageview.h b/lib/documentview/rasterimageview.h --- a/lib/documentview/rasterimageview.h +++ b/lib/documentview/rasterimageview.h @@ -64,6 +64,7 @@ void onScrollPosChanged(const QPointF& oldPos) override; void resizeEvent(QGraphicsSceneResizeEvent* event) override; void mousePressEvent(QGraphicsSceneMouseEvent* event) override; + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) override; void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override; void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override; void wheelEvent(QGraphicsSceneWheelEvent* event) override; diff --git a/lib/documentview/rasterimageview.cpp b/lib/documentview/rasterimageview.cpp --- a/lib/documentview/rasterimageview.cpp +++ b/lib/documentview/rasterimageview.cpp @@ -492,6 +492,17 @@ AbstractImageView::mousePressEvent(event); } +void RasterImageView::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) +{ + if (d->mTool) { + d->mTool.data()->mouseDoubleClickEvent(event); + if (event->isAccepted()) { + return; + } + } + AbstractImageView::mouseDoubleClickEvent(event); +} + void RasterImageView::mouseMoveEvent(QGraphicsSceneMouseEvent* event) { if (d->mTool) { diff --git a/lib/redeyereduction/redeyereductiontool.h b/lib/redeyereduction/redeyereductiontool.h --- a/lib/redeyereduction/redeyereductiontool.h +++ b/lib/redeyereduction/redeyereductiontool.h @@ -54,6 +54,7 @@ void mousePressEvent(QGraphicsSceneMouseEvent*) override; void mouseMoveEvent(QGraphicsSceneMouseEvent*) override; void mouseReleaseEvent(QGraphicsSceneMouseEvent*) override; + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) override; void keyPressEvent(QKeyEvent*) override; void toolActivated() override; diff --git a/lib/redeyereduction/redeyereductiontool.cpp b/lib/redeyereduction/redeyereductiontool.cpp --- a/lib/redeyereduction/redeyereductiontool.cpp +++ b/lib/redeyereduction/redeyereductiontool.cpp @@ -164,6 +164,16 @@ event->accept(); } +void RedEyeReductionTool::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) +{ + if (event->buttons() != Qt::LeftButton) { + event->ignore(); + return; + } + event->accept(); + d->mToolWidget->dialogButtonBox->accepted(); +} + void RedEyeReductionTool::keyPressEvent(QKeyEvent* event) { QDialogButtonBox *buttons = d->mToolWidget->findChild(); diff --git a/lib/redeyereduction/redeyereductionwidget.ui b/lib/redeyereduction/redeyereductionwidget.ui --- a/lib/redeyereduction/redeyereductionwidget.ui +++ b/lib/redeyereduction/redeyereductionwidget.ui @@ -6,7 +6,7 @@ 0 0 - 405 + 638 56 @@ -61,7 +61,7 @@ - Click on the red eye you want to fix + Click on a red eye and choose a size, or double-click to correct instantly.