diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2015-10-11 14:21:13 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-10-11 10:31:25 -0700 |
commit | 11e38710e480fc735607dd1ae218a1c9dbc4135f (patch) | |
tree | 5ac2cab52b671ceb7253c6afc4c39ebe447987b4 /qt-ui | |
parent | f1b4fb21db82f99da24738cae8a4acb4b323765c (diff) | |
download | subsurface-11e38710e480fc735607dd1ae218a1c9dbc4135f.tar.gz |
profilewidget2: add resetZoom()
resetZoom() is now a new method that is called both
when 'printMode' is updated or when the dive is re-plotted.
Fixes a bug where zooming in on the profile and then
printing the dive has the profile at the wrong zoom level (makes
the profile look smaller).
Reported-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 16 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.h | 1 |
2 files changed, 12 insertions, 5 deletions
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index 5d2b507a0..ab9ae2c0d 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -477,6 +477,15 @@ void ProfileWidget2::setupSceneAndFlags() background->setFlag(QGraphicsItem::ItemIgnoresTransformations); } +void ProfileWidget2::resetZoom() +{ + if (!zoomLevel) + return; + const qreal defScale = 1.0 / qPow(zoomFactor, (qreal)zoomLevel); + scale(defScale, defScale); + zoomLevel = 0; +} + // Currently just one dive, but the plan is to enable All of the selected dives. void ProfileWidget2::plotDive(struct dive *d, bool force) { @@ -521,11 +530,7 @@ void ProfileWidget2::plotDive(struct dive *d, bool force) } // restore default zoom level - if (zoomLevel) { - const qreal defScale = 1.0 / qPow(zoomFactor, (qreal)zoomLevel); - scale(defScale, defScale); - zoomLevel = 0; - } + resetZoom(); // reset some item visibility on printMode changes toolTipItem->setVisible(!printMode); @@ -1473,6 +1478,7 @@ bool ProfileWidget2::getPrintMode() void ProfileWidget2::setPrintMode(bool mode, bool grayscale) { printMode = mode; + resetZoom(); isGrayscale = mode ? grayscale : false; mouseFollowerHorizontal->setVisible(!mode); mouseFollowerVertical->setVisible(!mode); diff --git a/qt-ui/profile/profilewidget2.h b/qt-ui/profile/profilewidget2.h index 7e038edc3..2d1a7bfb4 100644 --- a/qt-ui/profile/profilewidget2.h +++ b/qt-ui/profile/profilewidget2.h @@ -71,6 +71,7 @@ public: }; ProfileWidget2(QWidget *parent = 0); + void resetZoom(); void plotDive(struct dive *d = 0, bool force = false); virtual bool eventFilter(QObject *, QEvent *); void setupItem(AbstractProfilePolygonItem *item, DiveCartesianAxis *hAxis, DiveCartesianAxis *vAxis, DivePlotDataModel *model, int vData, int hData, int zValue); |