diff options
author | Eike Ziller <eike.ziller@nokia.com> | 2011-12-09 07:39:20 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@nokia.com> | 2011-12-09 13:11:24 +0100 |
commit | 6acf123c6a00f900bd16ffc30612eec9e126b826 (patch) | |
tree | cbcd2a5893e88d5c9f5a087cf94db482ad10c0e5 /src/plugins/imageviewer/imageview.cpp | |
parent | 7ee895b6dd76079cb49bd7a8e17d293248e20113 (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.cpp | 11 |
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(); } |