aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/imageviewer/imageview.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@nokia.com>2011-12-09 07:39:20 +0100
committerEike Ziller <eike.ziller@nokia.com>2011-12-09 13:11:24 +0100
commit6acf123c6a00f900bd16ffc30612eec9e126b826 (patch)
treecbcd2a5893e88d5c9f5a087cf94db482ad10c0e5 /src/plugins/imageviewer/imageview.cpp
parent7ee895b6dd76079cb49bd7a8e17d293248e20113 (diff)
Restrict image viewer scaling to something reasonable.
Task-number: QTCREATORBUG-4383 Change-Id: Iba7925b6ae62346b25e2eaa9c3da26b2a7cf08ec Reviewed-by: Denis Mingulov <denis@mingulov.com> Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
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();
}