Added the code to set the Depth / Time on the user Handlers.

Added the code to set the Depth / Time on the user handlers,
I think this finishes the difficult part. ( well, not really )
the depth and time is being set when handler is added or moved,
but as soon as the deco calculations enters on the code, the
handlers will need to be repositioned - and this code is not ready
yet.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
Tomaz Canabrava 2013-06-20 17:34:42 -03:00
parent f129024fc7
commit 2d683b66a8
2 changed files with 31 additions and 1 deletions

View file

@ -74,6 +74,18 @@ void DivePlanner::mouseDoubleClickEvent(QMouseEvent* event)
scene()->addItem(line);
create_deco_stop();
}
item->setTime(timeLine->valueAt(mappedPos));
item->setDepth(depthLine->valueAt(mappedPos));
}
void DiveHandler::setDepth(qreal d)
{
depth = d;
}
void DiveHandler::setTime(qreal t)
{
time =t;
}
void DivePlanner::clear_generated_deco()
@ -200,8 +212,12 @@ void DivePlanner::mousePressEvent(QMouseEvent* event)
void DivePlanner::mouseReleaseEvent(QMouseEvent* event)
{
if (activeDraggedHandler)
if (activeDraggedHandler){
QPointF mappedPos = mapToScene(event->pos());
activeDraggedHandler ->setTime(timeLine->valueAt(mappedPos));
activeDraggedHandler ->setDepth(depthLine->valueAt(mappedPos));
activeDraggedHandler = 0;
}
}
DiveHandler::DiveHandler(): QGraphicsEllipseItem(), from(0), to(0)
@ -251,3 +267,11 @@ void Ruler::setTickInterval(double i)
{
interval = i;
}
qreal Ruler::valueAt(const QPointF& p)
{
QLineF m = line();
return orientation == Qt::Horizontal
? max * (p.x() - m.x1()) / (m.x2() - m.x1())
: max * (p.y() - m.y1()) / (m.y2() - m.y1());
}

View file

@ -7,9 +7,14 @@
class DiveHandler : public QGraphicsEllipseItem{
public:
DiveHandler();
void setTime(qreal t);
void setDepth(qreal d);
QGraphicsLineItem *from;
QGraphicsLineItem *to;
private:
qreal time;
qreal depth;
};
class Ruler : public QGraphicsLineItem{
@ -20,6 +25,7 @@ public:
void setTickInterval(double interval);
void setOrientation(Qt::Orientation orientation);
void updateTicks();
qreal valueAt(const QPointF& p);
private:
Qt::Orientation orientation;