mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
f129024fc7
commit
2d683b66a8
2 changed files with 31 additions and 1 deletions
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue