From d74b85b0667f5fd709792f13d5cfb8c0e774f707 Mon Sep 17 00:00:00 2001 From: Kaustuv Pokharel Date: Fri, 10 Oct 2025 04:00:14 -0400 Subject: [PATCH 01/18] scrollbar addition --- app/qml/layers/MMFeaturesListPage.qml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/qml/layers/MMFeaturesListPage.qml b/app/qml/layers/MMFeaturesListPage.qml index 952894924..cff0864ec 100644 --- a/app/qml/layers/MMFeaturesListPage.qml +++ b/app/qml/layers/MMFeaturesListPage.qml @@ -10,6 +10,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts +import QtQml import mm 1.0 as MM @@ -22,6 +23,7 @@ MMComponents.MMPage { property var selectedLayer: null property bool hasToolbar: false property bool layerIsReadOnly: selectedLayer?.readOnly ?? false + readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") signal featureClicked( var featurePair ) signal addFeatureClicked( var toLayer ) @@ -72,6 +74,18 @@ MMComponents.MMPage { onClicked: root.featureClicked( model.FeaturePair ) } + ScrollBar.vertical: ScrollBar { + id: verticalScrollBar + policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AsNeeded + visible: !isMobile + interactive: !isMobile + anchors.right: listView.right + thickness: 8 + implicitHeight: listView.height + opacity: active ? 1.0 : 0.0 + Behavior on opacity { NumberAnimation { duration: 120 } } + } + footer: MMComponents.MMListSpacer { height: __style.margin20 + ( root.hasToolbar ? 0 : __style.safeAreaBottom ) + ( addButton.visible ? addButton.height : 0 ) } From d1e5bf250b546f075f8daba31a4e3d2c1a5577b1 Mon Sep 17 00:00:00 2001 From: Kaustuv Pokharel Date: Fri, 10 Oct 2025 16:04:04 -0400 Subject: [PATCH 02/18] added scrollbar to feature list with merginmap themed --- app/qml/layers/MMFeaturesListPage.qml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/qml/layers/MMFeaturesListPage.qml b/app/qml/layers/MMFeaturesListPage.qml index cff0864ec..1f5b89a12 100644 --- a/app/qml/layers/MMFeaturesListPage.qml +++ b/app/qml/layers/MMFeaturesListPage.qml @@ -80,10 +80,16 @@ MMComponents.MMPage { visible: !isMobile interactive: !isMobile anchors.right: listView.right - thickness: 8 implicitHeight: listView.height opacity: active ? 1.0 : 0.0 - Behavior on opacity { NumberAnimation { duration: 120 } } + Behavior on opacity { NumberAnimation { duration: 150 } } + + contentItem: Rectangle { + implicitWidth: 5 + radius: width / 2 + color: __style.darkGreenColor + opacity: verticalScrollBar.pressed ? 0.5 : 0.3 + } } footer: MMComponents.MMListSpacer { From d2b907ae3e48c75d1fe5d2764fba94e47ca39db3 Mon Sep 17 00:00:00 2001 From: Kaustuv Pokharel Date: Sat, 18 Oct 2025 13:24:22 -0400 Subject: [PATCH 03/18] reduced the scope for the Qt platform api --- app/qml/layers/MMFeaturesListPage.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/qml/layers/MMFeaturesListPage.qml b/app/qml/layers/MMFeaturesListPage.qml index 1f5b89a12..1afb6a7a1 100644 --- a/app/qml/layers/MMFeaturesListPage.qml +++ b/app/qml/layers/MMFeaturesListPage.qml @@ -23,7 +23,6 @@ MMComponents.MMPage { property var selectedLayer: null property bool hasToolbar: false property bool layerIsReadOnly: selectedLayer?.readOnly ?? false - readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") signal featureClicked( var featurePair ) signal addFeatureClicked( var toLayer ) @@ -76,9 +75,12 @@ MMComponents.MMPage { ScrollBar.vertical: ScrollBar { id: verticalScrollBar + + readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AsNeeded visible: !isMobile interactive: !isMobile + anchors.right: listView.right implicitHeight: listView.height opacity: active ? 1.0 : 0.0 From b8ace95bf719b18e75797a9cd1156103c442f975 Mon Sep 17 00:00:00 2001 From: Kaustuv Pokharel Date: Wed, 22 Oct 2025 16:30:33 -0400 Subject: [PATCH 04/18] scrollbar always visible --- app/qml/layers/MMFeaturesListPage.qml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/qml/layers/MMFeaturesListPage.qml b/app/qml/layers/MMFeaturesListPage.qml index 1afb6a7a1..6d88f6006 100644 --- a/app/qml/layers/MMFeaturesListPage.qml +++ b/app/qml/layers/MMFeaturesListPage.qml @@ -77,20 +77,17 @@ MMComponents.MMPage { id: verticalScrollBar readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") - policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AsNeeded + policy: ScrollBar.AlwaysOn visible: !isMobile interactive: !isMobile + opacity: (pressed || listView.moving) ? 0.7 : 0.4 - anchors.right: listView.right implicitHeight: listView.height - opacity: active ? 1.0 : 0.0 - Behavior on opacity { NumberAnimation { duration: 150 } } contentItem: Rectangle { implicitWidth: 5 radius: width / 2 color: __style.darkGreenColor - opacity: verticalScrollBar.pressed ? 0.5 : 0.3 } } From 9bb46cf1d39518badd6685a03bf861b9baf287fc Mon Sep 17 00:00:00 2001 From: Kaustuv Pokharel Date: Wed, 22 Oct 2025 16:38:05 -0400 Subject: [PATCH 05/18] scrollbar visible only --- app/qml/layers/MMFeaturesListPage.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/qml/layers/MMFeaturesListPage.qml b/app/qml/layers/MMFeaturesListPage.qml index 6d88f6006..7a9750972 100644 --- a/app/qml/layers/MMFeaturesListPage.qml +++ b/app/qml/layers/MMFeaturesListPage.qml @@ -79,7 +79,6 @@ MMComponents.MMPage { readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") policy: ScrollBar.AlwaysOn visible: !isMobile - interactive: !isMobile opacity: (pressed || listView.moving) ? 0.7 : 0.4 implicitHeight: listView.height From 234586971aeef15a7622a64f1b6399ebf062eeb8 Mon Sep 17 00:00:00 2001 From: Kaustuv Pokharel Date: Wed, 22 Oct 2025 20:24:10 -0400 Subject: [PATCH 06/18] scroll bar to all list WIP --- app/qml/components/MMListDelegate.qml | 4 +++- app/qml/components/MMListView.qml | 22 ++++++++++++++++++++++ app/qml/components/MMScrollView.qml | 1 + app/qml/layers/MMFeaturesListPage.qml | 17 ----------------- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/app/qml/components/MMListDelegate.qml b/app/qml/components/MMListDelegate.qml index b7869968c..380ac227f 100644 --- a/app/qml/components/MMListDelegate.qml +++ b/app/qml/components/MMListDelegate.qml @@ -24,6 +24,7 @@ Item { property string text property string secondaryText + readonly property int scrollSpace: (ListView.view && ListView.view.scrollSpace) ? ListView.view.scrollSpace : 0 property alias leftContent: leftContentGroup.children property alias rightContent: rightContentGroup.children @@ -40,9 +41,10 @@ Item { property real verticalSpacing: root.secondaryText ? __style.margin8 : __style.margin20 - implicitWidth: ListView?.view?.width ?? 0 // in case ListView is injected as attached property (usually it is) + implicitWidth: ListView?.view?.width ?? 0 // in case ListView is injected as attached property (usually it is) implicitHeight: contentLayout.implicitHeight height: visible ? implicitHeight : 0.1 // hide invisible items, for some reason setting 0 does not work ¯\_(ツ)_/¯ + width: implicitWidth - root.scrollSpace MouseArea { anchors.fill: contentLayout diff --git a/app/qml/components/MMListView.qml b/app/qml/components/MMListView.qml index e28f8459a..f04191875 100644 --- a/app/qml/components/MMListView.qml +++ b/app/qml/components/MMListView.qml @@ -8,6 +8,7 @@ ***************************************************************************/ import QtQuick +import QtQuick.Controls // // Hot-fix for hotfix https://github.com/MerginMaps/mobile/issues/3417 @@ -15,6 +16,27 @@ import QtQuick // ListView { + id: root cacheBuffer: 0 + readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") + property int scrollSpace: !isMobile ? 10 : 0 + + ScrollBar.vertical: ScrollBar { + id: verticalScrollBar + + policy: ScrollBar.AlwaysOn + visible: !isMobile && (root.contentHeight > root.height) + opacity: (pressed || root.moving) ? 0.7 : 0.4 + + anchors.right: root.right + + implicitHeight: root.height + + contentItem: Rectangle { + implicitWidth: 5 + radius: width / 2 + color: __style.darkGreenColor + } + } } diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index 5ea4c2dea..6f68dcd87 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -20,4 +20,5 @@ ScrollView { ScrollBar.vertical.policy: ScrollBar.AlwaysOff ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + } diff --git a/app/qml/layers/MMFeaturesListPage.qml b/app/qml/layers/MMFeaturesListPage.qml index 7a9750972..1191399e9 100644 --- a/app/qml/layers/MMFeaturesListPage.qml +++ b/app/qml/layers/MMFeaturesListPage.qml @@ -73,23 +73,6 @@ MMComponents.MMPage { onClicked: root.featureClicked( model.FeaturePair ) } - ScrollBar.vertical: ScrollBar { - id: verticalScrollBar - - readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") - policy: ScrollBar.AlwaysOn - visible: !isMobile - opacity: (pressed || listView.moving) ? 0.7 : 0.4 - - implicitHeight: listView.height - - contentItem: Rectangle { - implicitWidth: 5 - radius: width / 2 - color: __style.darkGreenColor - } - } - footer: MMComponents.MMListSpacer { height: __style.margin20 + ( root.hasToolbar ? 0 : __style.safeAreaBottom ) + ( addButton.visible ? addButton.height : 0 ) } From e702b7ebcdc4bdf580f9ba3d232cafde9459f841 Mon Sep 17 00:00:00 2001 From: Kaustuv Pokharel Date: Thu, 23 Oct 2025 11:46:53 -0400 Subject: [PATCH 07/18] List and delegates, all uses the scrollbar if opened on desktop --- app/qml/components/MMListDelegate.qml | 2 +- app/qml/form/MMFormPage.qml | 2 +- app/qml/form/MMPreviewDrawer.qml | 2 +- app/qml/project/MMProjectList.qml | 3 +-- app/qml/project/MMProjectWizardPage.qml | 2 +- app/qml/project/components/MMProjectDelegate.qml | 1 + 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/qml/components/MMListDelegate.qml b/app/qml/components/MMListDelegate.qml index 380ac227f..d1c654ce7 100644 --- a/app/qml/components/MMListDelegate.qml +++ b/app/qml/components/MMListDelegate.qml @@ -44,7 +44,7 @@ Item { implicitWidth: ListView?.view?.width ?? 0 // in case ListView is injected as attached property (usually it is) implicitHeight: contentLayout.implicitHeight height: visible ? implicitHeight : 0.1 // hide invisible items, for some reason setting 0 does not work ¯\_(ツ)_/¯ - width: implicitWidth - root.scrollSpace + width: implicitWidth - ListView.view.scrollSpace MouseArea { anchors.fill: contentLayout diff --git a/app/qml/form/MMFormPage.qml b/app/qml/form/MMFormPage.qml index 0d804e61b..f85ce8bae 100644 --- a/app/qml/form/MMFormPage.qml +++ b/app/qml/form/MMFormPage.qml @@ -276,7 +276,7 @@ Page { Item { - width: ListView.view.width + width: ListView.view.width - ListView.view.scrollSpace implicitHeight: childrenRect.height // In future, better to filter such fields in the field proxy model instead diff --git a/app/qml/form/MMPreviewDrawer.qml b/app/qml/form/MMPreviewDrawer.qml index 5c0891313..360cd777d 100644 --- a/app/qml/form/MMPreviewDrawer.qml +++ b/app/qml/form/MMPreviewDrawer.qml @@ -198,7 +198,7 @@ Item { model: root.controller.fieldModel delegate: Item { - width: ListView.view.width + width: ListView.view.width - ListView.view.width height: childrenRect.height Column { diff --git a/app/qml/project/MMProjectList.qml b/app/qml/project/MMProjectList.qml index 7636434b9..315daa295 100644 --- a/app/qml/project/MMProjectList.qml +++ b/app/qml/project/MMProjectList.qml @@ -94,7 +94,6 @@ Item { delegate: MMProjectComponents.MMProjectDelegate { id: projectDelegate - width: ListView.view.width height: visible ? implicitHeight : 0 projectDisplayName: root.projectModelType === MM.ProjectsModel.WorkspaceProjectsModel ? model.ProjectName : model.ProjectFullName @@ -202,7 +201,7 @@ Item { topPadding: noLocalProjectsMessageContainer.visible ? noLocalProjectsMessageContainer.height + __style.margin40 : 0 - width: ListView.view.width + width: ListView.view.width - ListView.view.scrollSpace Item { width: parent.width diff --git a/app/qml/project/MMProjectWizardPage.qml b/app/qml/project/MMProjectWizardPage.qml index b154c2141..a6273f8e7 100644 --- a/app/qml/project/MMProjectWizardPage.qml +++ b/app/qml/project/MMProjectWizardPage.qml @@ -70,7 +70,7 @@ MMComponents.MMPage { delegate: MMProjectComponents.MMProjectWizardDelegate { id: fieldDelegate - width: ListView.view.width + width: ListView.view.width - ListView.view.width // find current index in the model comboboxField.comboboxModel: typesmodel diff --git a/app/qml/project/components/MMProjectDelegate.qml b/app/qml/project/components/MMProjectDelegate.qml index b858b0666..75ae4e08e 100644 --- a/app/qml/project/components/MMProjectDelegate.qml +++ b/app/qml/project/components/MMProjectDelegate.qml @@ -37,6 +37,7 @@ Control { signal showChangesRequested() height: implicitHeight + width: ListView.view.width - ListView.view.scrollSpace topPadding: __style.margin20 rightPadding: __style.margin20 From bb810099af1bfd02aee3e947df6de804c13fa16a Mon Sep 17 00:00:00 2001 From: Kaustuv Pokharel Date: Mon, 27 Oct 2025 01:27:44 -0400 Subject: [PATCH 08/18] implemented scrollbar for all scrollview --- app/qml/components/MMScrollView.qml | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index 6f68dcd87..9ebad3356 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -16,9 +16,29 @@ import QtQuick.Controls ScrollView { id: root - contentWidth: availableWidth // to only scroll vertically + readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") + property int scrollSpace: !isMobile ? 10 : 0 - ScrollBar.vertical.policy: ScrollBar.AlwaysOff - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + contentWidth: availableWidth - scrollSpace // to only scroll vertically + + ScrollBar.horizontal: null + + ScrollBar.vertical: ScrollBar { + id: verticalScrollBar + + policy: ScrollBar.AsNeeded + visible: !isMobile && (root.contentHeight > root.height) + opacity: (pressed || root.moving) ? 0.7 : 0.4 + + anchors.right: root.right + + implicitHeight: root.height + + contentItem: Rectangle { + implicitWidth: 5 + radius: width / 2 + color: __style.darkGreenColor + } + } } From d90b2c1af7ffc2b15d121ba533b2f076571996b6 Mon Sep 17 00:00:00 2001 From: Kaustuv Pokharel Date: Thu, 30 Oct 2025 02:18:00 -0400 Subject: [PATCH 09/18] fixed suggestions --- app/qml/components/MMListDelegate.qml | 3 +-- app/qml/components/MMListView.qml | 5 +---- app/qml/components/MMScrollView.qml | 13 +++++-------- app/qml/form/MMPreviewDrawer.qml | 2 +- app/qml/layers/MMFeaturesListPage.qml | 1 - app/qml/project/MMProjectWizardPage.qml | 2 +- app/qml/settings/MMLogPage.qml | 10 +++++++++- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/qml/components/MMListDelegate.qml b/app/qml/components/MMListDelegate.qml index d1c654ce7..7f8f86237 100644 --- a/app/qml/components/MMListDelegate.qml +++ b/app/qml/components/MMListDelegate.qml @@ -24,7 +24,6 @@ Item { property string text property string secondaryText - readonly property int scrollSpace: (ListView.view && ListView.view.scrollSpace) ? ListView.view.scrollSpace : 0 property alias leftContent: leftContentGroup.children property alias rightContent: rightContentGroup.children @@ -44,7 +43,7 @@ Item { implicitWidth: ListView?.view?.width ?? 0 // in case ListView is injected as attached property (usually it is) implicitHeight: contentLayout.implicitHeight height: visible ? implicitHeight : 0.1 // hide invisible items, for some reason setting 0 does not work ¯\_(ツ)_/¯ - width: implicitWidth - ListView.view.scrollSpace + width: implicitWidth - ( ListView?.view?.scrollSpace ?? 0 ) MouseArea { anchors.fill: contentLayout diff --git a/app/qml/components/MMListView.qml b/app/qml/components/MMListView.qml index f04191875..3ae19f85e 100644 --- a/app/qml/components/MMListView.qml +++ b/app/qml/components/MMListView.qml @@ -9,6 +9,7 @@ import QtQuick import QtQuick.Controls +import QtQml // // Hot-fix for hotfix https://github.com/MerginMaps/mobile/issues/3417 @@ -29,10 +30,6 @@ ListView { visible: !isMobile && (root.contentHeight > root.height) opacity: (pressed || root.moving) ? 0.7 : 0.4 - anchors.right: root.right - - implicitHeight: root.height - contentItem: Rectangle { implicitWidth: 5 radius: width / 2 diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index 9ebad3356..077532ed6 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -9,6 +9,7 @@ import QtQuick import QtQuick.Controls +import QtQml // Convenient class to use as a pageContent or drawerContent // base element to make the content scroll @@ -19,20 +20,17 @@ ScrollView { readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") property int scrollSpace: !isMobile ? 10 : 0 - contentWidth: availableWidth - scrollSpace // to only scroll vertically - - ScrollBar.horizontal: null + contentWidth: availableWidth - scrollSpace + ScrollBar.horizontal.policy: ScrollBar.AlwaysOff ScrollBar.vertical: ScrollBar { id: verticalScrollBar - policy: ScrollBar.AsNeeded + policy: ScrollBar.AlwaysOn visible: !isMobile && (root.contentHeight > root.height) opacity: (pressed || root.moving) ? 0.7 : 0.4 - - anchors.right: root.right - implicitHeight: root.height + anchors.right: parent.right contentItem: Rectangle { implicitWidth: 5 @@ -40,5 +38,4 @@ ScrollView { color: __style.darkGreenColor } } - } diff --git a/app/qml/form/MMPreviewDrawer.qml b/app/qml/form/MMPreviewDrawer.qml index 360cd777d..152aacd62 100644 --- a/app/qml/form/MMPreviewDrawer.qml +++ b/app/qml/form/MMPreviewDrawer.qml @@ -198,7 +198,7 @@ Item { model: root.controller.fieldModel delegate: Item { - width: ListView.view.width - ListView.view.width + width: ListView.view.width - ListView.view.scrollSpace height: childrenRect.height Column { diff --git a/app/qml/layers/MMFeaturesListPage.qml b/app/qml/layers/MMFeaturesListPage.qml index 1191399e9..952894924 100644 --- a/app/qml/layers/MMFeaturesListPage.qml +++ b/app/qml/layers/MMFeaturesListPage.qml @@ -10,7 +10,6 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import QtQml import mm 1.0 as MM diff --git a/app/qml/project/MMProjectWizardPage.qml b/app/qml/project/MMProjectWizardPage.qml index a6273f8e7..42f0f9391 100644 --- a/app/qml/project/MMProjectWizardPage.qml +++ b/app/qml/project/MMProjectWizardPage.qml @@ -70,7 +70,7 @@ MMComponents.MMPage { delegate: MMProjectComponents.MMProjectWizardDelegate { id: fieldDelegate - width: ListView.view.width - ListView.view.width + width: ListView.view.width - ListView.view.scrollSpace // find current index in the model comboboxField.comboboxModel: typesmodel diff --git a/app/qml/settings/MMLogPage.qml b/app/qml/settings/MMLogPage.qml index 1751985e7..2405186d1 100644 --- a/app/qml/settings/MMLogPage.qml +++ b/app/qml/settings/MMLogPage.qml @@ -53,7 +53,15 @@ MMPage { width: parent.width } - ScrollBar.vertical: ScrollBar { } + ScrollBar.vertical: ScrollBar { + opacity: (root.pressed || root.moving) ? 0.7 : 0.4 + + contentItem: Rectangle { + implicitWidth: 5 + radius: width / 2 + color: __style.darkGreenColor + } + } } MMButton { From e388951d9e71613e30501bfbb577dd0086313d36 Mon Sep 17 00:00:00 2001 From: Gabriel Bolbotina Date: Thu, 27 Nov 2025 09:10:44 +0200 Subject: [PATCH 10/18] Implemented review findings Added property to make the scroll bar disappear where is not needed --- app/qml/components/MMListView.qml | 7 ++++--- app/qml/components/MMScrollView.qml | 7 ++++--- app/qml/components/MMToolbar.qml | 1 + app/qml/settings/MMLogPage.qml | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/qml/components/MMListView.qml b/app/qml/components/MMListView.qml index 3ae19f85e..8bf37d6f8 100644 --- a/app/qml/components/MMListView.qml +++ b/app/qml/components/MMListView.qml @@ -22,13 +22,14 @@ ListView { cacheBuffer: 0 readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") property int scrollSpace: !isMobile ? 10 : 0 + property bool showScrollBar: true ScrollBar.vertical: ScrollBar { id: verticalScrollBar - policy: ScrollBar.AlwaysOn - visible: !isMobile && (root.contentHeight > root.height) - opacity: (pressed || root.moving) ? 0.7 : 0.4 + policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn + visible: showScrollBar + opacity: active ? 0.7 : 0.4 contentItem: Rectangle { implicitWidth: 5 diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index 077532ed6..ad56f36a0 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -19,6 +19,7 @@ ScrollView { readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") property int scrollSpace: !isMobile ? 10 : 0 + property bool showScrollBar: true contentWidth: availableWidth - scrollSpace @@ -26,9 +27,9 @@ ScrollView { ScrollBar.vertical: ScrollBar { id: verticalScrollBar - policy: ScrollBar.AlwaysOn - visible: !isMobile && (root.contentHeight > root.height) - opacity: (pressed || root.moving) ? 0.7 : 0.4 + policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn + visible: showScrollBar + opacity: active ? 0.7 : 0.4 implicitHeight: root.height anchors.right: parent.right diff --git a/app/qml/components/MMToolbar.qml b/app/qml/components/MMToolbar.qml index 3e1568fca..1ba271f8d 100644 --- a/app/qml/components/MMToolbar.qml +++ b/app/qml/components/MMToolbar.qml @@ -43,6 +43,7 @@ Rectangle { MMListView { id: toolbar + showScrollBar : false onWidthChanged: root.recalculate() model: toolbarModel diff --git a/app/qml/settings/MMLogPage.qml b/app/qml/settings/MMLogPage.qml index 2405186d1..d76e91799 100644 --- a/app/qml/settings/MMLogPage.qml +++ b/app/qml/settings/MMLogPage.qml @@ -54,7 +54,7 @@ MMPage { } ScrollBar.vertical: ScrollBar { - opacity: (root.pressed || root.moving) ? 0.7 : 0.4 + opacity: active ? 0.7 : 0.4 contentItem: Rectangle { implicitWidth: 5 From cc62cf3f3a3d1ae15a7c83e1c667aef49a29970f Mon Sep 17 00:00:00 2001 From: Gabriel Bolbotina Date: Thu, 27 Nov 2025 09:15:45 +0200 Subject: [PATCH 11/18] Addressed review findings --- app/qml/project/MMProjectList.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/qml/project/MMProjectList.qml b/app/qml/project/MMProjectList.qml index 315daa295..6858a7f3d 100644 --- a/app/qml/project/MMProjectList.qml +++ b/app/qml/project/MMProjectList.qml @@ -94,6 +94,7 @@ Item { delegate: MMProjectComponents.MMProjectDelegate { id: projectDelegate + width: ListView.view.width - ListView.view.scrollSpace height: visible ? implicitHeight : 0 projectDisplayName: root.projectModelType === MM.ProjectsModel.WorkspaceProjectsModel ? model.ProjectName : model.ProjectFullName From a71daba13622ffc57b3f4e1c7dbdfb204bbf3703 Mon Sep 17 00:00:00 2001 From: Gabriel Bolbotina Date: Fri, 28 Nov 2025 17:44:34 +0200 Subject: [PATCH 12/18] Implemented code findings --- app/qml/components/MMListDelegate.qml | 3 +-- app/qml/components/MMListView.qml | 8 ++++---- app/qml/components/MMScrollView.qml | 14 +++++++------- app/qml/components/MMToolbar.qml | 3 ++- app/qml/form/MMFormPage.qml | 2 +- app/qml/form/MMPreviewDrawer.qml | 2 +- app/qml/layers/MMLayerDetailPage.qml | 2 -- app/qml/project/MMProjectList.qml | 4 ++-- app/qml/project/MMProjectWizardPage.qml | 2 +- app/qml/project/components/MMProjectDelegate.qml | 2 +- 10 files changed, 20 insertions(+), 22 deletions(-) diff --git a/app/qml/components/MMListDelegate.qml b/app/qml/components/MMListDelegate.qml index 7f8f86237..ee15ca841 100644 --- a/app/qml/components/MMListDelegate.qml +++ b/app/qml/components/MMListDelegate.qml @@ -40,10 +40,9 @@ Item { property real verticalSpacing: root.secondaryText ? __style.margin8 : __style.margin20 - implicitWidth: ListView?.view?.width ?? 0 // in case ListView is injected as attached property (usually it is) + implicitWidth: ListView?.view?.width - ListView?.view?.scrollBarWidth ?? 0 // in case ListView is injected as attached property (usually it is) implicitHeight: contentLayout.implicitHeight height: visible ? implicitHeight : 0.1 // hide invisible items, for some reason setting 0 does not work ¯\_(ツ)_/¯ - width: implicitWidth - ( ListView?.view?.scrollSpace ?? 0 ) MouseArea { anchors.fill: contentLayout diff --git a/app/qml/components/MMListView.qml b/app/qml/components/MMListView.qml index 8bf37d6f8..cccd7c345 100644 --- a/app/qml/components/MMListView.qml +++ b/app/qml/components/MMListView.qml @@ -21,14 +21,14 @@ ListView { cacheBuffer: 0 readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") - property int scrollSpace: !isMobile ? 10 : 0 - property bool showScrollBar: true + readonly property int scrollBarWidth: !isMobile ? __style.margin10 : 0 + property alias showScrollBar: verticalScrollBar.policy - ScrollBar.vertical: ScrollBar { + ScrollBar.vertical: ScrollBar{ id: verticalScrollBar policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn - visible: showScrollBar + //visible: !isMobile && (root.contentHeight > root.height) opacity: active ? 0.7 : 0.4 contentItem: Rectangle { diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index ad56f36a0..c01805f4a 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -18,20 +18,19 @@ ScrollView { id: root readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") - property int scrollSpace: !isMobile ? 10 : 0 - property bool showScrollBar: true + readonly property int scrollBarWidth: !isMobile ? 10 : 0 + property alias showScrollBar: verticalScrollBar.policy - contentWidth: availableWidth - scrollSpace + contentWidth: availableWidth - scrollBarWidth ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - ScrollBar.vertical: ScrollBar { + + ScrollBar.vertical : ScrollBar { id: verticalScrollBar policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn - visible: showScrollBar + //visible: showScrollBar opacity: active ? 0.7 : 0.4 - implicitHeight: root.height - anchors.right: parent.right contentItem: Rectangle { implicitWidth: 5 @@ -40,3 +39,4 @@ ScrollView { } } } + diff --git a/app/qml/components/MMToolbar.qml b/app/qml/components/MMToolbar.qml index 1ba271f8d..3f1e2ade3 100644 --- a/app/qml/components/MMToolbar.qml +++ b/app/qml/components/MMToolbar.qml @@ -8,6 +8,7 @@ ***************************************************************************/ import QtQuick +import QtQuick.Controls import "./private" @@ -43,7 +44,7 @@ Rectangle { MMListView { id: toolbar - showScrollBar : false + showScrollBar : ScrollBar.AlwaysOff onWidthChanged: root.recalculate() model: toolbarModel diff --git a/app/qml/form/MMFormPage.qml b/app/qml/form/MMFormPage.qml index f85ce8bae..ad4bc4ef1 100644 --- a/app/qml/form/MMFormPage.qml +++ b/app/qml/form/MMFormPage.qml @@ -276,7 +276,7 @@ Page { Item { - width: ListView.view.width - ListView.view.scrollSpace + width: ListView.view.width - ListView.view.scrollBarWidth implicitHeight: childrenRect.height // In future, better to filter such fields in the field proxy model instead diff --git a/app/qml/form/MMPreviewDrawer.qml b/app/qml/form/MMPreviewDrawer.qml index 152aacd62..ac8a97d3c 100644 --- a/app/qml/form/MMPreviewDrawer.qml +++ b/app/qml/form/MMPreviewDrawer.qml @@ -198,7 +198,7 @@ Item { model: root.controller.fieldModel delegate: Item { - width: ListView.view.width - ListView.view.scrollSpace + width: ListView.view.width - ListView.view.scrollBarWidth height: childrenRect.height Column { diff --git a/app/qml/layers/MMLayerDetailPage.qml b/app/qml/layers/MMLayerDetailPage.qml index cc9ff8380..b065a85eb 100644 --- a/app/qml/layers/MMLayerDetailPage.qml +++ b/app/qml/layers/MMLayerDetailPage.qml @@ -193,8 +193,6 @@ Page { wrapMode: Text.WordWrap text: __inputUtils.layerAttribution(layerDetailData.mapLayer) } - - ScrollBar.vertical: ScrollBar {} } } } diff --git a/app/qml/project/MMProjectList.qml b/app/qml/project/MMProjectList.qml index 6858a7f3d..af8b3e77a 100644 --- a/app/qml/project/MMProjectList.qml +++ b/app/qml/project/MMProjectList.qml @@ -94,7 +94,7 @@ Item { delegate: MMProjectComponents.MMProjectDelegate { id: projectDelegate - width: ListView.view.width - ListView.view.scrollSpace + width: ListView.view.width - ListView.view.scrollBarWidth height: visible ? implicitHeight : 0 projectDisplayName: root.projectModelType === MM.ProjectsModel.WorkspaceProjectsModel ? model.ProjectName : model.ProjectFullName @@ -202,7 +202,7 @@ Item { topPadding: noLocalProjectsMessageContainer.visible ? noLocalProjectsMessageContainer.height + __style.margin40 : 0 - width: ListView.view.width - ListView.view.scrollSpace + width: ListView.view.width - ListView.view.scrollBarWidth Item { width: parent.width diff --git a/app/qml/project/MMProjectWizardPage.qml b/app/qml/project/MMProjectWizardPage.qml index 42f0f9391..0b0557f5b 100644 --- a/app/qml/project/MMProjectWizardPage.qml +++ b/app/qml/project/MMProjectWizardPage.qml @@ -70,7 +70,7 @@ MMComponents.MMPage { delegate: MMProjectComponents.MMProjectWizardDelegate { id: fieldDelegate - width: ListView.view.width - ListView.view.scrollSpace + width: ListView.view.width - ListView.view.scrollBarWidth // find current index in the model comboboxField.comboboxModel: typesmodel diff --git a/app/qml/project/components/MMProjectDelegate.qml b/app/qml/project/components/MMProjectDelegate.qml index 75ae4e08e..c51500805 100644 --- a/app/qml/project/components/MMProjectDelegate.qml +++ b/app/qml/project/components/MMProjectDelegate.qml @@ -37,7 +37,7 @@ Control { signal showChangesRequested() height: implicitHeight - width: ListView.view.width - ListView.view.scrollSpace + width: ListView.view.width - ListView.view.scrollBarWidth topPadding: __style.margin20 rightPadding: __style.margin20 From bdd273771a43b8ff6be29f8669228f2b7192a87d Mon Sep 17 00:00:00 2001 From: Gabriel Bolbotina Date: Wed, 3 Dec 2025 18:20:31 +0200 Subject: [PATCH 13/18] Removed customised scroll bar Made it visible in every situation --- app/qml/components/MMListView.qml | 9 +------- app/qml/components/MMScrollView.qml | 35 +++++++++-------------------- 2 files changed, 12 insertions(+), 32 deletions(-) diff --git a/app/qml/components/MMListView.qml b/app/qml/components/MMListView.qml index cccd7c345..95a177adf 100644 --- a/app/qml/components/MMListView.qml +++ b/app/qml/components/MMListView.qml @@ -28,13 +28,6 @@ ListView { id: verticalScrollBar policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn - //visible: !isMobile && (root.contentHeight > root.height) - opacity: active ? 0.7 : 0.4 - - contentItem: Rectangle { - implicitWidth: 5 - radius: width / 2 - color: __style.darkGreenColor - } + opacity: active ? 0.7 : 0.2 } } diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index c01805f4a..38cb4d8f8 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -1,3 +1,5 @@ + + /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * @@ -6,37 +8,22 @@ * (at your option) any later version. * * * ***************************************************************************/ - import QtQuick import QtQuick.Controls import QtQml -// Convenient class to use as a pageContent or drawerContent -// base element to make the content scroll - ScrollView { - id: root + id: root - readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") - readonly property int scrollBarWidth: !isMobile ? 10 : 0 - property alias showScrollBar: verticalScrollBar.policy + readonly property bool isMobile: (Qt.platform.os === "android" + || Qt.platform.os === "ios") + readonly property int scrollBarWidth: !isMobile ? 10 : 0 + property bool showScrollBar: root.ScrollBar.vertical.policy - contentWidth: availableWidth - scrollBarWidth - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + contentWidth: availableWidth - scrollBarWidth - ScrollBar.vertical : ScrollBar { - id: verticalScrollBar - - policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn - //visible: showScrollBar - opacity: active ? 0.7 : 0.4 - - contentItem: Rectangle { - implicitWidth: 5 - radius: width / 2 - color: __style.darkGreenColor - } - } + ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + ScrollBar.vertical.policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn + ScrollBar.vertical.opacity: active ? 0.7 : 0.2 } - From 9d217c36ab68a489dfc2aa7283c772e40a569c62 Mon Sep 17 00:00:00 2001 From: Gabriel Bolbotina Date: Thu, 4 Dec 2025 14:14:24 +0200 Subject: [PATCH 14/18] Added final version of the scrollbar --- app/qml/components/MMListView.qml | 3 ++- app/qml/components/MMScrollView.qml | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/qml/components/MMListView.qml b/app/qml/components/MMListView.qml index 95a177adf..df963776c 100644 --- a/app/qml/components/MMListView.qml +++ b/app/qml/components/MMListView.qml @@ -28,6 +28,7 @@ ListView { id: verticalScrollBar policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn - opacity: active ? 0.7 : 0.2 + visible: contentHeight > availableHeight ? true : false + opacity: active ? 0.7 : 0.4 } } diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index 38cb4d8f8..2b7cdff9a 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -1,5 +1,3 @@ - - /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * @@ -24,6 +22,9 @@ ScrollView { contentWidth: availableWidth - scrollBarWidth ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + + // vertical scroll bar should appear only when needed ScrollBar.vertical.policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn - ScrollBar.vertical.opacity: active ? 0.7 : 0.2 + ScrollBar.vertical.visible: contentHeight > availableHeight ? true : false + ScrollBar.vertical.opacity: active ? 0.7 : 0.4 } From b0c16d5e86a8a7bf7fe929f483c7fadb783850cb Mon Sep 17 00:00:00 2001 From: Gabriel Bolbotina Date: Thu, 4 Dec 2025 15:31:09 +0200 Subject: [PATCH 15/18] Added parameter to the preview drawer --- app/qml/form/MMPreviewDrawer.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/qml/form/MMPreviewDrawer.qml b/app/qml/form/MMPreviewDrawer.qml index ac8a97d3c..c53661d8c 100644 --- a/app/qml/form/MMPreviewDrawer.qml +++ b/app/qml/form/MMPreviewDrawer.qml @@ -193,12 +193,12 @@ Item { height: contentHeight spacing: __style.margin8 - interactive: false + showScrollBar: ScrollBar.AsNeeded model: root.controller.fieldModel delegate: Item { - width: ListView.view.width - ListView.view.scrollBarWidth + width: ListView.view.width height: childrenRect.height Column { From ff33ed98252c9dbc3c02ab515fb83b4c7509d9d4 Mon Sep 17 00:00:00 2001 From: Gabriel Bolbotina Date: Thu, 4 Dec 2025 18:22:22 +0200 Subject: [PATCH 16/18] Changes minor things --- app/qml/components/MMScrollView.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index 2b7cdff9a..f5b2c8542 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -15,7 +15,7 @@ ScrollView { readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") - readonly property int scrollBarWidth: !isMobile ? 10 : 0 + readonly property int scrollBarWidth: !isMobile ? __style.margin10 : 0 property bool showScrollBar: root.ScrollBar.vertical.policy From 81d6b1abdd72b77534d8fa2c88f056f4e2eace53 Mon Sep 17 00:00:00 2001 From: Gabriel Bolbotina Date: Mon, 8 Dec 2025 14:17:57 +0200 Subject: [PATCH 17/18] Implemented code review findings --- app/qml/components/MMListView.qml | 12 ++++++++---- app/qml/components/MMScrollView.qml | 14 ++++++++------ app/qml/components/MMToolbar.qml | 2 +- app/qml/form/MMPreviewDrawer.qml | 2 +- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/qml/components/MMListView.qml b/app/qml/components/MMListView.qml index df963776c..1a16399b2 100644 --- a/app/qml/components/MMListView.qml +++ b/app/qml/components/MMListView.qml @@ -20,15 +20,19 @@ ListView { id: root cacheBuffer: 0 - readonly property bool isMobile: (Qt.platform.os === "android" || Qt.platform.os === "ios") - readonly property int scrollBarWidth: !isMobile ? __style.margin10 : 0 - property alias showScrollBar: verticalScrollBar.policy + readonly property int scrollBarWidth: __inputUtils.isMobilePlatform ? 0 : __style.margin10 + property alias scrollBarPolicy: verticalScrollBar.policy ScrollBar.vertical: ScrollBar{ id: verticalScrollBar - policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn + // To make sure the scroll bar stays visible on desktop, even when not focused: + // - both 'policy' and 'visible' properties need to be set, with 'policy' set to AlwaysOn. + // - the use the 'AsNeeded' policy will make the scroll bar hide when not focused or in use, + // and only appear after the user starts scrolling. + policy: __inputUtils.isMobilePlatform ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn visible: contentHeight > availableHeight ? true : false opacity: active ? 0.7 : 0.4 + width: scrollBarWidth } } diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index f5b2c8542..fea6e0631 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -13,18 +13,20 @@ import QtQml ScrollView { id: root - readonly property bool isMobile: (Qt.platform.os === "android" - || Qt.platform.os === "ios") - readonly property int scrollBarWidth: !isMobile ? __style.margin10 : 0 - property bool showScrollBar: root.ScrollBar.vertical.policy + readonly property int scrollBarWidth: __inputUtils.isMobilePlatform ? 0 : __style.margin10 + property bool scrollBarPolicy: root.ScrollBar.vertical.policy contentWidth: availableWidth - scrollBarWidth ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - // vertical scroll bar should appear only when needed - ScrollBar.vertical.policy: isMobile ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn + // To make sure the scroll bar stays visible on desktop, even when not focused: + // - both 'policy' and 'visible' properties need to be set, with 'policy' set to AlwaysOn. + // - the use the 'AsNeeded' policy will make the scroll bar hide when not focused or in use, + // and only appear after the user starts scrolling. + ScrollBar.vertical.policy: __inputUtils.isMobilePlatform ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn ScrollBar.vertical.visible: contentHeight > availableHeight ? true : false ScrollBar.vertical.opacity: active ? 0.7 : 0.4 + ScrollBar.vertical.width: scrollBarWidth } diff --git a/app/qml/components/MMToolbar.qml b/app/qml/components/MMToolbar.qml index 3f1e2ade3..b9ff24f7e 100644 --- a/app/qml/components/MMToolbar.qml +++ b/app/qml/components/MMToolbar.qml @@ -44,7 +44,7 @@ Rectangle { MMListView { id: toolbar - showScrollBar : ScrollBar.AlwaysOff + scrollBarPolicy : ScrollBar.AlwaysOff onWidthChanged: root.recalculate() model: toolbarModel diff --git a/app/qml/form/MMPreviewDrawer.qml b/app/qml/form/MMPreviewDrawer.qml index c53661d8c..1ab4e163d 100644 --- a/app/qml/form/MMPreviewDrawer.qml +++ b/app/qml/form/MMPreviewDrawer.qml @@ -193,7 +193,7 @@ Item { height: contentHeight spacing: __style.margin8 - showScrollBar: ScrollBar.AsNeeded + scrollBarPolicy: ScrollBar.AsNeeded model: root.controller.fieldModel From 57cf4118866d839d8f3a4b96bef166762bd8eae3 Mon Sep 17 00:00:00 2001 From: Gabriel Bolbotina Date: Tue, 16 Dec 2025 11:53:15 +0200 Subject: [PATCH 18/18] Implemented code findings --- app/inpututils.h | 2 +- app/qml/components/MMListView.qml | 4 ++-- app/qml/components/MMScrollView.qml | 15 +++++++++------ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/inpututils.h b/app/inpututils.h index 545b358d0..efca2b6b6 100644 --- a/app/inpututils.h +++ b/app/inpututils.h @@ -222,7 +222,7 @@ class InputUtils: public QObject /** InputApp platform */ static QString appPlatform(); - static bool isMobilePlatform(); + Q_INVOKABLE static bool isMobilePlatform(); static QString appDataDir(); diff --git a/app/qml/components/MMListView.qml b/app/qml/components/MMListView.qml index 1a16399b2..ec0bb440e 100644 --- a/app/qml/components/MMListView.qml +++ b/app/qml/components/MMListView.qml @@ -20,7 +20,7 @@ ListView { id: root cacheBuffer: 0 - readonly property int scrollBarWidth: __inputUtils.isMobilePlatform ? 0 : __style.margin10 + readonly property int scrollBarWidth: __inputUtils.isMobilePlatform() ? 0 : __style.margin10 property alias scrollBarPolicy: verticalScrollBar.policy ScrollBar.vertical: ScrollBar{ @@ -30,7 +30,7 @@ ListView { // - both 'policy' and 'visible' properties need to be set, with 'policy' set to AlwaysOn. // - the use the 'AsNeeded' policy will make the scroll bar hide when not focused or in use, // and only appear after the user starts scrolling. - policy: __inputUtils.isMobilePlatform ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn + policy: __inputUtils.isMobilePlatform() ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn visible: contentHeight > availableHeight ? true : false opacity: active ? 0.7 : 0.4 width: scrollBarWidth diff --git a/app/qml/components/MMScrollView.qml b/app/qml/components/MMScrollView.qml index fea6e0631..77565dbd3 100644 --- a/app/qml/components/MMScrollView.qml +++ b/app/qml/components/MMScrollView.qml @@ -13,8 +13,8 @@ import QtQml ScrollView { id: root - readonly property int scrollBarWidth: __inputUtils.isMobilePlatform ? 0 : __style.margin10 - property bool scrollBarPolicy: root.ScrollBar.vertical.policy + readonly property int scrollBarWidth: __inputUtils.isMobilePlatform() ? 0 : __style.margin10 + property bool scrollBarPolicy: verticalScrollBar.policy contentWidth: availableWidth - scrollBarWidth @@ -25,8 +25,11 @@ ScrollView { // - both 'policy' and 'visible' properties need to be set, with 'policy' set to AlwaysOn. // - the use the 'AsNeeded' policy will make the scroll bar hide when not focused or in use, // and only appear after the user starts scrolling. - ScrollBar.vertical.policy: __inputUtils.isMobilePlatform ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn - ScrollBar.vertical.visible: contentHeight > availableHeight ? true : false - ScrollBar.vertical.opacity: active ? 0.7 : 0.4 - ScrollBar.vertical.width: scrollBarWidth + ScrollBar.vertical { + id : verticalScrollBar + policy: __inputUtils.isMobilePlatform() ? ScrollBar.AlwaysOff : ScrollBar.AlwaysOn + visible: contentHeight > availableHeight ? true : false + opacity: active ? 0.7 : 0.4 + width: scrollBarWidth + } }