mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
eb027f2a4b
commit
4c2e6c4658
2 changed files with 80 additions and 1 deletions
|
@ -112,6 +112,81 @@ void ProfileGraphicsView::wheelEvent(QWheelEvent* event)
|
||||||
toolTip->setPos(mapToScene(toolTipPos).x(), mapToScene(toolTipPos).y());
|
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)
|
void ProfileGraphicsView::mouseMoveEvent(QMouseEvent* event)
|
||||||
{
|
{
|
||||||
if (!toolTip)
|
if (!toolTip)
|
||||||
|
|
|
@ -142,13 +142,17 @@ protected:
|
||||||
void mouseMoveEvent(QMouseEvent* event);
|
void mouseMoveEvent(QMouseEvent* event);
|
||||||
void wheelEvent(QWheelEvent* event);
|
void wheelEvent(QWheelEvent* event);
|
||||||
void showEvent(QShowEvent* event);
|
void showEvent(QShowEvent* event);
|
||||||
|
void contextMenuEvent(QContextMenuEvent* event);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void refresh();
|
void refresh();
|
||||||
void edit_dive_time(const QString& time);
|
void edit_dive_time(const QString& time);
|
||||||
void on_rulerAction();
|
void on_rulerAction();
|
||||||
void on_scaleAction();
|
void on_scaleAction();
|
||||||
|
void changeGas();
|
||||||
|
void hideEvents();
|
||||||
|
void removeEvent();
|
||||||
|
void addBookmark();
|
||||||
private:
|
private:
|
||||||
void plot_depth_profile();
|
void plot_depth_profile();
|
||||||
QGraphicsItemGroup *plot_text(text_render_options_t *tro, const QPointF& pos, const QString &text, QGraphicsItem *parent = 0);
|
QGraphicsItemGroup *plot_text(text_render_options_t *tro, const QPointF& pos, const QString &text, QGraphicsItem *parent = 0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue