aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/profile/profilewidget2.cpp3
-rw-r--r--qt-ui/profile/ruleritem.cpp20
-rw-r--r--qt-ui/profile/ruleritem.h5
3 files changed, 18 insertions, 10 deletions
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index 1cbc6c1a5..67d857ce2 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -365,7 +365,6 @@ void ProfileWidget2::plotDives(QList<dive *> dives)
heartBeatAxis->setVisible(false);
}
timeAxis->setMaximum(maxtime);
- rulerItem->setPlotInfo(pInfo);
int i, incr;
static int increments[8] = { 10, 20, 30, 60, 5 * 60, 10 * 60, 15 * 60, 30 * 60 };
/* Time markers: at most every 10 seconds, but no more than 12 markers.
@@ -385,6 +384,8 @@ void ProfileWidget2::plotDives(QList<dive *> dives)
timeAxis->updateTicks();
cylinderPressureAxis->setMinimum(pInfo.minpressure);
cylinderPressureAxis->setMaximum(pInfo.maxpressure);
+
+ rulerItem->setPlotInfo(pInfo);
meanDepth->setMeanDepth(pInfo.meandepth);
meanDepth->setLine(0, 0, timeAxis->posAtValue(d->duration.seconds), 0);
meanDepth->animateMoveTo(3, profileYAxis->posAtValue(pInfo.meandepth));
diff --git a/qt-ui/profile/ruleritem.cpp b/qt-ui/profile/ruleritem.cpp
index 042742a23..a21a9a04a 100644
--- a/qt-ui/profile/ruleritem.cpp
+++ b/qt-ui/profile/ruleritem.cpp
@@ -13,8 +13,9 @@
#include "profile.h"
#include "display.h"
-RulerNodeItem2::RulerNodeItem2(struct plot_info &info) : pInfo(info), entry(NULL), ruler(NULL)
+RulerNodeItem2::RulerNodeItem2() : entry(NULL), ruler(NULL)
{
+ memset(&pInfo, 0, sizeof(pInfo));
setRect(QRect(QPoint(-8, 8), QPoint(8, -8)));
setBrush(QColor(0xff, 0, 0, 127));
setPen(QColor("#FF0000"));
@@ -23,6 +24,12 @@ RulerNodeItem2::RulerNodeItem2(struct plot_info &info) : pInfo(info), entry(NULL
setFlag(ItemIgnoresTransformations);
}
+void RulerNodeItem2::setPlotInfo(plot_info& info)
+{
+ pInfo = info;
+ entry = pInfo.entry;
+}
+
void RulerNodeItem2::setRuler(RulerItem2 *r)
{
ruler = r;
@@ -54,17 +61,14 @@ QVariant RulerNodeItem2::itemChange(GraphicsItemChange change, const QVariant &v
recalculate();
if (ruler != NULL)
ruler->recalculate();
- if (scene()) {
- scene()->update();
- }
}
return QGraphicsEllipseItem::itemChange(change, value);
}
RulerItem2::RulerItem2() : timeAxis(NULL),
depthAxis(NULL),
- source(new RulerNodeItem2(pInfo)),
- dest(new RulerNodeItem2(pInfo)),
+ source(new RulerNodeItem2()),
+ dest(new RulerNodeItem2()),
textItem(new QGraphicsSimpleTextItem(this))
{
memset(&pInfo, 0, sizeof(pInfo));
@@ -157,9 +161,11 @@ QPainterPath RulerItem2::shape() const
void RulerItem2::setPlotInfo(plot_info info)
{
pInfo = info;
- recalculate();
+ dest->setPlotInfo(info);
+ source->setPlotInfo(info);
dest->recalculate();
source->recalculate();
+ recalculate();
}
void RulerItem2::setAxis(DiveCartesianAxis *time, DiveCartesianAxis *depth)
diff --git a/qt-ui/profile/ruleritem.h b/qt-ui/profile/ruleritem.h
index f2ff61c09..61eda1ed3 100644
--- a/qt-ui/profile/ruleritem.h
+++ b/qt-ui/profile/ruleritem.h
@@ -15,15 +15,16 @@ class RulerNodeItem2 : public QObject, public QGraphicsEllipseItem {
friend class RulerItem2;
public:
- explicit RulerNodeItem2(struct plot_info &info);
+ explicit RulerNodeItem2();
void setRuler(RulerItem2 *r);
+ void setPlotInfo(struct plot_info& info);
void recalculate();
protected:
QVariant itemChange(GraphicsItemChange change, const QVariant &value);
private:
- struct plot_info &pInfo;
+ struct plot_info pInfo;
struct plot_data *entry;
RulerItem2 *ruler;
DiveCartesianAxis *timeAxis;