From 87ffc22f6a557433cb9dd1ebdfdac92782e1e17b Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Wed, 6 May 2020 20:07:44 +0300 Subject: [PATCH] remove AppletsRecords container ability --use the all new much better infrastructure to track applet abilities requirements --- .../package/contents/ui/DebugWindow.qml | 2 +- .../package/contents/ui/VisibilityManager.qml | 4 +- .../contents/ui/abilities/AppletsRecords.qml | 122 ------------------ .../contents/ui/abilities/ParabolicEffect.qml | 4 +- .../privates/ParabolicEffectPrivate.qml | 3 +- .../package/contents/ui/applet/AppletItem.qml | 2 - .../ui/applet/communicator/Engine.qml | 14 +- .../contents/ui/layouts/LayoutsContainer.qml | 2 +- .../ui/layouts/abilities/AbilityGrid.qml | 27 +++- .../ui/layouts/abilities/AbilityLayouts.qml | 8 ++ .../abilities/AbilityLayoutsPrivate.qml | 1 + .../layouts/abilities/types/AbilitiesHost.qml | 1 + .../layouts/abilities/types/Requirements.qml | 25 ++++ containment/package/contents/ui/main.qml | 14 +- 14 files changed, 75 insertions(+), 154 deletions(-) delete mode 100644 containment/package/contents/ui/abilities/AppletsRecords.qml create mode 100644 containment/package/contents/ui/layouts/abilities/types/Requirements.qml diff --git a/containment/package/contents/ui/DebugWindow.qml b/containment/package/contents/ui/DebugWindow.qml index 42a623075..eaab967f8 100644 --- a/containment/package/contents/ui/DebugWindow.qml +++ b/containment/package/contents/ui/DebugWindow.qml @@ -786,7 +786,7 @@ Window{ } Text{ - text: appletsRecords.windowsTrackingCount + text: layoutsContainer.applets.require.windowsTrackingCount } Text{ diff --git a/containment/package/contents/ui/VisibilityManager.qml b/containment/package/contents/ui/VisibilityManager.qml index a0dc65526..2e279425b 100644 --- a/containment/package/contents/ui/VisibilityManager.qml +++ b/containment/package/contents/ui/VisibilityManager.qml @@ -131,6 +131,8 @@ Item{ return 0; } + property Item applets: null + Binding{ target: latteView property:"maxThickness" @@ -347,7 +349,7 @@ Item{ && !(latteView.visibility.mode === LatteCore.Types.AlwaysVisible /* Visibility */ || latteView.visibility.mode === LatteCore.Types.WindowsGoBelow || latteView.visibility.mode === LatteCore.Types.AutoHide)) - || appletsRecords.windowsTrackingCount > 0 /*Applets Need Windows Tracking */ + || applets.require.windowsTrackingCount > 0 /*Applets Need Windows Tracking */ || root.dragActiveWindowEnabled /*Dragging Active Window(Empty Areas)*/ || ((root.backgroundOnlyOnMaximized /*Dynamic Background */ || plasmoid.configuration.solidBackgroundForMaximized diff --git a/containment/package/contents/ui/abilities/AppletsRecords.qml b/containment/package/contents/ui/abilities/AppletsRecords.qml deleted file mode 100644 index edb446015..000000000 --- a/containment/package/contents/ui/abilities/AppletsRecords.qml +++ /dev/null @@ -1,122 +0,0 @@ -/* -* 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 { - id: records - - property int windowsTrackingCount: 0 //! number of applets requesting windows tracking - property real maxInnerZoomFactor: 1.0 //! maximum inner zoom factor based on all applets - - property var applets: [] - - function indexOf(applet) { - var len = applets.length; - - for (var i=0; i=0) { - //! remove - applets.splice(ind, 1); - updateValues(); - } - } - - function addDefaultRecord(applet) { - applets.push({id: applet, innerZoomFactor: 1.0, windowsTrackingEnabled: false}); - } - - function setInnerZoomFactor(applet, inner) { - var len = applets.length; - var ind = indexOf(applet); - - if (ind >=0) { - //! update - if(applets[ind].innerZoomFactor !== inner) { - applets[ind].innerZoomFactor = inner; - updateInnerZoomFactor(); - } - } else { - //! add - addDefaultRecord(applet); - applets[len].innerZoomFactor = inner; - updateInnerZoomFactor(); - } - } - - function setWindowsTrackingEnabled(applet, value) { - var len = applets.length; - var ind = indexOf(applet); - - if (ind>=0) { - //! update - if(applets[ind].windowsTrackingEnabled !== value) { - applets[ind].windowsTrackingEnabled = value; - updateWindowsTrackingCount(); - } - } else { - //! add - addDefaultRecord(applet); - applets[len].windowsTrackingEnabled = value; - updateWindowsTrackingCount(); - } - } - - function updateValues() { - updateInnerZoomFactor(); - updateWindowsTrackingCount(); - } - - function updateInnerZoomFactor() { - var len = applets.length; - var max = 1; - - for (var i=0; i max) { - max = applets[i].innerZoomFactor; - } - } - - maxInnerZoomFactor = max; - } - - function updateWindowsTrackingCount() { - var len = applets.length; - var cnt = 0; - - for (var i=0; i max) { + max = appletItem.communicator.requires.innerZoomFactor; + } + } + + return max; + } } diff --git a/containment/package/contents/ui/layouts/abilities/AbilityLayouts.qml b/containment/package/contents/ui/layouts/abilities/AbilityLayouts.qml index ab44648a3..230a51565 100644 --- a/containment/package/contents/ui/layouts/abilities/AbilityLayouts.qml +++ b/containment/package/contents/ui/layouts/abilities/AbilityLayouts.qml @@ -23,4 +23,12 @@ AbilityLayoutsPrivate { parabolic.restoreZoomIsBlocked: startLayout.ability.parabolic.restoreZoomIsBlocked || mainLayout.ability.parabolic.restoreZoomIsBlocked || endLayout.ability.parabolic.restoreZoomIsBlocked + + require.windowsTrackingCount: startLayout.ability.require.windowsTrackingCount + + mainLayout.ability.require.windowsTrackingCount + + endLayout.ability.require.windowsTrackingCount + + require.maxInnerZoomFactor: Math.max(startLayout.ability.require.maxInnerZoomFactor, + mainLayout.ability.require.maxInnerZoomFactor, + endLayout.ability.require.maxInnerZoomFactor) } diff --git a/containment/package/contents/ui/layouts/abilities/AbilityLayoutsPrivate.qml b/containment/package/contents/ui/layouts/abilities/AbilityLayoutsPrivate.qml index e01f83db0..db14918e3 100644 --- a/containment/package/contents/ui/layouts/abilities/AbilityLayoutsPrivate.qml +++ b/containment/package/contents/ui/layouts/abilities/AbilityLayoutsPrivate.qml @@ -29,4 +29,5 @@ Item { property Item endLayout: null readonly property AbilityTypes.ParabolicEffect parabolic: AbilityTypes.ParabolicEffect{} + readonly property AbilityTypes.Requirements require: AbilityTypes.Requirements{} } diff --git a/containment/package/contents/ui/layouts/abilities/types/AbilitiesHost.qml b/containment/package/contents/ui/layouts/abilities/types/AbilitiesHost.qml index b1898ab1e..8f5898cde 100644 --- a/containment/package/contents/ui/layouts/abilities/types/AbilitiesHost.qml +++ b/containment/package/contents/ui/layouts/abilities/types/AbilitiesHost.qml @@ -21,4 +21,5 @@ import QtQuick 2.7 Item { readonly property ParabolicEffect parabolic: ParabolicEffect{} + readonly property Requirements require: Requirements{} } diff --git a/containment/package/contents/ui/layouts/abilities/types/Requirements.qml b/containment/package/contents/ui/layouts/abilities/types/Requirements.qml new file mode 100644 index 000000000..ae0b3fa5e --- /dev/null +++ b/containment/package/contents/ui/layouts/abilities/types/Requirements.qml @@ -0,0 +1,25 @@ +/* +* 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.7 + +Item { + property int windowsTrackingCount: 0 //! number of applets requesting windows tracking + property real maxInnerZoomFactor: 1.0 //! maximum inner zoom factor based on all applets +} diff --git a/containment/package/contents/ui/main.qml b/containment/package/contents/ui/main.qml index 32c06044f..857f7faeb 100644 --- a/containment/package/contents/ui/main.qml +++ b/containment/package/contents/ui/main.qml @@ -409,7 +409,6 @@ Item { property Item latteApplet readonly property alias animations: _animations - readonly property alias appletsRecords: _appletsRecords readonly property alias autosize: _autosize readonly property alias indicatorsManager: indicators readonly property alias metrics: _metrics @@ -1345,7 +1344,6 @@ Item { id: appletContainerComponent Applet.AppletItem{ animations: _animations - appletsRecords: _appletsRecords metrics: _metrics parabolic: _parabolic } @@ -1424,7 +1422,10 @@ Item { } } - VisibilityManager{ id: visibilityManager } + VisibilityManager{ + id: visibilityManager + applets: layoutsContainer.applets + } DragDropArea { id: backDropArea @@ -1558,10 +1559,6 @@ Item { settings: universalSettings } - Ability.AppletsRecords { - id: _appletsRecords - } - Ability.AutoSize { id: _autosize layouts: layoutsContainer @@ -1579,8 +1576,7 @@ Item { Ability.ParabolicEffect { id: _parabolic animations: _animations - appletsRecords: _appletsRecords - layouts: layoutsContainer + applets: layoutsContainer.applets view: latteView }