summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2020-11-25 14:13:29 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-12-17 09:17:54 -0800
commit17207917868476622b00656fc5f139ae126b90ff (patch)
tree15ac5c136cb0fa173ba714e06363b86fd720d260
parent3c89964d797ea11fbeff18ead576a46f576a91e5 (diff)
downloadsubsurface-17207917868476622b00656fc5f139ae126b90ff.tar.gz
kirigami: maintain our patches relative to upstream
Having them as commits like this should make it easier to migrate them as we update the underlying Kirigami version. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--mobile-widgets/3rdparty/0001-global-drawer-expose-pop-function.patch42
-rw-r--r--mobile-widgets/3rdparty/0002-global-drawer-disable-built-in-back-button.patch35
-rw-r--r--mobile-widgets/3rdparty/0003-global-drawer-remove-padding-around-the-title-image.patch38
-rw-r--r--mobile-widgets/3rdparty/0004-action-button-make-wider-for-easier-use.patch149
-rw-r--r--mobile-widgets/3rdparty/0005-breadcrumbs-get-better-font-size.patch42
-rw-r--r--mobile-widgets/3rdparty/0006-avatar-apparently-you-can-t-add-QChars-to-make-a-QSt.patch54
-rw-r--r--mobile-widgets/3rdparty/0007-breadcrumbs-deal-with-incorrect-height-of-title-bar.patch109
-rw-r--r--mobile-widgets/3rdparty/0008-include-the-shared-not-shared-result-in-log.patch33
-rw-r--r--mobile-widgets/3rdparty/0009-qmake-build-add-missing-sizegroup-source-header.patch35
-rw-r--r--mobile-widgets/3rdparty/0010-don-t-use-yet.patch26
-rw-r--r--mobile-widgets/3rdparty/0011-ensure-forward-backward-arrows-are-rendered.patch57
-rw-r--r--scripts/kirigami.diff345
-rwxr-xr-xscripts/mobilecomponents.sh8
13 files changed, 628 insertions, 345 deletions
diff --git a/mobile-widgets/3rdparty/0001-global-drawer-expose-pop-function.patch b/mobile-widgets/3rdparty/0001-global-drawer-expose-pop-function.patch
new file mode 100644
index 000000000..a818b5b9f
--- /dev/null
+++ b/mobile-widgets/3rdparty/0001-global-drawer-expose-pop-function.patch
@@ -0,0 +1,42 @@
+From c0c5903023e24387e509d1e28ca4915d81a30319 Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Tue, 24 Nov 2020 20:52:18 -0800
+Subject: [PATCH 01/11] global drawer: expose pop() function
+
+This allows us to implement our own back button.
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ src/controls/GlobalDrawer.qml | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/controls/GlobalDrawer.qml b/src/controls/GlobalDrawer.qml
+index b7163b70..da576177 100644
+--- a/src/controls/GlobalDrawer.qml
++++ b/src/controls/GlobalDrawer.qml
+@@ -232,6 +232,13 @@ OverlayDrawer {
+ */
+ property bool isMenu: false
+
++ /**
++ * pop: function
++ *
++ * Point to the pop function of the stackView inside the scrollView in order to be able to implement the Back button in the caller
++ */
++ function pop() { stackView.pop() }
++
+ /**
+ * Notifies that the banner has been clicked
+ */
+@@ -278,6 +285,8 @@ OverlayDrawer {
+ topMargin: headerParent.height + headerParent.y
+ }
+
++ function pop() { stackView.pop() }
++
+ Flickable {
+ id: mainFlickable
+ contentWidth: width
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0002-global-drawer-disable-built-in-back-button.patch b/mobile-widgets/3rdparty/0002-global-drawer-disable-built-in-back-button.patch
new file mode 100644
index 000000000..6de6fcf94
--- /dev/null
+++ b/mobile-widgets/3rdparty/0002-global-drawer-disable-built-in-back-button.patch
@@ -0,0 +1,35 @@
+From a110673e4a98dca385a0e500493e86dcdcd6ddf1 Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Tue, 24 Nov 2020 20:52:28 -0800
+Subject: [PATCH 02/11] global drawer: disable built-in back button
+
+It's really ugly, let's do our own.
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ src/controls/GlobalDrawer.qml | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/controls/GlobalDrawer.qml b/src/controls/GlobalDrawer.qml
+index da576177..e2a6d391 100644
+--- a/src/controls/GlobalDrawer.qml
++++ b/src/controls/GlobalDrawer.qml
+@@ -464,6 +464,7 @@ OverlayDrawer {
+ property int level: 0
+ Layout.maximumHeight: Layout.minimumHeight
+
++/* the Kirigami back item is ugly - we prefer to do our own
+ BasicListItem {
+ id: backItem
+ visible: level > 0
+@@ -482,6 +483,7 @@ OverlayDrawer {
+ sequence: backItem.MnemonicData.sequence
+ onActivated: backItem.clicked()
+ }
++*/
+
+ Repeater {
+ id: actionsRepeater
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0003-global-drawer-remove-padding-around-the-title-image.patch b/mobile-widgets/3rdparty/0003-global-drawer-remove-padding-around-the-title-image.patch
new file mode 100644
index 000000000..a1f9b8b46
--- /dev/null
+++ b/mobile-widgets/3rdparty/0003-global-drawer-remove-padding-around-the-title-image.patch
@@ -0,0 +1,38 @@
+From 14fa735a07bab109cb3f1d5a00aba1fe7e2e6382 Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Wed, 25 Nov 2020 09:43:00 -0800
+Subject: [PATCH 03/11] global drawer: remove padding around the title image
+
+This looks simply odd - no idea why that's there.
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ src/controls/GlobalDrawer.qml | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/src/controls/GlobalDrawer.qml b/src/controls/GlobalDrawer.qml
+index e2a6d391..456854b5 100644
+--- a/src/controls/GlobalDrawer.qml
++++ b/src/controls/GlobalDrawer.qml
+@@ -365,17 +365,13 @@ OverlayDrawer {
+ ColumnLayout {
+ id: topContent
+ spacing: 0
+- Layout.alignment: Qt.AlignHCenter
+- Layout.leftMargin: root.leftPadding
+- Layout.rightMargin: root.rightPadding
+ Layout.bottomMargin: Units.smallSpacing
+- Layout.topMargin: root.topPadding
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.preferredHeight: implicitHeight * opacity
+ //NOTE: why this? just Layout.fillWidth: true doesn't seem sufficient
+ //as items are added only after this column creation
+- Layout.minimumWidth: parent.width - root.leftPadding - root.rightPadding
++ Layout.minimumWidth: parent.width
+ visible: children.length > 0 && childrenRect.height > 0 && opacity > 0
+ opacity: !root.collapsed || showTopContentWhenCollapsed
+ Behavior on opacity {
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0004-action-button-make-wider-for-easier-use.patch b/mobile-widgets/3rdparty/0004-action-button-make-wider-for-easier-use.patch
new file mode 100644
index 000000000..4128bdfff
--- /dev/null
+++ b/mobile-widgets/3rdparty/0004-action-button-make-wider-for-easier-use.patch
@@ -0,0 +1,149 @@
+From b23502b18e8170d56a5fdf4d49c923ed674e7f66 Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Wed, 25 Nov 2020 13:45:32 -0800
+Subject: [PATCH 04/11] action button: make wider for easier use
+
+And remove the horrible 'dragging the button opens the drawer' user
+experience. That's just unusable on a mobile device.
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ src/controls/private/ActionButton.qml | 77 +++++++++------------------
+ 1 file changed, 24 insertions(+), 53 deletions(-)
+
+diff --git a/src/controls/private/ActionButton.qml b/src/controls/private/ActionButton.qml
+index 030dae51..60dccb8f 100644
+--- a/src/controls/private/ActionButton.qml
++++ b/src/controls/private/ActionButton.qml
+@@ -56,25 +56,9 @@ Item {
+
+ anchors.bottom: edgeMouseArea.bottom
+
+- implicitWidth: implicitHeight + Units.iconSizes.smallMedium*2 + Units.gridUnit
++ implicitWidth: implicitHeight + Units.iconSizes.smallMedium * 4 + Units.gridUnit
+ implicitHeight: Units.iconSizes.medium + Units.largeSpacing * 2
+
+-
+- onXChanged: {
+- if (mouseArea.pressed || edgeMouseArea.pressed || fakeContextMenuButton.pressed) {
+- if (root.hasGlobalDrawer && globalDrawer.enabled && globalDrawer.modal) {
+- globalDrawer.peeking = true;
+- globalDrawer.visible = true;
+- globalDrawer.position = Math.min(1, Math.max(0, (x - root.width/2 + button.width/2)/globalDrawer.contentItem.width + mouseArea.drawerShowAdjust));
+- }
+- if (root.hasContextDrawer && contextDrawer.enabled && contextDrawer.modal) {
+- contextDrawer.peeking = true;
+- contextDrawer.visible = true;
+- contextDrawer.position = Math.min(1, Math.max(0, (root.width/2 - button.width/2 - x)/contextDrawer.contentItem.width + mouseArea.drawerShowAdjust));
+- }
+- }
+- }
+-
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+@@ -83,14 +67,6 @@ Item {
+ property bool internalVisibility: (!root.hasApplicationWindow || (applicationWindow().controlsVisible && applicationWindow().height > root.height*2)) && (root.action === null || root.action.visible === undefined || root.action.visible)
+ preventStealing: true
+
+- drag {
+- target: button
+- //filterChildren: true
+- axis: Drag.XAxis
+- minimumX: root.hasContextDrawer && contextDrawer.enabled && contextDrawer.modal ? 0 : root.width/2 - button.width/2
+- maximumX: root.hasGlobalDrawer && globalDrawer.enabled && globalDrawer.modal ? root.width : root.width/2 - button.width/2
+- }
+-
+ property var downTimestamp;
+ property int startX
+ property int startMouseY
+@@ -127,30 +103,7 @@ Item {
+ onReleased: {
+ if (root.hasGlobalDrawer) globalDrawer.peeking = false;
+ if (root.hasContextDrawer) contextDrawer.peeking = false;
+- //pixel/second
+- var x = button.x + button.width/2;
+- var speed = ((x - startX) / ((new Date()).getTime() - downTimestamp) * 1000);
+- drawerShowAdjust = 0;
+
+- //project where it would be a full second in the future
+- if (root.hasContextDrawer && root.hasGlobalDrawer && globalDrawer.modal && x + speed > Math.min(root.width/4*3, root.width/2 + globalDrawer.contentItem.width/2)) {
+- globalDrawer.open();
+- contextDrawer.close();
+- } else if (root.hasContextDrawer && x + speed < Math.max(root.width/4, root.width/2 - contextDrawer.contentItem.width/2)) {
+- if (root.hasContextDrawer && contextDrawer.modal) {
+- contextDrawer.open();
+- }
+- if (root.hasGlobalDrawer && globalDrawer.modal) {
+- globalDrawer.close();
+- }
+- } else {
+- if (root.hasGlobalDrawer && globalDrawer.modal) {
+- globalDrawer.close();
+- }
+- if (root.hasContextDrawer && contextDrawer.modal) {
+- contextDrawer.close();
+- }
+- }
+ //Don't rely on native onClicked, but fake it here:
+ //Qt.startDragDistance is not adapted to devices dpi in case
+ //of Android, so consider the button "clicked" when:
+@@ -184,10 +137,6 @@ Item {
+ }
+ }
+
+- onPositionChanged: {
+- drawerShowAdjust = Math.min(0.3, Math.max(0, (startMouseY - mouse.y)/(Units.gridUnit*15)));
+- button.xChanged();
+- }
+ onPressAndHold: {
+ if (!actionUnderMouse) {
+ return;
+@@ -274,7 +223,7 @@ Item {
+ bottomMargin: Units.smallSpacing
+ }
+ enabled: root.leftAction && root.leftAction.enabled
+- radius: Units.devicePixelRatio*2
++ radius: Units.devicePixelRatio*4
+ height: Units.iconSizes.smallMedium + Units.smallSpacing * 2
+ width: height + (root.action ? Units.gridUnit*2 : 0)
+ visible: root.leftAction
+@@ -309,6 +258,17 @@ Item {
+ margins: Units.smallSpacing * 2
+ }
+ }
++ Rectangle {
++ anchors.left: parent.left
++ anchors.leftMargin: Units.smallSpacing
++ anchors.verticalCenter: parent.verticalCenter
++ width: Units.iconSizes.smallMedium + Units.smallSpacing * 2
++ height: width
++ radius: width / 2
++ color: "transparent"
++ border.color: Qt.lighter(buttonGraphics.baseColor, 1.1)
++ border.width: 0.5
++ }
+ }
+ //right button
+ Rectangle {
+@@ -355,6 +315,17 @@ Item {
+ margins: Units.smallSpacing * 2
+ }
+ }
++ Rectangle {
++ anchors.right: parent.right
++ anchors.rightMargin: Units.smallSpacing
++ anchors.verticalCenter: parent.verticalCenter
++ width: Units.iconSizes.smallMedium + Units.smallSpacing * 2
++ height: width
++ radius: width / 2
++ color: "transparent"
++ border.color: Qt.lighter(buttonGraphics.baseColor, 1.1)
++ border.width: 0.5
++ }
+ }
+ }
+
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0005-breadcrumbs-get-better-font-size.patch b/mobile-widgets/3rdparty/0005-breadcrumbs-get-better-font-size.patch
new file mode 100644
index 000000000..eceb3a4fd
--- /dev/null
+++ b/mobile-widgets/3rdparty/0005-breadcrumbs-get-better-font-size.patch
@@ -0,0 +1,42 @@
+From 5e745f7a02fd967dbfabeba0871025b1513ce1d4 Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Wed, 25 Nov 2020 13:51:35 -0800
+Subject: [PATCH 05/11] breadcrumbs: get better font size
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ src/controls/Units.qml | 5 +++++
+ src/controls/private/globaltoolbar/BreadcrumbControl.qml | 1 +
+ 2 files changed, 6 insertions(+)
+
+diff --git a/src/controls/Units.qml b/src/controls/Units.qml
+index 615228a2..f957046f 100644
+--- a/src/controls/Units.qml
++++ b/src/controls/Units.qml
+@@ -105,6 +105,11 @@ QtObject {
+ */
+ readonly property int wheelScrollLines: 3
+
++ /**
++ * Use this to hardcode the font size of the global toolbar that Kirigami gets wrong
++ */
++ property double defaultFontSize: fontMetrics.font.pixelSize
++
+ /**
+ * metrics used by the default font
+ */
+diff --git a/src/controls/private/globaltoolbar/BreadcrumbControl.qml b/src/controls/private/globaltoolbar/BreadcrumbControl.qml
+index ad80d222..c45db280 100644
+--- a/src/controls/private/globaltoolbar/BreadcrumbControl.qml
++++ b/src/controls/private/globaltoolbar/BreadcrumbControl.qml
+@@ -69,6 +69,7 @@ Flickable {
+ }
+ Kirigami.Heading {
+ Layout.leftMargin: Kirigami.Units.largeSpacing
++ font.pixelSize: Math.max(1, Kirigami.Units.defaultFontSize)
+ color: Kirigami.Theme.textColor
+ verticalAlignment: Text.AlignVCenter
+ wrapMode: Text.NoWrap
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0006-avatar-apparently-you-can-t-add-QChars-to-make-a-QSt.patch b/mobile-widgets/3rdparty/0006-avatar-apparently-you-can-t-add-QChars-to-make-a-QSt.patch
new file mode 100644
index 000000000..4d67e247d
--- /dev/null
+++ b/mobile-widgets/3rdparty/0006-avatar-apparently-you-can-t-add-QChars-to-make-a-QSt.patch
@@ -0,0 +1,54 @@
+From 078197bac6507633833f5275e4ef333975766896 Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Thu, 26 Nov 2020 19:35:40 +0000
+Subject: [PATCH 06/11] avatar: apparently you can't add QChars to make a
+ QString
+
+I'm a bit surprised that a bug like this would make it into a release.
+That makes me think that there's something wrong with the way we compile
+this on Android.
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ kirigami.pri | 14 +++++++-------
+ src/avatar.cpp | 2 +-
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/kirigami.pri b/kirigami.pri
+index 6012f1b9..65a77646 100644
+--- a/kirigami.pri
++++ b/kirigami.pri
+@@ -70,10 +70,10 @@ API_VER=1.0
+
+ RESOURCES += $$PWD/kirigami.qrc $$PWD/src/scenegraph/shaders/shaders.qrc
+
+-exists($$_PRO_FILE_PWD_/kirigami-icons.qrc) {
+- message("Using icons QRC file shipped by the project")
+- RESOURCES += $$_PRO_FILE_PWD_/kirigami-icons.qrc
+-} else {
+- message("Using icons QRCfile shipped in kirigami")
+- RESOURCES += $$PWD/kirigami-icons.qrc
+-}
++# exists($$_PRO_FILE_PWD_/kirigami-icons.qrc) {
++# message("Using icons QRC file shipped by the project")
++# RESOURCES += $$_PRO_FILE_PWD_/kirigami-icons.qrc
++# } else {
++# message("Using icons QRCfile shipped in kirigami")
++# RESOURCES += $$PWD/kirigami-icons.qrc
++# }
+diff --git a/src/avatar.cpp b/src/avatar.cpp
+index 13ab2825..d660c635 100644
+--- a/src/avatar.cpp
++++ b/src/avatar.cpp
+@@ -49,7 +49,7 @@ QString AvatarPrivate::initialsFromString(const QString& string)
+ return QString(first.front());
+ }
+ // "FirstName" "LastName" -> "FL"
+- return first.front() + last.front();
++ return QString(first.front()) + last.front();
+ // "OneName"
+ } else {
+ // "OneName" -> "O"
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0007-breadcrumbs-deal-with-incorrect-height-of-title-bar.patch b/mobile-widgets/3rdparty/0007-breadcrumbs-deal-with-incorrect-height-of-title-bar.patch
new file mode 100644
index 000000000..f1fae6fbc
--- /dev/null
+++ b/mobile-widgets/3rdparty/0007-breadcrumbs-deal-with-incorrect-height-of-title-bar.patch
@@ -0,0 +1,109 @@
+From 766da540c8859cc0983b73726dab3ce743109c16 Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Thu, 3 Dec 2020 13:51:36 -0800
+Subject: [PATCH 07/11] breadcrumbs: deal with incorrect height of title bar
+
+I can see that the Kirigami developers have made changes here, but
+this still doesn't work without that invisible element.
+
+This also hardcodes our background color for the title bar as that
+theming always goes wrong.
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ .../globaltoolbar/PageRowGlobalToolBarUI.qml | 18 +++++++++++++++---
+ src/controls/templates/private/BackButton.qml | 1 +
+ .../templates/private/ForwardButton.qml | 1 +
+ 3 files changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml b/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml
+index 4404faae..e0b26e88 100644
+--- a/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml
++++ b/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml
+@@ -28,6 +28,7 @@ Kirigami.AbstractApplicationHeader {
+ preferredHeight: globalToolBar.preferredHeight
+ maximumHeight: globalToolBar.maximumHeight
+ separatorVisible: globalToolBar.separatorVisible
++ background: Rectangle { color: subsurfaceTheme.primaryColor }
+
+ Kirigami.Theme.textColor: currentItem ? currentItem.Kirigami.Theme.textColor : parent.Kirigami.Theme.textColor
+
+@@ -35,6 +36,14 @@ Kirigami.AbstractApplicationHeader {
+ anchors.fill: parent
+ spacing: 0
+
++ // I can't make the layout work without this invisible rectangle to anchor things on
++ Rectangle {
++ id: correct
++ height: parent.height
++ width: 0
++ color: "transparent"
++ }
++
+ Item {
+ id: leftHandleAnchor
+ visible: (typeof applicationWindow() !== "undefined" && applicationWindow().globalDrawer && applicationWindow().globalDrawer.enabled && applicationWindow().globalDrawer.handleVisible &&
+@@ -67,6 +76,7 @@ Kirigami.AbstractApplicationHeader {
+ Layout.fillHeight: true
+
+ Layout.leftMargin: leftHandleAnchor.visible ? Kirigami.Units.smallSpacing : 0
++ Layout.alignment: Qt.AlignTop | Qt.AlignVCenter
+
+ visible: (globalToolBar.showNavigationButtons != Kirigami.ApplicationHeaderStyle.NoNavigationButtons || root.layers.depth > 0) && (globalToolBar.actualStyle != Kirigami.ApplicationHeaderStyle.None)
+
+@@ -76,16 +86,18 @@ Kirigami.AbstractApplicationHeader {
+ id: backButton
+ Layout.leftMargin: leftHandleAnchor.visible ? 0 : Kirigami.Units.smallSpacing
+ Layout.preferredWidth: height
+- Layout.maximumHeight: buttonsLayout.height
++ Layout.topMargin: 0
++ Layout.maximumHeight: correct.height
+ }
+ TemplatesPrivate.ForwardButton {
+- Layout.maximumHeight: buttonsLayout.height
++ Layout.maximumHeight: correct.height
+ Layout.preferredWidth: height
+ }
+ }
+
+ QQC2.ToolSeparator {
+ visible: (menuButton.visible || (buttonsLayout.visible && buttonsLayout.visibleChildren.length > 0)) && breadcrumbVisible && pageRow.depth > 1
++ Layout.maximumHeight: correct.height
+ }
+
+ Loader {
+@@ -124,6 +136,6 @@ Kirigami.AbstractApplicationHeader {
+ Layout.preferredWidth: height
+ }
+ }
+- background.opacity: breadcrumbLoader.opacity
++ //background.opacity: breadcrumbLoader.opacity
+ }
+
+diff --git a/src/controls/templates/private/BackButton.qml b/src/controls/templates/private/BackButton.qml
+index 85a46d15..d1076080 100644
+--- a/src/controls/templates/private/BackButton.qml
++++ b/src/controls/templates/private/BackButton.qml
+@@ -14,6 +14,7 @@ Controls.ToolButton {
+ id: button
+
+ icon.name: (LayoutMirroring.enabled ? "go-previous-symbolic-rtl" : "go-previous-symbolic")
++ icon.source: (LayoutMirroring.enabled ? "go-previous-symbolic-rtl" : "go-previous-symbolic")
+
+ enabled: applicationWindow().pageStack.layers.depth > 1 || (applicationWindow().pageStack.depth > 1 && (applicationWindow().pageStack.currentIndex > 0 || applicationWindow().pageStack.contentItem.contentX > 0))
+
+diff --git a/src/controls/templates/private/ForwardButton.qml b/src/controls/templates/private/ForwardButton.qml
+index c756e030..68a3901b 100644
+--- a/src/controls/templates/private/ForwardButton.qml
++++ b/src/controls/templates/private/ForwardButton.qml
+@@ -14,6 +14,7 @@ Controls.ToolButton {
+ id: button
+
+ icon.name: (LayoutMirroring.enabled ? "go-next-symbolic-rtl" : "go-next-symbolic")
++ icon.source: (LayoutMirroring.enabled ? "go-next-symbolic-rtl" : "go-next-symbolic")
+
+ enabled: applicationWindow().pageStack.currentIndex < applicationWindow().pageStack.depth-1
+
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0008-include-the-shared-not-shared-result-in-log.patch b/mobile-widgets/3rdparty/0008-include-the-shared-not-shared-result-in-log.patch
new file mode 100644
index 000000000..38bb2aa7d
--- /dev/null
+++ b/mobile-widgets/3rdparty/0008-include-the-shared-not-shared-result-in-log.patch
@@ -0,0 +1,33 @@
+From a17a22e08e3398b243dbc369a8ff4c790c58db44 Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Thu, 3 Dec 2020 15:01:18 -0800
+Subject: [PATCH 08/11] include the shared / not shared result in log
+
+We shouldn't be building Kirigami as shared library, yet that's
+what makes our GitHub builds fail.
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9f1404ac..6e4f4bba 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -37,9 +37,12 @@ set(AUTOMOC_MOC_OPTIONS -Muri=org.kde.kirigami)
+ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+ if(NOT BUILD_SHARED_LIBS)
++ message(STATUS "Static build of libkirigami")
+ add_definitions(-DKIRIGAMI_BUILD_TYPE_STATIC)
+ add_definitions(-DQT_PLUGIN)
+ add_definitions(-DQT_STATICPLUGIN=1)
++else()
++ message(STATUS "Shared build of libkirigami -- BUILD_SHARED_LIBS is \"${BUILD_SHARED_LIBS}\"")
+ endif()
+
+ ################# set KDE specific information #################
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0009-qmake-build-add-missing-sizegroup-source-header.patch b/mobile-widgets/3rdparty/0009-qmake-build-add-missing-sizegroup-source-header.patch
new file mode 100644
index 000000000..0f4b2f8ed
--- /dev/null
+++ b/mobile-widgets/3rdparty/0009-qmake-build-add-missing-sizegroup-source-header.patch
@@ -0,0 +1,35 @@
+From d3243df32cae73201d93da366893c969ef574e8f Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Sat, 12 Dec 2020 10:48:24 -0800
+Subject: [PATCH 09/11] qmake build: add missing sizegroup source/header
+
+This seems to have been missed in commit bbca96262e ("Introduce SizeGroup").
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ kirigami.pri | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/kirigami.pri b/kirigami.pri
+index 65a77646..35c4a34d 100644
+--- a/kirigami.pri
++++ b/kirigami.pri
+@@ -26,6 +26,7 @@ HEADERS += $$PWD/src/kirigamiplugin.h \
+ $$PWD/src/wheelhandler.h \
+ $$PWD/src/shadowedrectangle.h \
+ $$PWD/src/shadowedtexture.h \
++ $$PWD/src/sizegroup.h \
+ $$PWD/src/pagerouter.h \
+ $$PWD/src/pagepool.h \
+ $$PWD/src/avatar.h \
+@@ -57,6 +58,7 @@ SOURCES += $$PWD/src/kirigamiplugin.cpp \
+ $$PWD/src/wheelhandler.cpp \
+ $$PWD/src/shadowedrectangle.cpp \
+ $$PWD/src/shadowedtexture.cpp \
++ $$PWD/src/sizegroup.cpp \
+ $$PWD/src/pagerouter.cpp \
+ $$PWD/src/pagepool.cpp \
+ $$PWD/src/avatar.cpp \
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0010-don-t-use-yet.patch b/mobile-widgets/3rdparty/0010-don-t-use-yet.patch
new file mode 100644
index 000000000..adc48d69a
--- /dev/null
+++ b/mobile-widgets/3rdparty/0010-don-t-use-yet.patch
@@ -0,0 +1,26 @@
+From 4c364152dcff6de56c8356922f48c2c069c71ef2 Mon Sep 17 00:00:00 2001
+From: Marco Martin <notmart@gmail.com>
+Date: Mon, 14 Dec 2020 11:07:06 +0100
+Subject: [PATCH 10/11] don't use ?? yet
+
+---
+ src/controls/AbstractApplicationItem.qml | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/controls/AbstractApplicationItem.qml b/src/controls/AbstractApplicationItem.qml
+index 718ecd6e..fecc431a 100644
+--- a/src/controls/AbstractApplicationItem.qml
++++ b/src/controls/AbstractApplicationItem.qml
+@@ -191,7 +191,8 @@ Item {
+ menuBar.position = T.DialogButtonBox.Footer
+ }
+ menuBar.width = Qt.binding(() => root.contentItem.width)
+- menuBar.y = Qt.binding(() => -menuBar.height - (root.header.height ?? 0))
++ //FIXME: (root.header.height ?? 0) when we can depend from 5.15
++ menuBar.y = Qt.binding(() => -menuBar.height - (root.header.height ? root.header.height : 0))
+ }
+
+ /**
+--
+2.25.1
+
diff --git a/mobile-widgets/3rdparty/0011-ensure-forward-backward-arrows-are-rendered.patch b/mobile-widgets/3rdparty/0011-ensure-forward-backward-arrows-are-rendered.patch
new file mode 100644
index 000000000..773beb7bc
--- /dev/null
+++ b/mobile-widgets/3rdparty/0011-ensure-forward-backward-arrows-are-rendered.patch
@@ -0,0 +1,57 @@
+From cc0022ca9f4541c2a9f9f42598e2df411753b0ef Mon Sep 17 00:00:00 2001
+From: Dirk Hohndel <dirk@hohndel.org>
+Date: Wed, 16 Dec 2020 14:58:10 -0800
+Subject: [PATCH 11/11] ensure forward / backward arrows are rendered
+
+For inexplicable reasons, on iOS (and macOS) the go-next / go-previous icons
+aren't found without the explicit path.
+
+Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
+---
+ src/controls/private/GlobalDrawerActionItem.qml | 2 +-
+ src/controls/private/globaltoolbar/BreadcrumbControl.qml | 2 +-
+ src/controls/templates/ApplicationHeader.qml | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/controls/private/GlobalDrawerActionItem.qml b/src/controls/private/GlobalDrawerActionItem.qml
+index cb1e5f37..f18d0a3a 100644
+--- a/src/controls/private/GlobalDrawerActionItem.qml
++++ b/src/controls/private/GlobalDrawerActionItem.qml
+@@ -73,7 +73,7 @@ AbstractListItem {
+ opacity: 0.7
+ selected: listItem.checked || listItem.pressed
+ Layout.preferredWidth: Layout.preferredHeight
+- source: (LayoutMirroring.enabled ? "go-next-symbolic-rtl" : "go-next-symbolic")
++ source: (LayoutMirroring.enabled ? ":/go-next-symbolic-rtl" : ":/go-next-symbolic")
+ visible: (!isExpandible || root.collapsed) && !listItem.isSeparator && modelData.hasOwnProperty("children") && modelData.children!==undefined && modelData.children.length > 0
+ }
+ }
+diff --git a/src/controls/private/globaltoolbar/BreadcrumbControl.qml b/src/controls/private/globaltoolbar/BreadcrumbControl.qml
+index c45db280..8d3613fb 100644
+--- a/src/controls/private/globaltoolbar/BreadcrumbControl.qml
++++ b/src/controls/private/globaltoolbar/BreadcrumbControl.qml
+@@ -65,7 +65,7 @@ Flickable {
+ Layout.preferredWidth: Layout.preferredHeight
+ isMask: true
+ color: Kirigami.Theme.textColor
+- source: LayoutMirroring.enabled ? "go-next-symbolic-rtl" : "go-next-symbolic"
++ source: LayoutMirroring.enabled ? ":/go-next-symbolic-rtl" : ":/go-next-symbolic"
+ }
+ Kirigami.Heading {
+ Layout.leftMargin: Kirigami.Units.largeSpacing
+diff --git a/src/controls/templates/ApplicationHeader.qml b/src/controls/templates/ApplicationHeader.qml
+index daad0a29..3c4b32f8 100644
+--- a/src/controls/templates/ApplicationHeader.qml
++++ b/src/controls/templates/ApplicationHeader.qml
+@@ -69,7 +69,7 @@ AbstractApplicationHeader {
+ height: Units.iconSizes.small
+ width: height
+ selected: header.background && header.background.color && header.background.color === Theme.highlightColor
+- source: titleList.isTabBar ? "" : (LayoutMirroring.enabled ? "go-next-symbolic-rtl" : "go-next-symbolic")
++ source: titleList.isTabBar ? "" : (LayoutMirroring.enabled ? ":/go-next-symbolic-rtl" : ":/go-next-symbolic")
+ }
+
+ Heading {
+--
+2.25.1
+
diff --git a/scripts/kirigami.diff b/scripts/kirigami.diff
deleted file mode 100644
index 1f8889275..000000000
--- a/scripts/kirigami.diff
+++ /dev/null
@@ -1,345 +0,0 @@
-diff -rwu ../kirigami/src/controls/GlobalDrawer.qml ./src/controls/GlobalDrawer.qml
---- ../kirigami/src/controls/GlobalDrawer.qml 2019-10-10 17:13:41.384333413 -0700
-+++ ./src/controls/GlobalDrawer.qml 2019-10-11 19:44:58.988220651 -0700
-@@ -215,6 +215,20 @@
- readonly property Action currentSubMenu: stackView.currentItem ? stackView.currentItem.current: null
-
- /**
-+ * scrollViewItem: ScrollView
-+ *
-+ * Points to the internal ScrollView so the caller can implement the Back button
-+ */
-+ readonly property Item scrollViewItem: scrollView
-+
-+ /**
-+ * pop: function
-+ *
-+ * Point to the pop function of the stackView inside the scrollView in order to be able to implement the Back button in the caller
-+ */
-+ function pop() { scrollView.pop }
-+
-+ /**
- * Notifies that the banner has been clicked
- */
- signal bannerClicked()
-@@ -238,6 +252,7 @@
- anchors.fill: parent
- implicitWidth: Math.min (Units.gridUnit * 20, root.parent.width * 0.8)
- horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
-+ function pop() { stackView.pop() }
-
- Flickable {
- id: mainFlickable
-@@ -331,17 +346,13 @@
- ColumnLayout {
- id: topContent
- spacing: 0
-- Layout.alignment: Qt.AlignHCenter
-- Layout.leftMargin: root.leftPadding
-- Layout.rightMargin: root.rightPadding
- Layout.bottomMargin: Units.smallSpacing
-- Layout.topMargin: root.topPadding
- Layout.fillWidth: true
- Layout.fillHeight: true
- Layout.preferredHeight: implicitHeight * opacity
- //NOTE: why this? just Layout.fillWidth: true doesn't seem sufficient
- //as items are added only after this column creation
-- Layout.minimumWidth: parent.width - root.leftPadding - root.rightPadding
-+ Layout.minimumWidth: parent.width
- visible: children.length > 0 && childrenRect.height > 0 && opacity > 0
- opacity: !root.collapsed || showTopContentWhenCollapsed
- Behavior on opacity {
-@@ -435,7 +446,7 @@
- easing.type: Easing.InOutQuad
- }
- }
--
-+/*
- BasicListItem {
- id: backItem
- visible: level > 0
-@@ -454,7 +465,7 @@
- sequence: backItem.MnemonicData.sequence
- onActivated: backItem.clicked()
- }
--
-+*/
- Repeater {
- id: actionsRepeater
- model: root.actions
-diff -rwu ../kirigami/src/controls/private/GlobalDrawerActionItem.qml ./src/controls/private/GlobalDrawerActionItem.qml
---- ../kirigami/src/controls/private/GlobalDrawerActionItem.qml 2019-10-10 17:13:41.387666766 -0700
-+++ ./src/controls/private/GlobalDrawerActionItem.qml 2019-10-11 19:44:58.988220651 -0700
-@@ -94,7 +94,7 @@
- Layout.preferredHeight: !root.collapsed ? Units.iconSizes.smallMedium : Units.iconSizes.small/2
- selected: listItem.checked || listItem.pressed
- Layout.preferredWidth: Layout.preferredHeight
-- source: (LayoutMirroring.enabled ? "go-next-symbolic-rtl" : "go-next-symbolic")
-+ source: (LayoutMirroring.enabled ? ":/go-next-symbolic-rtl" : ":/go-next-symbolic")
- visible: (!isExpandible || root.collapsed) && !listItem.isSeparator && modelData.hasOwnProperty("children") && modelData.children!==undefined && modelData.children.length > 0
- }
- data: [
-diff -rwu ../kirigami/src/controls/private/globaltoolbar/BreadcrumbControl.qml ./src/controls/private/globaltoolbar/BreadcrumbControl.qml
---- ../kirigami/src/controls/private/globaltoolbar/BreadcrumbControl.qml 2019-10-10 17:13:41.391000120 -0700
-+++ ./src/controls/private/globaltoolbar/BreadcrumbControl.qml 2019-10-11 22:59:45.248031517 -0700
-@@ -82,7 +81,7 @@
- Kirigami.Heading {
- Layout.leftMargin: Kirigami.Units.largeSpacing
- font.pointSize: -1
-- font.pixelSize: Math.max(1, mainLayout.height * 0.6)
-+ font.pixelSize: Math.max(1, Kirigami.Units.defaultFontSize)
- color: Kirigami.Theme.textColor
- verticalAlignment: Text.AlignVCenter
- wrapMode: Text.NoWrap
-diff -rwu ../kirigami/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml ./src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml
---- ../kirigami/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml 2019-10-10 17:13:41.391000120 -0700
-+++ ./src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml 2019-10-12 10:36:39.396460010 -0700
-@@ -36,15 +36,23 @@
- readonly property Item currentItem: layerIsMainRow ? root.currentItem : root.layers.currentItem
-
- height: visible ? implicitHeight : 0
-+
- minimumHeight: globalToolBar.minimumHeight
- preferredHeight: globalToolBar.preferredHeight
- maximumHeight: globalToolBar.maximumHeight
- separatorVisible: globalToolBar.separatorVisible
-+ background: Rectangle { color: subsurfaceTheme.primaryColor }
-
- RowLayout {
- anchors.fill: parent
- spacing: 0
--
-+ // I can't make the layout work without this invisible rectangle to anchor things on
-+ Rectangle {
-+ id: correct
-+ height: parent.height
-+ width: 0
-+ color: "transparent"
-+ }
- Item {
- id: leftHandleAnchor
- visible: (typeof applicationWindow() !== "undefined" && applicationWindow().globalDrawer && applicationWindow().globalDrawer.enabled && applicationWindow().globalDrawer.handleVisible &&
-@@ -60,20 +68,21 @@
- RowLayout {
- id: buttonsLayout
- Layout.fillHeight: true
--
- Layout.leftMargin: leftHandleAnchor.visible ? Kirigami.Units.smallSpacing : 0
--
-+ Layout.alignment: Qt.AlignTop | Qt.AlignVCenter
- visible: (globalToolBar.showNavigationButtons != Kirigami.ApplicationHeaderStyle.NoNavigationButtons || root.layers.depth > 1) && (globalToolBar.actualStyle != Kirigami.ApplicationHeaderStyle.None)
-
- Layout.maximumWidth: visibleChildren.length > 0 ? implicitWidth : 0
--
- TemplatesPrivate.BackButton {
- id: backButton
- Layout.leftMargin: leftHandleAnchor.visible ? 0 : Kirigami.Units.smallSpacing
- Layout.preferredWidth: height
-+ Layout.topMargin: 0
-+ Layout.maximumHeight: correct.height
- }
- TemplatesPrivate.ForwardButton {
- Layout.preferredWidth: height
-+ Layout.maximumHeight: correct.height
- }
- }
-
-@@ -110,6 +119,6 @@
- Layout.preferredWidth: height
- }
- }
-- background.opacity: breadcrumbLoader.opacity
-+ //background.opacity: breadcrumbLoader.opacity
- }
-
-diff -rwu ../kirigami/src/controls/templates/private/BackButton.qml ./src/controls/templates/private/BackButton.qml
---- ../kirigami/src/controls/templates/private/BackButton.qml 2019-10-10 17:13:41.391000120 -0700
-+++ ./src/controls/templates/private/BackButton.qml 2019-10-12 10:32:00.517728443 -0700
-@@ -27,6 +27,7 @@
- id: button
-
- icon.name: (LayoutMirroring.enabled ? "go-previous-symbolic-rtl" : "go-previous-symbolic")
-+ icon.source: (LayoutMirroring.enabled ? "go-previous-symbolic-rtl" : "go-previous-symbolic")
-
- enabled: applicationWindow().pageStack.layers.depth > 1 || (applicationWindow().pageStack.depth > 1 && (applicationWindow().pageStack.currentIndex > 0 || applicationWindow().pageStack.contentItem.contentX > 0))
-
-diff -rwu ../kirigami/src/controls/templates/private/ForwardButton.qml ./src/controls/templates/private/ForwardButton.qml
---- ../kirigami/src/controls/templates/private/ForwardButton.qml 2019-10-10 17:13:41.391000120 -0700
-+++ ./src/controls/templates/private/ForwardButton.qml 2019-10-11 19:44:58.988220651 -0700
-@@ -27,6 +27,7 @@
- id: button
-
- icon.name: (LayoutMirroring.enabled ? "go-next-symbolic-rtl" : "go-next-symbolic")
-+ icon.source: (LayoutMirroring.enabled ? "go-next-symbolic-rtl" : "go-next-symbolic")
-
- enabled: applicationWindow().pageStack.currentIndex < applicationWindow().pageStack.depth-1
-
-diff -rwu ../kirigami/src/controls/Units.qml ./src/controls/Units.qml
---- ../kirigami/src/controls/Units.qml 2019-10-10 17:13:41.387666766 -0700
-+++ ./src/controls/Units.qml 2019-10-11 20:48:07.216139938 -0700
-@@ -113,6 +113,11 @@
- readonly property int wheelScrollLines: 3
-
- /**
-+ * Use this to hardcode the font size of the global toolbar that Kirigami gets wrong
-+ */
-+ property double defaultFontSize: fontMetrics.font.pixelSize
-+
-+ /**
- * metrics used by the default font
- */
- property variant fontMetrics: TextMetrics {
-diff -rwu ../kirigami/src/kirigamiplugin.cpp ./src/kirigamiplugin.cpp
---- ../kirigami/src/kirigamiplugin.cpp 2019-10-10 17:13:41.391000120 -0700
-+++ ./src/kirigamiplugin.cpp 2019-10-11 19:44:58.991554017 -0700
-@@ -41,7 +41,7 @@
-
- //Q_INIT_RESOURCE(kirigami);
- #ifdef KIRIGAMI_BUILD_TYPE_STATIC
--#include <qrc_kirigami.cpp>
-+//#include <qrc_kirigami.cpp>
- #endif
-
- QUrl KirigamiPlugin::componentUrl(const QString &fileName) const
-diff -rwu ../kirigami/src/controls/private/ActionButton.qml ./src/controls/private/ActionButton.qml
---- ../kirigami/src/controls/private/ActionButton.qml 2019-10-11 14:00:51.783839545 -0400
-+++ ./src/controls/private/ActionButton.qml 2019-10-27 17:12:04.339302719 -0400
-@@ -70,12 +70,12 @@
-
- anchors.bottom: edgeMouseArea.bottom
-
-- implicitWidth: implicitHeight + Units.iconSizes.smallMedium*2 + Units.gridUnit
-+ implicitWidth: implicitHeight + Units.iconSizes.smallMedium*4 + Units.gridUnit
- implicitHeight: Units.iconSizes.medium + Units.largeSpacing * 2
-
-
- onXChanged: {
-- if (mouseArea.pressed || edgeMouseArea.pressed || fakeContextMenuButton.pressed) {
-+ if (0 && (mouseArea.pressed || edgeMouseArea.pressed || fakeContextMenuButton.pressed)) {
- if (root.hasGlobalDrawer && globalDrawer.enabled && globalDrawer.modal) {
- globalDrawer.peeking = true;
- globalDrawer.visible = true;
-@@ -97,13 +97,13 @@
- property bool internalVisibility: (!root.hasApplicationWindow || (applicationWindow().controlsVisible && applicationWindow().height > root.height*2)) && (root.action === null || root.action.visible === undefined || root.action.visible)
- preventStealing: true
-
-- drag {
-- target: button
-- //filterChildren: true
-- axis: Drag.XAxis
-- minimumX: root.hasContextDrawer && contextDrawer.enabled && contextDrawer.modal ? 0 : root.width/2 - button.width/2
-- maximumX: root.hasGlobalDrawer && globalDrawer.enabled && globalDrawer.modal ? root.width : root.width/2 - button.width/2
-- }
-+// drag {
-+// target: button
-+// //filterChildren: true
-+// axis: Drag.XAxis
-+// minimumX: root.hasContextDrawer && contextDrawer.enabled && contextDrawer.modal ? 0 : root.width/2 - button.width/2
-+// maximumX: root.hasGlobalDrawer && globalDrawer.enabled && globalDrawer.modal ? root.width : root.width/2 - button.width/2
-+// }
-
- property var downTimestamp;
- property int startX
-@@ -147,24 +147,24 @@
- drawerShowAdjust = 0;
-
- //project where it would be a full second in the future
-- if (root.hasContextDrawer && root.hasGlobalDrawer && globalDrawer.modal && x + speed > Math.min(root.width/4*3, root.width/2 + globalDrawer.contentItem.width/2)) {
-- globalDrawer.open();
-- contextDrawer.close();
-- } else if (root.hasContextDrawer && x + speed < Math.max(root.width/4, root.width/2 - contextDrawer.contentItem.width/2)) {
-- if (root.hasContextDrawer && contextDrawer.modal) {
-- contextDrawer.open();
-- }
-- if (root.hasGlobalDrawer && globalDrawer.modal) {
-- globalDrawer.close();
-- }
-- } else {
-- if (root.hasGlobalDrawer && globalDrawer.modal) {
-- globalDrawer.close();
-- }
-- if (root.hasContextDrawer && contextDrawer.modal) {
-- contextDrawer.close();
-- }
-- }
-+// if (root.hasContextDrawer && root.hasGlobalDrawer && globalDrawer.modal && x + speed > Math.min(root.width/4*3, root.width/2 + globalDrawer.contentItem.width/2)) {
-+// globalDrawer.open();
-+// contextDrawer.close();
-+// } else if (root.hasContextDrawer && x + speed < Math.max(root.width/4, root.width/2 - contextDrawer.contentItem.width/2)) {
-+// if (root.hasContextDrawer && contextDrawer.modal) {
-+// contextDrawer.open();
-+// }
-+// if (root.hasGlobalDrawer && globalDrawer.modal) {
-+// globalDrawer.close();
-+// }
-+// } else {
-+// if (root.hasGlobalDrawer && globalDrawer.modal) {
-+// globalDrawer.close();
-+// }
-+// if (root.hasContextDrawer && contextDrawer.modal) {
-+// contextDrawer.close();
-+// }
-+// }
- //Don't rely on native onClicked, but fake it here:
- //Qt.startDragDistance is not adapted to devices dpi in case
- //of Android, so consider the button "clicked" when:
-@@ -201,10 +201,10 @@
- }
- }
-
-- onPositionChanged: {
-- drawerShowAdjust = Math.min(0.3, Math.max(0, (startMouseY - mouse.y)/(Units.gridUnit*15)));
-- button.xChanged();
-- }
-+// onPositionChanged: {
-+// drawerShowAdjust = Math.min(0.3, Math.max(0, (startMouseY - mouse.y)/(Units.gridUnit*15)));
-+// button.xChanged();
-+// }
- onPressAndHold: {
- if (!actionUnderMouse) {
- return;
-@@ -291,7 +291,7 @@
- bottomMargin: Units.smallSpacing
- }
- enabled: root.leftAction && root.leftAction.enabled
-- radius: Units.devicePixelRatio*2
-+ radius: Units.devicePixelRatio*4
- height: Units.iconSizes.smallMedium + Units.smallSpacing * 2
- width: height + (root.action ? Units.gridUnit*2 : 0)
- visible: root.leftAction
-@@ -326,6 +326,17 @@
- margins: Units.smallSpacing * 2
- }
- }
-+ Rectangle {
-+ anchors.left: parent.left
-+ anchors.leftMargin: Units.smallSpacing
-+ anchors.verticalCenter: parent.verticalCenter
-+ width: Units.iconSizes.smallMedium + Units.smallSpacing * 2
-+ height: width
-+ radius: width / 2
-+ color: "transparent"
-+ border.color: Qt.lighter(buttonGraphics.baseColor, 1.1)
-+ border.width: 0.5
-+ }
- }
- //right button
- Rectangle {
-@@ -372,6 +383,17 @@
- margins: Units.smallSpacing * 2
- }
- }
-+ Rectangle {
-+ anchors.right: parent.right
-+ anchors.rightMargin: Units.smallSpacing
-+ anchors.verticalCenter: parent.verticalCenter
-+ width: Units.iconSizes.smallMedium + Units.smallSpacing * 2
-+ height: width
-+ radius: width / 2
-+ color: "transparent"
-+ border.color: Qt.lighter(buttonGraphics.baseColor, 1.1)
-+ border.width: 0.5
-+ }
- }
- }
-
diff --git a/scripts/mobilecomponents.sh b/scripts/mobilecomponents.sh
index 3086b0770..ad6c4a370 100755
--- a/scripts/mobilecomponents.sh
+++ b/scripts/mobilecomponents.sh
@@ -27,6 +27,14 @@ cd "$SRC"/subsurface/mobile-widgets/3rdparty/ECM
cmake -DSHARE_INSTALL_DIR=.. ../extra-cmake-modules
make install
+# finally, add our patches to Kirigami
+cd "$SRC"/subsurface/mobile-widgets/3rdparty
+PATCHES=$(echo 00*.patch)
+cd kirigami
+for i in $PATCHES
+do
+ git am ../$i
+done
exit 0