mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
filter: introduce people- and tags-filtering in the mobile UI
Add a combo-box where the user can switch between "fulltext", "people" and "tags" filtering. Connect the combobox to the already existing filter-code. Dirk: make combo-box smaller by using a smaller font and restricting the width. Setting both maximum and preferred widths gives more consistent results. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c1e33aac21
commit
e0766aa4bd
5 changed files with 36 additions and 10 deletions
|
@ -2094,13 +2094,20 @@ void QMLManager::showDownloadPage(QString deviceString)
|
|||
emit pluggedInDeviceNameChanged();
|
||||
}
|
||||
|
||||
void QMLManager::setFilter(const QString filterText)
|
||||
void QMLManager::setFilter(const QString filterText, int index)
|
||||
{
|
||||
FilterData::Mode mode;
|
||||
switch(index) {
|
||||
default:
|
||||
case 0: mode = FilterData::Mode::FULLTEXT; break;
|
||||
case 1: mode = FilterData::Mode::PEOPLE; break;
|
||||
case 2: mode = FilterData::Mode::TAGS; break;
|
||||
}
|
||||
// show that we are doing something, then do something in another thread in order not to block the UI
|
||||
QMetaObject::invokeMethod(qmlWindow, "showBusyAndDisconnectModel");
|
||||
QtConcurrent::run(QThreadPool::globalInstance(),
|
||||
[this,filterText]{
|
||||
DiveListSortModel::instance()->setFilter(filterText);
|
||||
[this,filterText,mode]{
|
||||
DiveListSortModel::instance()->setFilter(filterText, mode);
|
||||
CollapsedDiveListSortModel::instance()->updateFilterState();
|
||||
QMetaObject::invokeMethod(qmlWindow, "hideBusyAndConnectModel");
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue