2
* Copyright (C) 2013 Canonical, Ltd.
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; version 3.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
import Ubuntu.Components 0.1
23
property QtObject currentItem : null
24
property int currentItemIndex: currentItem ? currentItem.ownIndex : -1
25
property alias row: row
26
property QtObject indicatorsModel: null
27
property bool overviewActive: false // "state of the menu"
29
Behavior on y {NumberAnimation {duration: 300; easing.type: Easing.OutCubic} }
34
Component.onCompleted: setDefaultItem()
36
function setDefaultItem() {
37
// The leftmost indicator
38
var defaultItemIndex = 0
39
setItem(defaultItemIndex)
42
function setItem(index) {
43
currentItem = rowRepeater.itemAt(index)
51
anchors.right: parent.right
55
objectName: "rowRepeater"
56
model: indicatorsModel ? indicatorsModel : undefined
60
property int ownIndex: index
63
iconSource: model.iconSource
64
highlighted: indicatorRow.state == "reveal" || indicatorRow.state == "locked" || indicatorRow.state == "commit" ? ownIndex == indicatorRow.currentItemIndex : false
65
dimmed: { //See FIXME in Indicators regarding the "states" change
66
if (indicatorRow.state == "initial" || indicatorRow.state == "") {
68
} else if (indicatorRow.state == "hint") {
71
return ownIndex != indicatorRow.currentItemIndex
74
height: indicatorRow.height
76
//FIXME: all indicators will be initial for now.
77
if (!highlighted && !overviewActive && (indicatorRow.state == "locked" || indicatorRow.state == "commit")) {
78
return -indicatorRow.height
88
} else if (index == 1) {
90
} else if (index == 2) {
92
} else if (index == 3) {
95
return 100 + Math.random() * 200
98
easing.type: Easing.OutCubic