mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
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:
parent
b5a427c880
commit
eed4e2746d
2 changed files with 3 additions and 18 deletions
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue