mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Re-enable dive computer selectiom
This had been disabled by some redraw optimizations in commit 81406b80c6ec ("Fix loading a second dive, after the first file was loaded."). We need to redraw the plot not only if the dive changed but also if the selected divecomputer changed. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
33135e37a5
commit
7757363953
2 changed files with 9 additions and 7 deletions
|
@ -114,7 +114,7 @@ extern struct ev_select *ev_namelist;
|
||||||
extern int evn_allocated;
|
extern int evn_allocated;
|
||||||
extern int evn_used;
|
extern int evn_used;
|
||||||
|
|
||||||
ProfileGraphicsView::ProfileGraphicsView(QWidget* parent) : QGraphicsView(parent), toolTip(0) , dive(0)
|
ProfileGraphicsView::ProfileGraphicsView(QWidget* parent) : QGraphicsView(parent), toolTip(0) , dive(0), diveDC(0)
|
||||||
{
|
{
|
||||||
gc.printer = false;
|
gc.printer = false;
|
||||||
setScene(new QGraphicsScene());
|
setScene(new QGraphicsScene());
|
||||||
|
@ -222,11 +222,17 @@ void ProfileGraphicsView::clear()
|
||||||
|
|
||||||
void ProfileGraphicsView::plot(struct dive *d)
|
void ProfileGraphicsView::plot(struct dive *d)
|
||||||
{
|
{
|
||||||
if (dive == d)
|
struct divecomputer *dc;
|
||||||
|
|
||||||
|
if (d)
|
||||||
|
dc = select_dc(&d->dc);
|
||||||
|
|
||||||
|
if (dive == d && (d && dc == diveDC))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
clear();
|
clear();
|
||||||
dive = d;
|
dive = d;
|
||||||
|
diveDC = d ? dc : NULL;
|
||||||
|
|
||||||
if(!isVisible() || !dive){
|
if(!isVisible() || !dive){
|
||||||
return;
|
return;
|
||||||
|
@ -244,9 +250,6 @@ void ProfileGraphicsView::plot(struct dive *d)
|
||||||
|
|
||||||
scene()->addItem(toolTip);
|
scene()->addItem(toolTip);
|
||||||
|
|
||||||
struct divecomputer *dc = &dive->dc;
|
|
||||||
|
|
||||||
|
|
||||||
// Fix this for printing / screen later.
|
// Fix this for printing / screen later.
|
||||||
// plot_set_scale(scale_mode_t);
|
// plot_set_scale(scale_mode_t);
|
||||||
|
|
||||||
|
@ -283,8 +286,6 @@ void ProfileGraphicsView::plot(struct dive *d)
|
||||||
gc.maxx = (profile_grid_area.width() - 2 * profile_grid_area.x());
|
gc.maxx = (profile_grid_area.width() - 2 * profile_grid_area.x());
|
||||||
gc.maxy = (profile_grid_area.height() - 2 * profile_grid_area.y());
|
gc.maxy = (profile_grid_area.height() - 2 * profile_grid_area.y());
|
||||||
|
|
||||||
dc = select_dc(dc);
|
|
||||||
|
|
||||||
/* This is per-dive-computer. Right now we just do the first one */
|
/* This is per-dive-computer. Right now we just do the first one */
|
||||||
gc.pi = *create_plot_info(dive, dc, &gc);
|
gc.pi = *create_plot_info(dive, dc, &gc);
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,7 @@ private:
|
||||||
ToolTipItem *toolTip;
|
ToolTipItem *toolTip;
|
||||||
graphics_context gc;
|
graphics_context gc;
|
||||||
struct dive *dive;
|
struct dive *dive;
|
||||||
|
struct divecomputer *diveDC;
|
||||||
int zoomLevel;
|
int zoomLevel;
|
||||||
|
|
||||||
// Top Level Items.
|
// Top Level Items.
|
||||||
|
|
Loading…
Add table
Reference in a new issue