Adds half of the support for the menu on the profile.

This adds the menu, it just doesn't do anything, yet.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2013-11-19 23:03:18 -02:00 committed by Dirk Hohndel
parent eb027f2a4b
commit 4c2e6c4658
2 changed files with 80 additions and 1 deletions

View file

@ -112,6 +112,81 @@ void ProfileGraphicsView::wheelEvent(QWheelEvent* event)
toolTip->setPos(mapToScene(toolTipPos).x(), mapToScene(toolTipPos).y());
}
void ProfileGraphicsView::contextMenuEvent(QContextMenuEvent* event)
{
if(selected_dive == -1)
return;
QMenu m;
QMenu *gasChange = m.addMenu("Add Gas Change");
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()));
action->setData(event->globalPos());
gasChange->addAction(action);
}
QAction *action = m.addAction("Add Bookmark", this, SLOT(addBookmark()));
action->setData(event->globalPos());
QList<QGraphicsItem*> itemsAtPos = scene()->items(mapToScene(mapFromGlobal(event->globalPos())));
Q_FOREACH(QGraphicsItem *i, itemsAtPos){
EventItem *item = dynamic_cast<EventItem*>(i);
if(!item)
continue;
QAction *action = new QAction(&m);
action->setText("Remove Event");
action->setData(event->globalPos()); // so we know what to remove.
connect(action, SIGNAL(triggered(bool)), this, SLOT(removeEvent()));
m.addAction(action);
action = new QAction(&m);
action->setText("Hide events of that type");
action->setData(event->globalPos());
connect(action, SIGNAL(triggered(bool)), this, SLOT(hideEvents()));
m.addAction(action);
break;
}
m.exec(event->globalPos());
}
void ProfileGraphicsView::addBookmark()
{
QAction *action = qobject_cast<QAction*>(sender());
QPoint globalPos = action->data().toPoint();
QPoint viewPos = mapFromGlobal(globalPos);
QPointF scenePos = mapToScene(viewPos);
qDebug() << "Add Bookmark";
}
void ProfileGraphicsView::changeGas()
{
QAction *action = qobject_cast<QAction*>(sender());
QPoint globalPos = action->data().toPoint();
QPoint viewPos = mapFromGlobal(globalPos);
QPointF scenePos = mapToScene(viewPos);
QString gas = action->text();
qDebug() << "Change Gas Event" << gas;
}
void ProfileGraphicsView::hideEvents()
{
QAction *action = qobject_cast<QAction*>(sender());
QPoint globalPos = action->data().toPoint();
QPoint viewPos = mapFromGlobal(globalPos);
QPointF scenePos = mapToScene(viewPos);
qDebug() << "Hide Event";
}
void ProfileGraphicsView::removeEvent()
{
QAction *action = qobject_cast<QAction*>(sender());
QPoint globalPos = action->data().toPoint();
QPoint viewPos = mapFromGlobal(globalPos);
QPointF scenePos = mapToScene(viewPos);
qDebug() << "Remove Event";
}
void ProfileGraphicsView::mouseMoveEvent(QMouseEvent* event)
{
if (!toolTip)

View file

@ -142,13 +142,17 @@ protected:
void mouseMoveEvent(QMouseEvent* event);
void wheelEvent(QWheelEvent* event);
void showEvent(QShowEvent* event);
void contextMenuEvent(QContextMenuEvent* event);
public slots:
void refresh();
void edit_dive_time(const QString& time);
void on_rulerAction();
void on_scaleAction();
void changeGas();
void hideEvents();
void removeEvent();
void addBookmark();
private:
void plot_depth_profile();
QGraphicsItemGroup *plot_text(text_render_options_t *tro, const QPointF& pos, const QString &text, QGraphicsItem *parent = 0);