aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/imageviewer/imageview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/imageviewer/imageview.cpp')
-rw-r--r--src/plugins/imageviewer/imageview.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/imageviewer/imageview.cpp b/src/plugins/imageviewer/imageview.cpp
index 8001780f5a9..6aba7989fb6 100644
--- a/src/plugins/imageviewer/imageview.cpp
+++ b/src/plugins/imageviewer/imageview.cpp
@@ -190,7 +190,16 @@ void ImageView::setViewOutline(bool enable)
void ImageView::doScale(qreal factor)
{
- scale(factor, factor);
+ qreal currentScale = transform().m11();
+ qreal newScale = currentScale * factor;
+ qreal actualFactor = factor;
+ // cap to 0.001 - 1000
+ if (newScale > 1000)
+ actualFactor = 1000./currentScale;
+ else if (newScale < 0.001)
+ actualFactor = 0.001/currentScale;
+
+ scale(actualFactor, actualFactor);
emitScaleFactor();
}