From 396c128b9f9c9cd2c9356c9f5cc753fa4d7de61c Mon Sep 17 00:00:00 2001 From: Tomas Mizera Date: Wed, 15 May 2024 16:47:22 +0200 Subject: [PATCH] Disable cache for list views --- app/qml/CMakeLists.txt | 1 + app/qml/account/MMHowYouFoundUsPage.qml | 2 +- app/qml/components/MMListDrawer.qml | 2 +- .../components/MMListMultiselectDrawer.qml | 2 +- app/qml/components/MMListView.qml | 20 +++++++++++++++++++ app/qml/components/MMToolbar.qml | 2 +- app/qml/form/MMFormPage.qml | 10 ++++++++-- app/qml/form/MMPreviewDrawer.qml | 2 +- .../components/MMFeaturesListPageDrawer.qml | 2 +- app/qml/form/editors/MMFormGalleryEditor.qml | 2 +- app/qml/gps/MMPositionProviderPage.qml | 2 +- app/qml/layers/MMFeaturesListPage.qml | 2 +- app/qml/layers/MMLayersList.qml | 2 +- app/qml/project/MMProjectIssuesPage.qml | 2 +- app/qml/project/MMProjectList.qml | 2 +- app/qml/project/MMProjectStatusPage.qml | 2 +- app/qml/project/MMProjectWizardPage.qml | 2 +- app/qml/settings/MMChangelogPage.qml | 2 +- 18 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 app/qml/components/MMListView.qml diff --git a/app/qml/CMakeLists.txt b/app/qml/CMakeLists.txt index 4f6a37960..04fb07a7c 100644 --- a/app/qml/CMakeLists.txt +++ b/app/qml/CMakeLists.txt @@ -31,6 +31,7 @@ set(MM_QML components/MMListDrawer.qml components/MMListFooterSpacer.qml components/MMListMultiselectDrawer.qml + components/MMListView.qml components/MMListSpacer.qml components/MMBusyIndicator.qml components/MMMessage.qml diff --git a/app/qml/account/MMHowYouFoundUsPage.qml b/app/qml/account/MMHowYouFoundUsPage.qml index fa7f89690..cc280a8ed 100644 --- a/app/qml/account/MMHowYouFoundUsPage.qml +++ b/app/qml/account/MMHowYouFoundUsPage.qml @@ -71,7 +71,7 @@ MMPage { width: parent.width height: parent.height - ListView { + MMListView { id: listView width: parent.width diff --git a/app/qml/components/MMListDrawer.qml b/app/qml/components/MMListDrawer.qml index 4065ffbf1..4a6a388fd 100644 --- a/app/qml/components/MMListDrawer.qml +++ b/app/qml/components/MMListDrawer.qml @@ -43,7 +43,7 @@ MMDrawer { } } - ListView { + MMListView { id: listViewComponent width: parent.width diff --git a/app/qml/components/MMListMultiselectDrawer.qml b/app/qml/components/MMListMultiselectDrawer.qml index a2915c887..25e7ad656 100644 --- a/app/qml/components/MMListMultiselectDrawer.qml +++ b/app/qml/components/MMListMultiselectDrawer.qml @@ -82,7 +82,7 @@ MMDrawer { } } - ListView { + MMListView { id: listViewComponent width: parent.width diff --git a/app/qml/components/MMListView.qml b/app/qml/components/MMListView.qml new file mode 100644 index 000000000..e28f8459a --- /dev/null +++ b/app/qml/components/MMListView.qml @@ -0,0 +1,20 @@ +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +import QtQuick + +// +// Hot-fix for hotfix https://github.com/MerginMaps/mobile/issues/3417 +// Seems like there is some issue with cache in ListView +// + +ListView { + + cacheBuffer: 0 +} diff --git a/app/qml/components/MMToolbar.qml b/app/qml/components/MMToolbar.qml index 2c4928e34..abd03e2b4 100644 --- a/app/qml/components/MMToolbar.qml +++ b/app/qml/components/MMToolbar.qml @@ -41,7 +41,7 @@ Rectangle { // center the content x: __style.safeAreaLeft - ListView { + MMListView { id: toolbar onWidthChanged: root.recalculate() diff --git a/app/qml/form/MMFormPage.qml b/app/qml/form/MMFormPage.qml index 91ab44e30..3a6512f2c 100644 --- a/app/qml/form/MMFormPage.qml +++ b/app/qml/form/MMFormPage.qml @@ -140,7 +140,7 @@ Page { property int tabIndex: model.TabIndex // from the repeater - ListView { + MMComponents.MMListView { anchors { fill: parent @@ -170,8 +170,14 @@ Page { opacity: 1 // invisible height: 20 * __dp } - } + // boundsBehavior: Flickable.StopAtBounds + // bottomMargin: 0 + + cacheBuffer: 0 + // 320 on macOS + Component.onCompleted: console.log(" -> cache:", cacheBuffer) + } } } } diff --git a/app/qml/form/MMPreviewDrawer.qml b/app/qml/form/MMPreviewDrawer.qml index 656213926..ca6753fc0 100644 --- a/app/qml/form/MMPreviewDrawer.qml +++ b/app/qml/form/MMPreviewDrawer.qml @@ -205,7 +205,7 @@ Item { visible: internal.showFields - ListView { + MMComponents.MMListView { width: parent.width height: contentHeight diff --git a/app/qml/form/components/MMFeaturesListPageDrawer.qml b/app/qml/form/components/MMFeaturesListPageDrawer.qml index a8b93ed42..c6f3a266a 100644 --- a/app/qml/form/components/MMFeaturesListPageDrawer.qml +++ b/app/qml/form/components/MMFeaturesListPageDrawer.qml @@ -73,7 +73,7 @@ Drawer { MMComponents.MMListSpacer { height: __style.spacing20 } - ListView { + MMComponents.MMListView { id: listView width: parent.width diff --git a/app/qml/form/editors/MMFormGalleryEditor.qml b/app/qml/form/editors/MMFormGalleryEditor.qml index d2dccddf5..648b02c8e 100644 --- a/app/qml/form/editors/MMFormGalleryEditor.qml +++ b/app/qml/form/editors/MMFormGalleryEditor.qml @@ -30,7 +30,7 @@ MMPrivateComponents.MMBaseInput { title: _fieldShouldShowTitle ? _fieldTitle : "" - inputContent: ListView { + inputContent: MMComponents.MMListView { id: rowView width: parent.width diff --git a/app/qml/gps/MMPositionProviderPage.qml b/app/qml/gps/MMPositionProviderPage.qml index dca1a6c7a..f3a674b96 100644 --- a/app/qml/gps/MMPositionProviderPage.qml +++ b/app/qml/gps/MMPositionProviderPage.qml @@ -27,7 +27,7 @@ MMComponents.MMPage { width: parent.width height: parent.height - ListView { + MMComponents.MMListView { id: listview property bool showTopTitle: visibleArea.yPosition * height > ( headerItem.contentHeight / 2 ) diff --git a/app/qml/layers/MMFeaturesListPage.qml b/app/qml/layers/MMFeaturesListPage.qml index c3e654b93..5b162c87d 100644 --- a/app/qml/layers/MMFeaturesListPage.qml +++ b/app/qml/layers/MMFeaturesListPage.qml @@ -44,7 +44,7 @@ MMComponents.MMPage { onSearchTextChanged: featuresModel.searchExpression = searchBar.text } - ListView { + MMComponents.MMListView { id: listView width: parent.width diff --git a/app/qml/layers/MMLayersList.qml b/app/qml/layers/MMLayersList.qml index 77ab56168..0d2fc53e9 100644 --- a/app/qml/layers/MMLayersList.qml +++ b/app/qml/layers/MMLayersList.qml @@ -15,7 +15,7 @@ import QtQuick.Layouts import "../components" as MMComponents import "../inputs" -ListView { +MMComponents.MMListView { id: root property var basemodel: null diff --git a/app/qml/project/MMProjectIssuesPage.qml b/app/qml/project/MMProjectIssuesPage.qml index fa897369e..12e786222 100644 --- a/app/qml/project/MMProjectIssuesPage.qml +++ b/app/qml/project/MMProjectIssuesPage.qml @@ -31,7 +31,7 @@ MMComponents.MMPage { onBackClicked: root.visible = false pageHeader.title: qsTr("Project issues") - pageContent: ListView { + pageContent: MMComponents.MMListView { id: mainList anchors.fill: parent diff --git a/app/qml/project/MMProjectList.qml b/app/qml/project/MMProjectList.qml index ddc017e9a..2bfe86f83 100644 --- a/app/qml/project/MMProjectList.qml +++ b/app/qml/project/MMProjectList.qml @@ -47,7 +47,7 @@ Item { controllerModel.listProjects( searchText ) } - ListView { + MMComponents.MMListView { id: listview Component.onCompleted: { diff --git a/app/qml/project/MMProjectStatusPage.qml b/app/qml/project/MMProjectStatusPage.qml index 056434f47..295d1be3e 100644 --- a/app/qml/project/MMProjectStatusPage.qml +++ b/app/qml/project/MMProjectStatusPage.qml @@ -47,7 +47,7 @@ MMComponents.MMPage { MMComponents.MMListSpacer { id: spacer; height: __style.spacing40 } // With changes content - ListView { + MMComponents.MMListView { id: statusList anchors.top: spacer.bottom diff --git a/app/qml/project/MMProjectWizardPage.qml b/app/qml/project/MMProjectWizardPage.qml index 2af81ed7d..b154c2141 100644 --- a/app/qml/project/MMProjectWizardPage.qml +++ b/app/qml/project/MMProjectWizardPage.qml @@ -58,7 +58,7 @@ MMComponents.MMPage { verticalAlignment: Text.AlignVCenter } - ListView { + MMComponents.MMListView { id: fieldList model: fieldsModel diff --git a/app/qml/settings/MMChangelogPage.qml b/app/qml/settings/MMChangelogPage.qml index 5f6d5f15a..92b9bf547 100644 --- a/app/qml/settings/MMChangelogPage.qml +++ b/app/qml/settings/MMChangelogPage.qml @@ -21,7 +21,7 @@ MMPage { pageHeader.title: qsTr( "Changelog" ) pageBottomMarginPolicy: MMPage.BottomMarginPolicy.PaintBehindSystemBar - pageContent: ListView { + pageContent: MMListView { width: parent.width height: parent.height