diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-04-25 13:16:30 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-05-11 12:35:11 -0700 |
commit | 32720a7c18f5774e5ac44338bfbac8129b0bc3c9 (patch) | |
tree | a3f39f746523500960ee68787e28e124a6c02cd6 /desktop-widgets | |
parent | 4a61f155d3c7bfed7262884019f7bcf1f5b86376 (diff) | |
download | subsurface-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.cpp | 14 | ||||
-rw-r--r-- | desktop-widgets/locationinformation.h | 1 | ||||
-rw-r--r-- | desktop-widgets/tab-widgets/maintab.cpp | 5 | ||||
-rw-r--r-- | desktop-widgets/tab-widgets/maintab.h | 1 | ||||
-rw-r--r-- | desktop-widgets/tab-widgets/maintab.ui | 7 |
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> |