filter: don't search in background on mobile

I experienced weird crashes that seemed timing-related when
using the filter. Therefore, remove the multi-threading thing.
So far no more crashes, but keep a close eye on that.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-02-19 21:43:37 +01:00 committed by Dirk Hohndel
parent b5a427c880
commit eed4e2746d
2 changed files with 3 additions and 18 deletions

View file

@ -60,21 +60,11 @@ Kirigami.ApplicationWindow {
busy.running = true
}
function showBusyAndDisconnectModel() { // this is used by QMLManager when operating the filter
busy.running = true
diveList.diveListModel = null
}
function hideBusy() {
busy.running = false
showPassiveNotification("", 10) // this hides a notification messssage that's still shown
}
function hideBusyAndConnectModel() { // this is used by QMLManager when done filtering
busy.running = false
diveList.diveListModel = diveTripModel
}
function returnTopPage() {
for (var i=pageStack.depth; i>1; i--) {
pageStack.pop()

View file

@ -2097,20 +2097,15 @@ void QMLManager::showDownloadPage(QString deviceString)
void QMLManager::setFilter(const QString filterText, int index)
{
FilterData::Mode mode;
// This is ugly - the indexes of the mode are hardcoded!
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,mode]{
DiveListSortModel::instance()->setFilter(filterText, mode);
CollapsedDiveListSortModel::instance()->updateFilterState();
QMetaObject::invokeMethod(qmlWindow, "hideBusyAndConnectModel");
});
DiveListSortModel::instance()->setFilter(filterText, mode);
CollapsedDiveListSortModel::instance()->updateFilterState();
}
void QMLManager::setShowNonDiveComputers(bool show)