fix #480,support properly separator widgets

pull/1/head
Michail Vourlakos 8 years ago
parent 0c69277912
commit 3a0ac83c46

@ -20,6 +20,9 @@
import QtQuick 2.0
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
// holds all the logic around parabolic effect signals into one place.
// ParabolicManager is responsible for triggering all the messages to applets
// that are neighbour to the hovered applet. This will help a lot to catch cases
@ -209,7 +212,7 @@ Item {
// no, -1 = remove separator
// no, no = update separator position
function setSeparator(previousId, nextId) {
if (previousId === nextId)
if (previousId === nextId && separators.indexOf(nextId)>-1)
return;
var update=false;
@ -229,8 +232,10 @@ Item {
separators.push(nextId);
}
//if (plasmoid.location === PlasmaCore.Types.BottomEdge)
// console.log("separators : "+separators);
root.separatorsUpdated();
// console.log("separators : "+separators);
}
// update the registered hidden applets

@ -59,7 +59,7 @@ Item {
property bool isHidden: applet && applet.status === PlasmaCore.Types.HiddenStatus ? true : false
property bool isInternalViewSplitter: (internalSplitterId > 0)
property bool isZoomed: false
property bool isSeparator: applet && applet.pluginName === "audoban.applet.separator" ? true : false
property bool isSeparator: applet && applet.pluginName === "audoban.applet.separator"
//applet is in starting edge
/*property bool startEdge: index < layoutsContainer.endLayout.beginIndex ? (index === 0)&&(layoutsContainer.mainLayout.count > 1) :
@ -98,7 +98,7 @@ Item {
property string title: isInternalViewSplitter ? "Now Dock Splitter" : ""
property Item applet
property Item applet: null
property Item latteApplet: applet && (applet.pluginName === root.plasmoidName) ?
(applet.children[0] ? applet.children[0] : null) : null
property Item appletWrapper: applet &&
@ -265,14 +265,16 @@ Item {
parabolicManager.setSeparator(previousIndex, index);
}
previousIndex = index;
if (index>-1) {
previousIndex = index;
}
}
onIsHiddenChanged: {
if (isHidden) {
parabolicManager.setHidden(-1, index);
} else {
parabolicManager.setHidden(index, -1);
parabolicManager.setHidden(previousIndex, -1);
}
}
@ -280,7 +282,7 @@ Item {
if (isSeparator) {
parabolicManager.setSeparator(-1, index);
} else {
parabolicManager.setSeparator(index, -1);
parabolicManager.setSeparator(previousIndex, -1);
}
}
@ -315,6 +317,13 @@ Item {
}
Component.onDestruction: {
if (isSeparator){
parabolicManager.setSeparator(previousIndex, -1);
}
if (isHidden)
parabolicManager.setHidden(previousIndex, -1);
root.updateIndexes.disconnect(checkIndex);
root.clearZoomSignal.disconnect(clearZoom);
}
@ -370,7 +379,7 @@ Item {
color: "transparent"
border.color: "green"
border.width: 1
} */
}*/
Flow{
id: appletFlow
@ -401,8 +410,9 @@ Item {
property bool neighbourSeparator: false;
//in case there is a neighbour internal separator
property int separatorSpace: (root.latteApplet && (root.latteApplet.internalSeparatorPos === root.tasksCount-1) && index===root.latteAppletPos+1)
|| neighbourSeparator ? (2+root.iconMargin/2) : 0
property int separatorSpace: (root.latteApplet && root.latteApplet.hasInternalSeparator
&& (root.latteApplet.internalSeparatorPos === root.tasksCount-1) && index===root.latteAppletPos+1)
|| (neighbourSeparator && !container.isSeparator && !container.latteApplet) ? (2+root.iconMargin/2) : 0
property real nHiddenSize: (nScale > 0) ? (container.spacersMaxSize * nScale) + separatorSpace : separatorSpace
property real nScale: 0
@ -455,8 +465,9 @@ Item {
property bool neighbourSeparator: false;
//in case there is a neighbour internal separator
property int separatorSpace: (root.latteApplet && root.latteApplet.internalSeparatorPos === 0 && index===root.latteAppletPos-1)
|| neighbourSeparator ? (2+root.iconMargin/2) : 0
property int separatorSpace: (root.latteApplet && root.latteApplet.hasInternalSeparator
&& root.latteApplet.internalSeparatorPos === 0 && index===root.latteAppletPos-1)
|| (neighbourSeparator && !container.isSeparator && !container.latteApplet) ? (2+root.iconMargin/2) : 0
property real nHiddenSize: (nScale > 0) ? (container.spacersMaxSize * nScale) + separatorSpace : separatorSpace
property real nScale: 0

@ -38,7 +38,7 @@ Item{
if (container.isSeparator && !root.editMode) {
if (!root.isVertical)
return 0.01;
return -1;
else
return root.iconSize;
}
@ -66,7 +66,7 @@ Item{
if (container.isSeparator && !root.editMode) {
if (root.isVertical)
return 0.01;
return -1;
else
return root.iconSize;
}

@ -255,6 +255,13 @@ MouseArea{
}
}
/* Rectangle{
anchors.fill: parent
color: "transparent"
border.width: 1
border.color: "blue"
} */
Flow{
id: taskFlow
width: parent.width
@ -270,14 +277,26 @@ MouseArea{
visible: (index === 0) || (separatorSpace > 0)
property bool neighbourSeparator: false
//in case there is a neighbour separator
property int separatorSpace: (parabolicManager.hasInternalSeparator
&& parabolicManager.internalSeparatorPos === index-1) ?
(2+root.iconMargin/2) : 0
&& parabolicManager.internalSeparatorPos === index-1)
|| neighbourSeparator ? (2+root.iconMargin/2) : 0
property real nHiddenSize: (nScale > 0) ? (mainItemContainer.spacersMaxSize * nScale) + separatorSpace : separatorSpace
property real nScale: 0
Connections{
target: latteDock
onSeparatorsUpdated: {
hiddenSpacerLeft.neighbourSeparator = latteDock.parabolicManager.isSeparator(latteDock.latteAppletPos-1) && index===0;
}
onLatteAppletPosChanged: {
hiddenSpacerLeft.neighbourSeparator = latteDock.parabolicManager.isSeparator(latteDock.latteAppletPos-1) && index===0;
}
}
Behavior on nScale {
enabled: !root.globalDirectRender
NumberAnimation { duration: 3 * mainItemContainer.animationTime }
@ -288,7 +307,7 @@ MouseArea{
NumberAnimation { duration: root.directRenderAnimationTime }
}
/*Rectangle{
/* Rectangle{
width: !root.vertical ? parent.width : 1
height: !root.vertical ? 1 : parent.height
x: root.vertical ? parent.width /2 : 0
@ -296,7 +315,7 @@ MouseArea{
border.width: 1
border.color: "red"
color: "transparent"
}*/
} */
}
TaskWrapper{ id: wrapper }
@ -310,14 +329,26 @@ MouseArea{
visible: (index === icList.count - 1) || (separatorSpace > 0)
property bool neighbourSeparator: false
//in case there is a neighbour separator
property int separatorSpace: (parabolicManager.hasInternalSeparator
&& parabolicManager.internalSeparatorPos === index+1) ?
(2+root.iconMargin/2) : 0
&& parabolicManager.internalSeparatorPos === index+1)
|| neighbourSeparator ? (2+root.iconMargin/2) : 0
property real nHiddenSize: (nScale > 0) ? (mainItemContainer.spacersMaxSize * nScale) + separatorSpace : separatorSpace
property real nScale: 0
Connections{
target: latteDock
onSeparatorsUpdated: {
hiddenSpacerRight.neighbourSeparator = latteDock.parabolicManager.isSeparator(latteDock.latteAppletPos+1) && index===root.tasksCount-1;
}
onLatteAppletPosChanged: {
hiddenSpacerRight.neighbourSeparator = latteDock.parabolicManager.isSeparator(latteDock.latteAppletPos+1) && index===root.tasksCount-1;
}
}
Behavior on nScale {
enabled: !root.globalDirectRender
NumberAnimation { duration: 3 * mainItemContainer.animationTime }
@ -328,7 +359,7 @@ MouseArea{
NumberAnimation { duration: root.directRenderAnimationTime }
}
/*Rectangle{
/* Rectangle{
width: !root.vertical ? parent.width : 1
height: !root.vertical ? 1 : parent.height
x: root.vertical ? parent.width /2 : 0

Loading…
Cancel
Save