summaryrefslogtreecommitdiffstats
path: root/qt-ui/diveplanner.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/diveplanner.cpp')
-rw-r--r--qt-ui/diveplanner.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 21d9aa236..f0dad6ca4 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -675,9 +675,25 @@ DiveHandler::DiveHandler(): QGraphicsEllipseItem()
setZValue(2);
}
+int DiveHandler::parentIndex()
+{
+ DivePlannerGraphics *view = qobject_cast<DivePlannerGraphics*>(scene()->views().first());
+ return view->handles.indexOf(this);
+}
+
void DiveHandler::contextMenuEvent(QGraphicsSceneContextMenuEvent* event)
{
QMenu m;
+ GasSelectionModel *model = GasSelectionModel::instance();
+ model->repopulate();
+ int rowCount = model->rowCount();
+ for(int i = 0; i < rowCount; i++){
+ QAction *action = new QAction(&m);
+ action->setText( model->data(model->index(i, 0),Qt::DisplayRole).toString());
+ connect(action, SIGNAL(triggered(bool)), this, SLOT(changeGas()));
+ m.addAction(action);
+ }
+ m.addSeparator();
m.addAction(QObject::tr("Remove this Point"), this, SLOT(selfRemove()));
m.exec(event->screenPos());
}
@@ -689,6 +705,13 @@ void DiveHandler::selfRemove()
view->keyDeleteAction();
}
+void DiveHandler::changeGas()
+{
+ QAction *action = qobject_cast<QAction*>(sender());
+ QModelIndex index = plannerModel->index(parentIndex(), DivePlannerPointsModel::GAS);
+ plannerModel->setData(index, action->text());
+}
+
void DiveHandler::mousePressEvent(QGraphicsSceneMouseEvent* event)
{
if (event->button() != Qt::LeftButton)