18 import Ubuntu.Components 0.1
26 if (index == 0 || index == priv.listView.count-1) {
27 if (priv.distanceFromEdge < 0) {
29 return Math.max(-maxAngle, priv.distanceFromEdge * maxAngle / (priv.foldingAreaHeight)) * priv.orientationFlag
35 if (priv.overlapWithFoldedArea > 0) {
37 return ((maxAngle - 5) + (priv.overlapWithFoldedArea * 5 / priv.foldingAreaHeight)) * -priv.orientationFlag
41 if (priv.overlapWithFoldingArea > 0) {
43 return -priv.overlapWithFoldingArea * (maxAngle -5) / priv.foldingAreaHeight * priv.orientationFlag;
51 if (index == 0 || index == priv.listView.count-1) {
53 if (priv.distanceFromEdge < 0) {
54 return (-priv.distanceFromEdge - (height - effectiveHeight)) * priv.orientationFlag;
60 if (priv.distanceFromEdge < -priv.totalUnfoldedHeight) {
61 return (-priv.distanceFromEdge - (root.height - effectiveHeight)) * priv.orientationFlag;
65 if (priv.overlapWithFoldedArea > 0) {
66 return (priv.overlapWithFoldedArea * priv.totalEffectiveHeight / (priv.totalUnfoldedHeight + priv.listView.foldingStopHeight)) * priv.orientationFlag;
73 if (index == 0 || index == priv.listView.count-1) {
74 if (priv.distanceFromEdge < 0) {
77 return 1 + (priv.distanceFromEdge / (priv.foldingAreaHeight * 2))
83 if (priv.overlapWithFoldedArea > 0) {
85 return 0.75 - (priv.overlapWithFoldedArea * 0.75 / (priv.foldingAreaHeight * 2));
89 if (priv.overlapWithFoldingArea > 0) {
91 return 1 - (priv.overlapWithFoldingArea * 0.25 / priv.foldingAreaHeight)
98 if (index == 0 || index == priv.listView.count-1) {
101 if (priv.distanceFromEdge < -priv.foldingAreaHeight) {
106 if (priv.distanceFromEdge < 0) {
107 return -0.3 * (-priv.distanceFromEdge / (priv.foldingAreaHeight))
113 if (priv.overlapWithFoldedArea > 0) {
118 if (priv.overlapWithFoldingArea > 0) {
119 return - (priv.overlapWithFoldingArea * 0.3 / priv.listView.foldingStartHeight);
127 property ListView listView: root.ListView.view
128 property real totalUnfoldedHeight: listView.itemHeight + listView.spacing
129 property real totalEffectiveHeight: effectiveHeight + listView.spacing
130 property real effectiveContentY: listView.contentY - listView.originY
131 property real effectiveY: y - listView.originY
132 property real bottomDraggingDistanceOffset: listView.draggedIndex > index ? totalUnfoldedHeight : 0
133 property real distanceFromTopEdge: -(effectiveContentY + listView.topMargin - index*totalUnfoldedHeight)
134 property real distanceFromBottomEdge: listView.height - listView.bottomMargin - (effectiveY+height) + effectiveContentY + bottomDraggingDistanceOffset
136 property real distanceFromEdge: Math.abs(distanceFromBottomEdge) < Math.abs(distanceFromTopEdge) ? distanceFromBottomEdge : distanceFromTopEdge
137 property real orientationFlag: Math.abs(distanceFromBottomEdge) < Math.abs(distanceFromTopEdge) ? -1 : 1
139 property real overlapWithFoldingArea: listView.foldingStartHeight - distanceFromEdge
140 property real overlapWithFoldedArea: listView.foldingStopHeight - distanceFromEdge
141 property real foldingAreaHeight: listView.foldingStartHeight - listView.foldingStopHeight