diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2018-10-17 06:28:53 -0400 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2018-10-23 22:45:29 +0100 |
commit | 90d321f0ffb3202c8a7c18298dd5871992ecb86a (patch) | |
tree | fde37fc92a12b3e9e2e7372f6f0208edc09b95da | |
parent | 65aa6bc43b763f9b391a3f414c4cda76c6e52062 (diff) | |
download | subsurface-90d321f0ffb3202c8a7c18298dd5871992ecb86a.tar.gz |
Mobile/filtering: add count of filtered dives to search bar
The count in the trip headers is still that for the complete trip and therefore
misleading.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | mobile-widgets/qml/DiveList.qml | 39 | ||||
-rw-r--r-- | qt-models/divelistmodel.cpp | 5 | ||||
-rw-r--r-- | qt-models/divelistmodel.h | 1 |
3 files changed, 37 insertions, 8 deletions
diff --git a/mobile-widgets/qml/DiveList.qml b/mobile-widgets/qml/DiveList.qml index b2dde0cd0..8dd8dd010 100644 --- a/mobile-widgets/qml/DiveList.qml +++ b/mobile-widgets/qml/DiveList.qml @@ -366,15 +366,38 @@ Kirigami.ScrollablePage { Component { id: filterHeader - Controls.TextField { - id: sitefilter - visible: (opacity > 0) && rootItem.filterToggle - text: "" - placeholderText: "Dive site name" - onTextChanged: { - rootItem.filterPattern = text - diveModel.setFilter(text) + RowLayout { + anchors.left: parent.left + anchors.right: parent.right + visible: rootItem.filterToggle + height: rootItem.filterToggle ? sitefilter.implicitHeight * 1.1 : 0 + Rectangle { + width: Kirigami.Units.gridUnit / 4 + } + onVisibleChanged: numShown.text = diveModel.shown() + Controls.TextField { + id: sitefilter + verticalAlignment: TextInput.AlignVCenter + text: "" + placeholderText: "Full text search" + onTextChanged: { + rootItem.filterPattern = text + diveModel.setFilter(text) + numShown.text = diveModel.shown() + } + } + Controls.Label { + id: numShown + verticalAlignment: Text.AlignVCenter + // when this is first rendered, the model is still empty, so + // instead of having a misleading 0 here, just don't show a count + // it gets set whenever visibility or the search text changes + text: "" } + Rectangle { + width: Kirigami.Units.regularSpacing + } + } } diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index 38c8c86c0..1c4e20b48 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -20,6 +20,11 @@ void DiveListSortModel::resetFilter() setFilterRegExp(""); } +int DiveListSortModel::shown() +{ + return rowCount(); +} + int DiveListSortModel::getDiveId(int idx) { DiveListModel *mySourceModel = qobject_cast<DiveListModel *>(sourceModel()); diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h index c34fb931d..b633cc3d5 100644 --- a/qt-models/divelistmodel.h +++ b/qt-models/divelistmodel.h @@ -19,6 +19,7 @@ public slots: int getIdxForId(int id); void setFilter(QString f); void resetFilter(); + int shown(); }; class DiveListModel : public QAbstractListModel |