From 894098db7d08e40a816bef9c204f5f0a65da493c Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Mon, 25 Dec 2017 14:55:38 +0200 Subject: [PATCH] improve signaling for internal separators --- plasmoid/package/contents/ui/ParabolicManager.qml | 15 ++++++++++----- .../package/contents/ui/task/TaskDelegate.qml | 6 ++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/plasmoid/package/contents/ui/ParabolicManager.qml b/plasmoid/package/contents/ui/ParabolicManager.qml index 4a4925e5c..05ed92578 100644 --- a/plasmoid/package/contents/ui/ParabolicManager.qml +++ b/plasmoid/package/contents/ui/ParabolicManager.qml @@ -58,10 +58,15 @@ Item { Component.onCompleted: updateTasksEdgesIndexes(); function updateTasksEdgesIndexes() { - firstRealTaskIndex = firstRealTask(); - lastRealTaskIndex = lastRealTask(); + var newFirstTask = firstRealTask(); + var newLastTask = lastRealTask(); - root.separatorsUpdated(); + if (newFirstTask !== firstRealTaskIndex || newLastTask !== lastRealTaskIndex ){ + firstRealTaskIndex = newFirstTask; + lastRealTaskIndex = newLastTask; + + root.separatorsUpdated(); + } } //!this is used in order to update the index when the signal is for applets @@ -283,8 +288,8 @@ Item { if (updated) { //console.log("message sent..."); hasInternalSeparator = separators.length > 0; - firstRealTaskIndex = firstRealTask(); - lastRealTaskIndex = lastRealTask(); + + updateTasksEdgesIndexes(); root.separatorsUpdated(); } diff --git a/plasmoid/package/contents/ui/task/TaskDelegate.qml b/plasmoid/package/contents/ui/task/TaskDelegate.qml index 5ca26c02f..b7625507a 100644 --- a/plasmoid/package/contents/ui/task/TaskDelegate.qml +++ b/plasmoid/package/contents/ui/task/TaskDelegate.qml @@ -302,14 +302,16 @@ MouseArea{ if (!isSeparator || root.editMode || root.dragSource) { forceHiddenState = false; } else { - var firstPosition = (index === 0); + var firstPosition = (index>=0) && (index < parabolicManager.firstRealTaskIndex); var sepNeighbour = parabolicManager.taskIsSeparator(index-1); - var firstSepFromLastSeparatorsGroup = (itemIndex === parabolicManager.lastRealTaskIndex+1); + var firstSepFromLastSeparatorsGroup = (index>=0) && (index > parabolicManager.lastRealTaskIndex); forceHiddenState = (firstPosition || sepNeighbour || firstSepFromLastSeparatorsGroup); } } + Component.onCompleted: updateForceHiddenState(); + onForceHiddenStateChanged: root.separatorsUpdated(); Connections{