summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2015-10-11 14:21:13 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-11 10:31:25 -0700
commit11e38710e480fc735607dd1ae218a1c9dbc4135f (patch)
tree5ac2cab52b671ceb7253c6afc4c39ebe447987b4 /qt-ui
parentf1b4fb21db82f99da24738cae8a4acb4b323765c (diff)
downloadsubsurface-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.cpp16
-rw-r--r--qt-ui/profile/profilewidget2.h1
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);