aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/profile
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-06-01 19:27:44 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-06-01 15:42:32 -0700
commit57d3baa410743154fefa1e40d991e24bc594f17a (patch)
treeccfcfbd8c51601c2bfb55c05475ef6c2088a4128 /qt-ui/profile
parent59785345f808f0c53c085be896f60e10455cc52f (diff)
downloadsubsurface-57d3baa410743154fefa1e40d991e24bc594f17a.tar.gz
Simplify ruler update code.
This should fix the infinite recursion on OSX and also clean a lot of code, which is also very nice. <3 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/profile')
-rw-r--r--qt-ui/profile/ruleritem.cpp21
-rw-r--r--qt-ui/profile/ruleritem.h3
2 files changed, 6 insertions, 18 deletions
diff --git a/qt-ui/profile/ruleritem.cpp b/qt-ui/profile/ruleritem.cpp
index 295d81213..0bf97f947 100644
--- a/qt-ui/profile/ruleritem.cpp
+++ b/qt-ui/profile/ruleritem.cpp
@@ -9,6 +9,7 @@
#include <QPainter>
#include <QGraphicsScene>
#include <QGraphicsView>
+#include <qgraphicssceneevent.h>
#include <QDebug>
#include <stdint.h>
@@ -58,23 +59,11 @@ void RulerNodeItem2::recalculate()
}
}
-QVariant RulerNodeItem2::itemChange(GraphicsItemChange change, const QVariant &value)
+void RulerNodeItem2::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
- // only run this if we actually have a ruler and are not adding or planning a dive
- ProfileWidget2 *profWidget = NULL;
- if (scene() && scene()->views().count())
- profWidget = qobject_cast<ProfileWidget2 *>(scene()->views().first());
- if (ruler &&
- profWidget &&
- !profWidget->isAddOrPlanner() &&
- change == ItemPositionHasChanged) {
- recalculate();
- ruler->recalculate();
- } else {
- if (profWidget && profWidget->isAddOrPlanner())
- qDebug() << "don't recalc ruler on Add/Plan";
- }
- return QGraphicsEllipseItem::itemChange(change, value);
+ setPos(event->scenePos());
+ recalculate();
+ ruler->recalculate();
}
RulerItem2::RulerItem2() : source(new RulerNodeItem2()),
diff --git a/qt-ui/profile/ruleritem.h b/qt-ui/profile/ruleritem.h
index 3eda33225..5d144f286 100644
--- a/qt-ui/profile/ruleritem.h
+++ b/qt-ui/profile/ruleritem.h
@@ -21,8 +21,7 @@ public:
void recalculate();
protected:
- QVariant itemChange(GraphicsItemChange change, const QVariant &value);
-
+ virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
private:
struct plot_info pInfo;
struct plot_data *entry;