summaryrefslogtreecommitdiffstats
path: root/qt-ui/profile
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2014-07-09 11:19:08 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-07-09 11:19:08 -0700
commit2d77788cb2fe293b72cff7f51a200d90c928dcea (patch)
tree37b7f4f9202430b0f2f04f8262a18ce7a69ddbeb /qt-ui/profile
parent99859d9a07d06ff080b52bfe5af1861d4ccfa6d3 (diff)
downloadsubsurface-2d77788cb2fe293b72cff7f51a200d90c928dcea.tar.gz
Printing: force redrawing of the profile
If the first dive we end up rendering is the dive currently shown, the info overlay would end up being printed which looks really silly. See #590 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/profile')
-rw-r--r--qt-ui/profile/profilewidget2.cpp12
-rw-r--r--qt-ui/profile/profilewidget2.h3
2 files changed, 5 insertions, 10 deletions
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index 9e37f9559..5b190dfba 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -69,7 +69,6 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) : QGraphicsView(parent),
backgroundFile(":poster"),
toolTipItem(new ToolTipItem()),
isPlotZoomed(prefs.zoomed_plot),
- forceReplot(false),
profileYAxis(new DepthAxis()),
gasYAxis(new PartialGasPressureAxis()),
temperatureAxis(new TemperatureAxis()),
@@ -254,8 +253,7 @@ void ProfileWidget2::setupItemOnScene()
void ProfileWidget2::replot()
{
dataModel->clear();
- forceReplot = true;
- plotDive(); // simply plot the displayed_dive again
+ plotDive(0, true); // simply plot the displayed_dive again
}
void ProfileWidget2::setupItemSizes()
@@ -354,7 +352,7 @@ void ProfileWidget2::setupSceneAndFlags()
}
// Currently just one dive, but the plan is to enable All of the selected dives.
-void ProfileWidget2::plotDive(struct dive *d)
+void ProfileWidget2::plotDive(struct dive *d, bool force)
{
static bool firstCall = true;
QTime measureDuration; // let's measure how long this takes us (maybe we'll turn of TTL calculation later
@@ -371,11 +369,9 @@ void ProfileWidget2::plotDive(struct dive *d)
// computer of the same dive, so we check the unique id of the dive
// and the selected dive computer number against the ones we are
// showing (can't compare the dive pointers as those might change).
- if (d->id == displayed_dive.id && dc_number == dataModel->dcShown() && !forceReplot)
+ if (d->id == displayed_dive.id && dc_number == dataModel->dcShown() && !force)
return;
- forceReplot = false;
-
// this copies the dive and makes copies of all the relevant additional data
copy_dive(d, &displayed_dive);
} else {
@@ -961,7 +957,7 @@ void ProfileWidget2::deleteCurrentDC()
delete_current_divecomputer();
mark_divelist_changed(true);
// we need to force it since it's likely the same dive and same dc_number - but that's a different dive computer now
- forceReplot = true;
+ MainWindow::instance()->graphics()->plotDive(0, true);
MainWindow::instance()->refreshDisplay();
}
diff --git a/qt-ui/profile/profilewidget2.h b/qt-ui/profile/profilewidget2.h
index 6ed132b38..2d9e921f0 100644
--- a/qt-ui/profile/profilewidget2.h
+++ b/qt-ui/profile/profilewidget2.h
@@ -67,7 +67,7 @@ public:
};
ProfileWidget2(QWidget *parent = 0);
- void plotDive(struct dive *d = 0);
+ 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);
void setPrintMode(bool mode, bool grayscale = false);
@@ -135,7 +135,6 @@ private:
QString backgroundFile;
ToolTipItem *toolTipItem;
bool isPlotZoomed;
- bool forceReplot;
// All those here should probably be merged into one structure,
// So it's esyer to replicate for more dives later.
// In the meantime, keep it here.