on xenial help sign in
Opacity change for indicator item locking animation
3f11c57Nick Dedekind
Panel/IndicatorRow.qml+25−19
@@ -54,30 +54,36 @@ Item {
54 objectName: "rowRepeater"
54 objectName: "rowRepeater"
55 model: indicatorsModel ? indicatorsModel : undefined
55 model: indicatorsModel ? indicatorsModel : undefined
56
56
57− IndicatorItem {
57+ Item {
58− id: indicatorItem
58+ id: itemWrapper
59+ height: indicatorRow.height
60+ width: childrenRect.width
61+ property int ownIndex: index
59
62
60− property int ownIndex: index
63+ IndicatorItem {
64+ id: indicatorItem
65+ height: parent.height
61
66
62− widgetSource: model.widgetSource
67+ highlighted: indicatorRow.state != "initial" ? itemWrapper.ownIndex == indicatorRow.currentItemIndex : false
68+ dimmed: indicatorRow.state != "initial" ? itemWrapper.ownIndex != indicatorRow.currentItemIndex : false
63
69
64− indicatorProperties : model.indicatorProperties
70+ widgetSource: model.widgetSource
65− highlighted: indicatorRow.state != "initial" ? ownIndex == indicatorRow.currentItemIndex : false
71+ indicatorProperties : model.indicatorProperties
66− dimmed: indicatorRow.state != "initial" ? ownIndex != indicatorRow.currentItemIndex : false
72+ }
67− height: indicatorRow.height
73+
68− y: {
74+ opacity: {
69− if (!highlighted && (indicatorRow.state == "locked" || indicatorRow.state == "commit")) {
75+ if (!indicatorItem.highlighted && (indicatorRow.state == "locked" || indicatorRow.state == "commit")) {
70− return -indicatorRow.height;
76+ return 0.0;
71− } else {
77+ } else {
72− return 0;
78+ return 1.0;
73− }
74− }
75− Behavior on y {
76− StandardAnimation {
77− // flow away from current index
78− duration: (rowRepeater.count - Math.abs(indicatorRow.currentItemIndex - index)) * (500/rowRepeater.count)
79 }
79 }
80 }
80 }
81+ Behavior on opacity {
82+ StandardAnimation {
83+ // flow away from current index
84+ duration: (rowRepeater.count - Math.abs(indicatorRow.currentItemIndex - index)) * (500/rowRepeater.count)
85+ }
86+ }
81 }
87 }
82 }
88 }
83 }
89 }