From 72667f2f574530107eeed1da5f3d3430267e45f9 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Sat, 28 Nov 2020 19:24:03 +0200 Subject: [PATCH] update mask value to abilities --- .../package/contents/ui/VisibilityManager.qml | 26 ++++++------------- .../package/contents/ui/abilities/Metrics.qml | 6 +++++ .../abilities/applets/Metrics.qml | 1 + .../abilities/containers/Metrics.qml | 1 + .../abilities/definitions/Metrics.qml | 2 ++ .../abilities/definitions/metrics/Mask.qml | 24 +++++++++++++++++ .../definitions/metrics/mask/Thickness.qml | 0 7 files changed, 42 insertions(+), 18 deletions(-) create mode 100644 declarativeimports/abilities/definitions/metrics/Mask.qml create mode 100644 declarativeimports/abilities/definitions/metrics/mask/Thickness.qml diff --git a/containment/package/contents/ui/VisibilityManager.qml b/containment/package/contents/ui/VisibilityManager.qml index d97e6106d..c0ffba2f7 100644 --- a/containment/package/contents/ui/VisibilityManager.qml +++ b/containment/package/contents/ui/VisibilityManager.qml @@ -72,30 +72,20 @@ Item{ } } - property int finalScreenEdgeMargin: { - //! is used for window geometry calculations - if (!screenEdgeMarginEnabled || hideThickScreenGap) { - /*window geometry is updated after the local screen margin animation was zeroed*/ - return 0; - } - - return plasmoid.configuration.screenEdgeMargin; - } - property int maxScreenEdgeMargin: root.behaveAsDockWithMask ? Math.max(0, plasmoid.configuration.screenEdgeMargin) : 0 property int thicknessAutoHidden: LatteCore.WindowSystem.compositingActive ? 2 : 1 - property int thicknessMid: finalScreenEdgeMargin + (1 + (0.65 * (parabolic.factor.maxZoom-1)))*(metrics.totals.thickness+extraZoomThickMask) //needed in some animations - property int thicknessNormal: finalScreenEdgeMargin + Math.max(metrics.totals.thickness + extraNormalThickMask, background.thickness + background.shadows.headThickness) + property int thicknessMid: metrics.mask.screenEdge + (1 + (0.65 * (parabolic.factor.maxZoom-1)))*(metrics.totals.thickness+extraZoomThickMask) //needed in some animations + property int thicknessNormal: metrics.mask.screenEdge + Math.max(metrics.totals.thickness + extraNormalThickMask, background.thickness + background.shadows.headThickness) - property int thicknessZoom: finalScreenEdgeMargin + ((metrics.totals.thickness+extraZoomThickMask) * parabolic.factor.maxZoom) + 2 + property int thicknessZoom: metrics.mask.screenEdge + ((metrics.totals.thickness+extraZoomThickMask) * parabolic.factor.maxZoom) + 2 //it is used to keep thickness solid e.g. when iconSize changes from auto functions - property int thicknessMidOriginal: finalScreenEdgeMargin + Math.max(thicknessNormalOriginal,extraNormalThickMask + (1 + (0.65 * (parabolic.factor.maxZoom-1)))*(metrics.maxIconSize+metrics.margin.maxThickness)) //needed in some animations - property int thicknessNormalOriginal: finalScreenEdgeMargin + metrics.maxIconSize + (metrics.margin.maxThickness * 2) //this way we always have the same thickness published at all states + property int thicknessMidOriginal: metrics.mask.screenEdge + Math.max(thicknessNormalOriginal,extraNormalThickMask + (1 + (0.65 * (parabolic.factor.maxZoom-1)))*(metrics.maxIconSize+metrics.margin.maxThickness)) //needed in some animations + property int thicknessNormalOriginal: metrics.mask.screenEdge + metrics.maxIconSize + (metrics.margin.maxThickness * 2) //this way we always have the same thickness published at all states /*property int thicknessNormalOriginal: !root.behaveAsPlasmaPanel || root.editMode ? thicknessNormalOriginalValue : background.thickness + background.shadows.headThickness*/ - property int thicknessNormalOriginalValue: finalScreenEdgeMargin + metrics.maxIconSize + (metrics.margin.maxThickness * 2) + extraNormalThickMask + property int thicknessNormalOriginalValue: metrics.mask.screenEdge + metrics.maxIconSize + (metrics.margin.maxThickness * 2) + extraNormalThickMask property int thicknessZoomOriginal: maxScreenEdgeMargin + Math.max( ((metrics.maxIconSize+(metrics.margin.maxThickness * 2)) * parabolic.factor.maxZoom) + extraZoomThickMask, background.thickness + background.shadows.headThickness) @@ -769,7 +759,7 @@ Item{ //before updating the localDockGeometry if (!latteView.behaveAsPlasmaPanel) { var cleanThickness = metrics.totals.thickness; - var edgeMargin = finalScreenEdgeMargin; + var edgeMargin = metrics.mask.screenEdge; if (plasmoid.location === PlasmaCore.Types.TopEdge) { localGeometry.x = latteView.effects.rect.x; // from effects area @@ -823,7 +813,7 @@ Item{ if (!LatteCore.WindowSystem.compositingActive || animated || latteView.behaveAsPlasmaPanel) { latteView.effects.inputMask = Qt.rect(0, 0, -1, -1); } else { - var inputThickness = finalScreenEdgeMargin + metrics.totals.thickness; + var inputThickness = metrics.mask.screenEdge + metrics.totals.thickness; var inputGeometry = Qt.rect(0, 0, root.width, root.height); if (plasmoid.location === PlasmaCore.Types.TopEdge) { diff --git a/containment/package/contents/ui/abilities/Metrics.qml b/containment/package/contents/ui/abilities/Metrics.qml index 3550e385e..d7749462f 100644 --- a/containment/package/contents/ui/abilities/Metrics.qml +++ b/containment/package/contents/ui/abilities/Metrics.qml @@ -41,6 +41,12 @@ Ability.MetricsPrivate { || root.hideThickScreenGap ? 0 : plasmoid.configuration.screenEdgeMargin + //! used for window geometry calculations + //! window geometry is updated after the local screen margin animation was zeroed*/ + mask.screenEdge: (!root.screenEdgeMarginEnabled || root.hideThickScreenGap) ? 0 : plasmoid.configuration.screenEdgeMargin + padding.length: fraction.lengthPadding * iconSize padding.lengthApplet: fraction.lengthAppletPadding * iconSize + + } diff --git a/declarativeimports/abilities/applets/Metrics.qml b/declarativeimports/abilities/applets/Metrics.qml index 58125bfb4..99ce353eb 100644 --- a/declarativeimports/abilities/applets/Metrics.qml +++ b/declarativeimports/abilities/applets/Metrics.qml @@ -29,6 +29,7 @@ AbilityDefinition.Metrics { backgroundThickness: ref.metrics.backgroundThickness margin: ref.metrics.margin + mask: ref.metrics.mask padding: ref.metrics.padding totals: ref.metrics.totals diff --git a/declarativeimports/abilities/containers/Metrics.qml b/declarativeimports/abilities/containers/Metrics.qml index 359b1abbd..fc535e8d1 100644 --- a/declarativeimports/abilities/containers/Metrics.qml +++ b/declarativeimports/abilities/containers/Metrics.qml @@ -30,6 +30,7 @@ AbilityDefinition.Metrics { readonly property alias backgroundThickness: apis.backgroundThickness readonly property alias margin: apis.margin + readonly property alias mask: apis.mask readonly property alias padding: apis.padding readonly property alias totals: apis.totals } diff --git a/declarativeimports/abilities/definitions/Metrics.qml b/declarativeimports/abilities/definitions/Metrics.qml index 9ba452223..4649e1108 100644 --- a/declarativeimports/abilities/definitions/Metrics.qml +++ b/declarativeimports/abilities/definitions/Metrics.qml @@ -29,4 +29,6 @@ Item { property MetricsTypes.Margin margin: MetricsTypes.Margin{} property MetricsTypes.Padding padding: MetricsTypes.Padding{} property MetricsTypes.Totals totals: MetricsTypes.Totals{} + + property MetricsTypes.Mask mask: MetricsTypes.Mask{} } diff --git a/declarativeimports/abilities/definitions/metrics/Mask.qml b/declarativeimports/abilities/definitions/metrics/Mask.qml new file mode 100644 index 000000000..f55d6e0da --- /dev/null +++ b/declarativeimports/abilities/definitions/metrics/Mask.qml @@ -0,0 +1,24 @@ +/* +* Copyright 2020 Michail Vourlakos +* +* This file is part of Latte-Dock +* +* Latte-Dock is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* Latte-Dock is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +*/ + +import QtQuick 2.0 + +Item { + property int screenEdge: 0 +} diff --git a/declarativeimports/abilities/definitions/metrics/mask/Thickness.qml b/declarativeimports/abilities/definitions/metrics/mask/Thickness.qml new file mode 100644 index 000000000..e69de29bb