@@ -28,6 +28,7 @@ Item {
28 property QtObject indicatorsModel: null
28 property QtObject indicatorsModel: null
29 property var visibleIndicators: defined
29 property var visibleIndicators: defined
30 property int overFlowWidth: width
30 property int overFlowWidth: width
31+ property bool showAll: false
32 width: units.gu(40)
33 width: units.gu(40)
33 height: units.gu(3)
34 height: units.gu(3)
@@ -43,6 +44,15 @@ Item {
@@ -55,11 +65,21 @@ Item {
55 objectName: "rowRepeater"
65 objectName: "rowRepeater"
56 model: indicatorsModel ? indicatorsModel : undefined
66 model: indicatorsModel ? indicatorsModel : undefined
68+ property int lastCount: 0
70+ if (lastCount < count) {
59 id: itemWrapper
78 id: itemWrapper
60 height: indicatorRow.height
79 height: indicatorRow.height
61 width: indicatorItem.width
80 width: indicatorItem.width
62 visible: indicatorItem.indicatorVisible
81 visible: indicatorItem.indicatorVisible
64 state: "standard"
84 state: "standard"
@@ -67,6 +87,9 @@ Item {
67 property alias highlighted: indicatorItem.highlighted
87 property alias highlighted: indicatorItem.highlighted
68 property alias dimmed: indicatorItem.dimmed
88 property alias dimmed: indicatorItem.dimmed
90+ property bool hidden: !showAll && !indicatorItem.highlighted && (indicatorRow.state == "locked" || indicatorRow.state == "commit")
91+ property bool overflow: row.width - itemWrapper.x > overFlowWidth
70 IndicatorItem {
93 IndicatorItem {
71 id: indicatorItem
94 id: indicatorItem
72 height: parent.height
95 height: parent.height
@@ -93,44 +116,24 @@ Item {
97− if (!indicatorItem.highlighted && (indicatorRow.state == "locked" || indicatorRow.state == "commit")) {
103− Behavior on opacity {
105− // flow away from current index
106− duration: (rowRepeater.count - Math.abs(indicatorRow.currentItemIndex - index)) * (500/rowRepeater.count)
109 states: [
119 states: [
111 name: "standard"
121 name: "standard"
112− when: row.width - itemWrapper.x <= overFlowWidth
122+ when: !hidden && !overflow
113− PropertyChanges { target: itemWrapper; y: 0 }
116 name: "overflow"
125 name: "overflow"
117− when: row.width - itemWrapper.x > overFlowWidth
126+ when: hidden || overflow
118− PropertyChanges { target: itemWrapper; y: -indicatorRow.height }
127+ PropertyChanges { target: itemWrapper; opacity: 0.0 }
121 transitions: [
131 transitions: [
122 Transition {
132 Transition {
123− from: "standard"; to: "overflow"
130− from: "overflow"; to: "standard"
131 StandardAnimation {
133 StandardAnimation {
132 target: itemWrapper
134 target: itemWrapper
133− property: "y"
135+ property: "opacity"