summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-09-25 13:21:23 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-09-27 06:43:18 -0400
commit1239056fb6186279f915c8b3a8af733e74cb6523 (patch)
treeca1c6972e9b1232c169e81a02e4c3e66109c7984 /qt-ui
parent6633ab302d70ea7e6407d60936927f585cb76385 (diff)
downloadsubsurface-1239056fb6186279f915c8b3a8af733e74cb6523.tar.gz
Center on the dive site also via keyboard
Now mouse and keyboard navigation over the list of current dive sites will update the marble globe position. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/locationinformation.cpp7
-rw-r--r--qt-ui/locationinformation.h5
-rw-r--r--qt-ui/maintab.cpp1
3 files changed, 13 insertions, 0 deletions
diff --git a/qt-ui/locationinformation.cpp b/qt-ui/locationinformation.cpp
index 77f51abde..29ce1548d 100644
--- a/qt-ui/locationinformation.cpp
+++ b/qt-ui/locationinformation.cpp
@@ -385,6 +385,7 @@ DiveLocationLineEdit::DiveLocationLineEdit(QWidget *parent) : QLineEdit(parent),
connect(this, &QLineEdit::textEdited, this, &DiveLocationLineEdit::setTemporaryDiveSiteName);
connect(view, &QAbstractItemView::activated, this, &DiveLocationLineEdit::itemActivated);
connect(view, &QAbstractItemView::entered, this, &DiveLocationLineEdit::entered);
+ connect(view, &DiveLocationListView::currentIndexChanged, this, &DiveLocationLineEdit::currentChanged);
}
bool DiveLocationLineEdit::eventFilter(QObject *o, QEvent *e)
@@ -561,3 +562,9 @@ DiveLocationListView::DiveLocationListView(QWidget *parent)
{
}
+
+void DiveLocationListView::currentChanged(const QModelIndex& current, const QModelIndex& previous)
+{
+ QListView::currentChanged(current, previous);
+ emit currentIndexChanged(current);
+}
diff --git a/qt-ui/locationinformation.h b/qt-ui/locationinformation.h
index 2193b8cdf..0d1a995dd 100644
--- a/qt-ui/locationinformation.h
+++ b/qt-ui/locationinformation.h
@@ -72,6 +72,10 @@ class DiveLocationListView : public QListView {
Q_OBJECT
public:
DiveLocationListView(QWidget *parent = 0);
+protected:
+ virtual void currentChanged(const QModelIndex& current, const QModelIndex& previous);
+signals:
+ void currentIndexChanged(const QModelIndex& current);
};
class DiveLocationLineEdit : public QLineEdit {
@@ -90,6 +94,7 @@ public:
signals:
void diveSiteSelected(uint32_t uuid);
void entered(const QModelIndex& index);
+ void currentChanged(const QModelIndex& index);
protected:
void keyPressEvent(QKeyEvent *ev);
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index ba345d938..b6266eb33 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -58,6 +58,7 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
connect(ui.editDiveSiteButton, SIGNAL(clicked()), MainWindow::instance(), SIGNAL(startDiveSiteEdit()));
#ifndef NO_MARBLE
connect(ui.location, &DiveLocationLineEdit::entered, GlobeGPS::instance(), &GlobeGPS::centerOnIndex);
+ connect(ui.location, &DiveLocationLineEdit::currentChanged, GlobeGPS::instance(), &GlobeGPS::centerOnIndex);
#endif
QAction *action = new QAction(tr("Apply changes"), this);