diff options
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 3 | ||||
-rw-r--r-- | qt-ui/profile/ruleritem.cpp | 20 | ||||
-rw-r--r-- | qt-ui/profile/ruleritem.h | 5 |
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; |