summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-04-25 13:16:30 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-05-11 12:35:11 -0700
commit32720a7c18f5774e5ac44338bfbac8129b0bc3c9 (patch)
treea3f39f746523500960ee68787e28e124a6c02cd6 /desktop-widgets
parent4a61f155d3c7bfed7262884019f7bcf1f5b86376 (diff)
downloadsubsurface-32720a7c18f5774e5ac44338bfbac8129b0bc3c9.tar.gz
Dive site: Add button to display all dive sites
On the main dive tab, add a button that opens the dive-site selection widget showing all dive sites. This is done by setting the "temporary dive site name" to the empty string. Thus no dive sites are filtered and the "add new dive site" entries are not shown. Moreover, the text is selected. The user can therefore immediately start typing to activate the filter or enter the name of a new dive site. The idea is that after downloading dives with GPS information the user can select one of the close dive sites. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/locationinformation.cpp14
-rw-r--r--desktop-widgets/locationinformation.h1
-rw-r--r--desktop-widgets/tab-widgets/maintab.cpp5
-rw-r--r--desktop-widgets/tab-widgets/maintab.h1
-rw-r--r--desktop-widgets/tab-widgets/maintab.ui7
5 files changed, 28 insertions, 0 deletions
diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp
index 9f61459b6..dbbe9bf75 100644
--- a/desktop-widgets/locationinformation.cpp
+++ b/desktop-widgets/locationinformation.cpp
@@ -579,6 +579,20 @@ void DiveLocationLineEdit::showPopup()
setTemporaryDiveSiteName(text());
}
+void DiveLocationLineEdit::showAllSites()
+{
+ if (!view->isVisible()) {
+ // By setting the "temporary dive site name" to the empty string,
+ // all dive sites are shown sorted by distance from the site of
+ // the current dive.
+ setTemporaryDiveSiteName(QString());
+
+ // By selecting the whole text, the user can immediately start
+ // typing to activate the full-text filter.
+ selectAll();
+ }
+}
+
DiveLocationLineEdit::DiveSiteType DiveLocationLineEdit::currDiveSiteType() const
{
return currType;
diff --git a/desktop-widgets/locationinformation.h b/desktop-widgets/locationinformation.h
index 0f7470af6..31a8194d8 100644
--- a/desktop-widgets/locationinformation.h
+++ b/desktop-widgets/locationinformation.h
@@ -93,6 +93,7 @@ public:
struct dive_site *currDiveSite() const;
void fixPopupPosition();
void setCurrentDiveSite(struct dive *d);
+ void showAllSites();
signals:
void diveSiteSelected();
diff --git a/desktop-widgets/tab-widgets/maintab.cpp b/desktop-widgets/tab-widgets/maintab.cpp
index e70e79ce2..af1928e2d 100644
--- a/desktop-widgets/tab-widgets/maintab.cpp
+++ b/desktop-widgets/tab-widgets/maintab.cpp
@@ -829,6 +829,11 @@ void MainTab::on_location_diveSiteSelected()
Command::editDiveSite(newDs, false);
}
+void MainTab::on_locationPopupButton_clicked()
+{
+ ui.location->showAllSites();
+}
+
void MainTab::on_diveTripLocation_editingFinished()
{
if (!currentTrip)
diff --git a/desktop-widgets/tab-widgets/maintab.h b/desktop-widgets/tab-widgets/maintab.h
index cdb761afd..351449cd7 100644
--- a/desktop-widgets/tab-widgets/maintab.h
+++ b/desktop-widgets/tab-widgets/maintab.h
@@ -57,6 +57,7 @@ slots:
void acceptChanges();
void rejectChanges();
void on_location_diveSiteSelected();
+ void on_locationPopupButton_clicked();
void on_divemaster_editingFinished();
void on_buddy_editingFinished();
void on_suit_editingFinished();
diff --git a/desktop-widgets/tab-widgets/maintab.ui b/desktop-widgets/tab-widgets/maintab.ui
index 24d21fece..ee0e66b1e 100644
--- a/desktop-widgets/tab-widgets/maintab.ui
+++ b/desktop-widgets/tab-widgets/maintab.ui
@@ -217,6 +217,13 @@
<widget class="DiveLocationLineEdit" name="location"/>
</item>
<item>
+ <widget class="QToolButton" name="locationPopupButton">
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="QToolButton" name="editDiveSiteButton">
<property name="toolTip">
<string>Edit dive site</string>