diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index 0eaa1123c..9d562db0a 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -1020,6 +1020,7 @@ "edit-mode-description": "Enable edit mode to move and reposition desktop widgets. When enabled, widgets show a drag outline and can be repositioned.", "edit-mode-exit-button": "Exit edit mode", "edit-mode-grid-snap-label": "Grid snap", + "edit-mode-grid-snap-scale-label": "Snap scale", "edit-mode-label": "Edit mode", "enabled-description": "Enable or disable desktop widgets entirely.", "enabled-label": "Enable desktop widgets", diff --git a/Assets/settings-default.json b/Assets/settings-default.json index cf4e3b4c3..6ca0e0979 100644 --- a/Assets/settings-default.json +++ b/Assets/settings-default.json @@ -539,6 +539,7 @@ "enabled": false, "overviewEnabled": true, "gridSnap": false, + "gridSnapScale": false, "monitorWidgets": [] } } \ No newline at end of file diff --git a/Commons/Settings.qml b/Commons/Settings.qml index 19c9acca9..d95590157 100644 --- a/Commons/Settings.qml +++ b/Commons/Settings.qml @@ -763,6 +763,7 @@ Singleton { property bool enabled: false property bool overviewEnabled: true property bool gridSnap: false + property bool gridSnapScale: false property list monitorWidgets: [] // Format: [{ "name": "DP-1", "widgets": [...] }, { "name": "HDMI-1", "widgets": [...] }] } diff --git a/Modules/DesktopWidgets/DesktopWidgets.qml b/Modules/DesktopWidgets/DesktopWidgets.qml index 6e7b29d78..e440a9ba4 100644 --- a/Modules/DesktopWidgets/DesktopWidgets.qml +++ b/Modules/DesktopWidgets/DesktopWidgets.qml @@ -441,6 +441,15 @@ Variants { } } + NIconButton { + icon: "grid-3x3" + visible: Settings.data.desktopWidgets.gridSnap + tooltipText: I18n.tr("panels.desktop-widgets.edit-mode-grid-snap-scale-label") + colorBg: Settings.data.desktopWidgets.gridSnapScale ? Color.mPrimary : Color.mSurfaceVariant + colorFg: Settings.data.desktopWidgets.gridSnapScale ? Color.mOnPrimary : Color.mPrimary + onClicked: Settings.data.desktopWidgets.gridSnapScale = !Settings.data.desktopWidgets.gridSnapScale + } + NIconButton { icon: "grid-4x4" tooltipText: I18n.tr("panels.desktop-widgets.edit-mode-grid-snap-label") diff --git a/Modules/DesktopWidgets/DraggableDesktopWidget.qml b/Modules/DesktopWidgets/DraggableDesktopWidget.qml index 5399957e7..c3c544cd8 100644 --- a/Modules/DesktopWidgets/DraggableDesktopWidget.qml +++ b/Modules/DesktopWidgets/DraggableDesktopWidget.qml @@ -116,7 +116,7 @@ Item { } function snapScaleToGrid(scale) { - if (!Settings.data.desktopWidgets.gridSnap) { + if (!Settings.data.desktopWidgets.gridSnap || !Settings.data.desktopWidgets.gridSnapScale) { return scale; }