diff options
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/diveplanner.cpp | 19 | ||||
-rw-r--r-- | qt-ui/diveplanner.h | 11 |
2 files changed, 23 insertions, 7 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index fc5b701a7..07f195120 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -33,23 +33,25 @@ void DivePlanner::mouseDoubleClickEvent(QMouseEvent* event) return; } - QGraphicsEllipseItem *item = new QGraphicsEllipseItem(-5,-5,10,10); + DiveHandler *item = new DiveHandler (); + item->setRect(-5,-5,10,10); item->setFlag(QGraphicsItem::ItemIgnoresTransformations); - - item->setPos( mappedPos ); scene()->addItem(item); handles << item; if (lines.empty()){ QGraphicsLineItem *first = new QGraphicsLineItem(0,0, mappedPos.x(), mappedPos.y()); + item->from = first; lines.push_back(first); create_deco_stop(); scene()->addItem(first); }else{ clear_generated_deco(); - QGraphicsEllipseItem *prevHandle = handles.at( handles.count()-2); + DiveHandler *prevHandle = handles.at( handles.count()-2); QGraphicsLineItem *line = new QGraphicsLineItem(prevHandle->x(), prevHandle->y(), item->x(), item->y()); + prevHandle->to = line; + item->from = line; lines.push_back(line); scene()->addItem(line); create_deco_stop(); @@ -68,7 +70,8 @@ void DivePlanner::clear_generated_deco() void DivePlanner::create_deco_stop() { // this needs to create everything - // for the calculated deco. + // for the calculated deco. it should return the *first* + // line that's calculated, so the QGraphicsLineItem *item = new QGraphicsLineItem(handles.last()->x(), handles.last()->y(), 100, 0); scene()->addItem(item); lines << item; @@ -118,3 +121,9 @@ bool DivePlanner::isPointOutOfBoundaries(QPointF point) } return false; } + + + +DiveHandler::DiveHandler(): QGraphicsEllipseItem(), from(0), to(0) +{ +} diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h index 7dca3bb85..33f647fe6 100644 --- a/qt-ui/diveplanner.h +++ b/qt-ui/diveplanner.h @@ -4,6 +4,13 @@ #include <QGraphicsView> #include <QGraphicsPathItem> +class DiveHandler : public QGraphicsEllipseItem{ +public: + DiveHandler(); + + QGraphicsLineItem *from; + QGraphicsLineItem *to; +}; class DivePlanner : public QGraphicsView { Q_OBJECT public: @@ -16,11 +23,11 @@ protected: void clear_generated_deco(); void create_deco_stop(); bool isPointOutOfBoundaries(QPointF point); - + private: DivePlanner(QWidget* parent = 0); QList<QGraphicsLineItem*> lines; - QList<QGraphicsEllipseItem*> handles; + QList<DiveHandler *> handles; QGraphicsLineItem *verticalLine; QGraphicsLineItem *horizontalLine; }; |