Add context menu to dive list

So far we support "expand all" and "collapse" all. This still needs to
be restricted to only be shown when in trip / tree mode.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2013-06-06 03:29:11 +09:00
parent 4b405caa2c
commit 74d23ed83b
2 changed files with 17 additions and 0 deletions

View file

@ -17,6 +17,7 @@
#include <QAction>
#include <QLineEdit>
#include <QKeyEvent>
#include <QMenu>
DiveListView::DiveListView(QWidget *parent) : QTreeView(parent), mouseClickSelection(false),
currentHeaderClicked(-1), searchBox(new QLineEdit(this))
@ -270,3 +271,18 @@ void DiveListView::selectionChanged(const QItemSelection& selected, const QItemS
// now that everything is up to date, update the widgets
Q_EMIT currentDiveChanged(selected_dive);
}
void DiveListView::mousePressEvent(QMouseEvent *event)
{
// all we care about is the unmodified right click
if ( ! (event->modifiers() == Qt::NoModifier && event->buttons() & Qt::RightButton)) {
event->ignore();
QTreeView::mousePressEvent(event);
return;
}
QMenu popup(this);
popup.addAction(tr("expand all"), this, SLOT(expandAll()));
QAction *collapseAllAction = popup.addAction(tr("collapse all"), this, SLOT(collapseAll()));
if (popup.exec(event->globalPos()) == collapseAllAction)
selectDive(current_dive, true);
}

View file

@ -28,6 +28,7 @@ public:
bool eventFilter(QObject* , QEvent* );
void unselectDives();
void selectDive(struct dive *, bool scrollto = false);
void mousePressEvent(QMouseEvent *event);
public slots:
void toggleColumnVisibilityByIndex();