From 8b8c4d3617bc17afc1bc11c180d5fe702a6c5c36 Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Fri, 6 Mar 2026 16:23:44 +0100 Subject: [PATCH 1/5] Refactor MMIcon to discard QT5 effects --- app/qml/components/MMIcon.qml | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/app/qml/components/MMIcon.qml b/app/qml/components/MMIcon.qml index 6371c12b1..195cee712 100644 --- a/app/qml/components/MMIcon.qml +++ b/app/qml/components/MMIcon.qml @@ -8,7 +8,7 @@ ***************************************************************************/ import QtQuick -import Qt5Compat.GraphicalEffects +import QtQuick.Controls.impl /** Use the size property instead of width and height @@ -19,27 +19,25 @@ Item { required property url source property real size: __style.icon24 property color color: __style.forestColor + readonly property bool colorable: source.toString().endsWith("-coloroverlay.svg") width: size height: size - Image { - id: icon - + // IconImage is not part of QML's public API, so this can break on Qt version change. + // However, if we don't want to use shaders, this is the most straightforward way. + IconImage { + visible: !root.source.toString().endsWith("-nocoloroverlay.svg") source: root.source sourceSize.width: root.width sourceSize.height: root.height + color: root.color } - // TODO: if all icons are white, we do not need Qt5Compat.GraphicalEffects - ColorOverlay { - id: overlay - - // Use original colors for some icons, e.g. QGIS layer icons - visible: !root.source.toString().endsWith("-nocoloroverlay.svg") - - color: root.color - anchors.fill: icon - source: icon + Image { + visible: root.source.toString().endsWith("-nocoloroverlay.svg") + source: root.source + sourceSize.width: root.width + sourceSize.height: root.height } } From e4b313bd7cf16243072fcdd836c159bafa7179a7 Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Tue, 10 Mar 2026 14:45:01 +0100 Subject: [PATCH 2/5] Refactor MMShadow to use new multieffect --- app/mmstyle.h | 2 +- app/qml/components/MMPopup.qml | 2 +- app/qml/components/MMShadow.qml | 14 ++++++-------- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/mmstyle.h b/app/mmstyle.h index 1dc74b4f6..64c52c46f 100644 --- a/app/mmstyle.h +++ b/app/mmstyle.h @@ -401,7 +401,7 @@ class MMStyle: public QObject QColor photoSketchingBlueColor() const {return QColor::fromString( "#5E9EE4" );} QColor photoSketchingPinkColor() const {return QColor::fromString( "#FF8F93" );} - QColor shadowColor() const {return QColor::fromString( "#66777777" );} + QColor shadowColor() const {return QColor::fromString( "#4D000000" );} QUrl splitGeometryIcon() const {return QUrl( "qrc:/SplitGeometry.svg" );} QUrl streamingIcon() const {return QUrl( "qrc:/Streaming.svg" );} diff --git a/app/qml/components/MMPopup.qml b/app/qml/components/MMPopup.qml index f644d31f6..888740044 100644 --- a/app/qml/components/MMPopup.qml +++ b/app/qml/components/MMPopup.qml @@ -22,7 +22,7 @@ Popup { layer.enabled: true layer.effect: MMShadow { - radius: __style.radius20 + blurMax: 64 } } } diff --git a/app/qml/components/MMShadow.qml b/app/qml/components/MMShadow.qml index ce99955aa..fd1ea2ff1 100644 --- a/app/qml/components/MMShadow.qml +++ b/app/qml/components/MMShadow.qml @@ -8,13 +8,11 @@ ***************************************************************************/ import QtQuick -import Qt5Compat.GraphicalEffects +import QtQuick.Effects -DropShadow { - id: shadow - horizontalOffset: 2 * __dp - verticalOffset: 3 * __dp - radius: 7 * __dp - color: __style.shadowColor - transparentBorder: true +MultiEffect { + shadowEnabled: true + shadowHorizontalOffset: 2 * __dp + shadowVerticalOffset: 3 * __dp + shadowColor: __style.shadowColor } From f239ba684703ad71f98d3e205d11ba5eab19881e Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Tue, 10 Mar 2026 14:51:58 +0100 Subject: [PATCH 3/5] Remove unused imports --- app/qml/gps/MMMeasureDrawer.qml | 1 - app/qml/gps/MMSelectionDrawer.qml | 1 - app/qml/gps/MMStakeoutDrawer.qml | 1 - app/qml/map/MMMapSketchesDrawer.qml | 1 - app/qml/project/MMProjectController.qml | 1 - app/qml/project/MMProjectIssuesPage.qml | 1 - 6 files changed, 6 deletions(-) diff --git a/app/qml/gps/MMMeasureDrawer.qml b/app/qml/gps/MMMeasureDrawer.qml index 607151255..3305f6358 100644 --- a/app/qml/gps/MMMeasureDrawer.qml +++ b/app/qml/gps/MMMeasureDrawer.qml @@ -10,7 +10,6 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import Qt5Compat.GraphicalEffects import QtQuick.Shapes import mm 1.0 as MM diff --git a/app/qml/gps/MMSelectionDrawer.qml b/app/qml/gps/MMSelectionDrawer.qml index f87bc741a..dbc280bd9 100644 --- a/app/qml/gps/MMSelectionDrawer.qml +++ b/app/qml/gps/MMSelectionDrawer.qml @@ -10,7 +10,6 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import Qt5Compat.GraphicalEffects import QtQuick.Shapes import mm 1.0 as MM diff --git a/app/qml/gps/MMStakeoutDrawer.qml b/app/qml/gps/MMStakeoutDrawer.qml index 1958e3b6a..c932ea260 100644 --- a/app/qml/gps/MMStakeoutDrawer.qml +++ b/app/qml/gps/MMStakeoutDrawer.qml @@ -10,7 +10,6 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import Qt5Compat.GraphicalEffects import QtQuick.Shapes import mm 1.0 as MM diff --git a/app/qml/map/MMMapSketchesDrawer.qml b/app/qml/map/MMMapSketchesDrawer.qml index b5f31ea03..83d5138cd 100644 --- a/app/qml/map/MMMapSketchesDrawer.qml +++ b/app/qml/map/MMMapSketchesDrawer.qml @@ -10,7 +10,6 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import Qt5Compat.GraphicalEffects import QtQuick.Shapes import mm 1.0 as MM diff --git a/app/qml/project/MMProjectController.qml b/app/qml/project/MMProjectController.qml index ab83449fe..9563972d4 100644 --- a/app/qml/project/MMProjectController.qml +++ b/app/qml/project/MMProjectController.qml @@ -10,7 +10,6 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import Qt5Compat.GraphicalEffects import QtQuick.Dialogs import mm 1.0 as MM diff --git a/app/qml/project/MMProjectIssuesPage.qml b/app/qml/project/MMProjectIssuesPage.qml index 12e786222..9812cc085 100644 --- a/app/qml/project/MMProjectIssuesPage.qml +++ b/app/qml/project/MMProjectIssuesPage.qml @@ -10,7 +10,6 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import Qt5Compat.GraphicalEffects import "../components" as MMComponents From a4d53130b9532bcde154a2fa23dd66e63a1e6981 Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Tue, 10 Mar 2026 16:01:59 +0100 Subject: [PATCH 4/5] Refactor crosshair to Qt6 --- app/qml/map/components/MMCrosshair.qml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/qml/map/components/MMCrosshair.qml b/app/qml/map/components/MMCrosshair.qml index 82892ff25..c7755c7cd 100644 --- a/app/qml/map/components/MMCrosshair.qml +++ b/app/qml/map/components/MMCrosshair.qml @@ -8,7 +8,7 @@ ***************************************************************************/ import QtQuick -import Qt5Compat.GraphicalEffects +import QtQuick.Controls.impl import mm 1.0 as MM @@ -72,7 +72,7 @@ Item { sourceSize.height: height } - Image { + IconImage { id: crosshairForeground // green / purple outer circle of the crosshair x: root.screenPoint.x - width / 2 @@ -100,11 +100,7 @@ Item { source: __style.crosshairForegroundImage sourceSize.width: width sourceSize.height: height - } - ColorOverlay { - anchors.fill: crosshairForeground - source: crosshairForeground color: snapUtils.snapped ? __style.snappingColor : __style.forestColor } From fff3cde1e5947638cdf56bf85bc81757020a8abd Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Tue, 10 Mar 2026 16:03:20 +0100 Subject: [PATCH 5/5] Remove unused import --- app/qml/map/components/MMMeasureCrosshair.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/qml/map/components/MMMeasureCrosshair.qml b/app/qml/map/components/MMMeasureCrosshair.qml index 3102def00..3cd0092a2 100644 --- a/app/qml/map/components/MMMeasureCrosshair.qml +++ b/app/qml/map/components/MMMeasureCrosshair.qml @@ -8,7 +8,6 @@ ***************************************************************************/ import QtQuick -import Qt5Compat.GraphicalEffects import mm 1.0 as MM import "../../components"