stateslist.qml 3.38 KB
Newer Older
hjk's avatar
hjk committed
1
/****************************************************************************
Thomas Murach's avatar
Thomas Murach committed
2
**
3
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
hjk's avatar
hjk committed
4
** Contact: http://www.qt-project.org/legal
Thomas Murach's avatar
Thomas Murach committed
5
**
hjk's avatar
hjk committed
6
** This file is part of Qt Creator.
Thomas Murach's avatar
Thomas Murach committed
7
**
hjk's avatar
hjk committed
8
9
10
11
12
13
14
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.  For licensing terms and
** conditions see http://qt.digia.com/licensing.  For further information
** use the contact form at http://qt.digia.com/contact-us.
Thomas Murach's avatar
Thomas Murach committed
15
16
**
** GNU Lesser General Public License Usage
hjk's avatar
hjk committed
17
18
19
20
21
22
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file.  Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
Thomas Murach's avatar
Thomas Murach committed
23
**
hjk's avatar
hjk committed
24
25
** In addition, as a special exception, Digia gives you certain additional
** rights.  These rights are described in the Digia Qt LGPL Exception
Thomas Murach's avatar
Thomas Murach committed
26
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
hjk's avatar
hjk committed
28
****************************************************************************/
Thomas Murach's avatar
Thomas Murach committed
29

30
31
32
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
33
34
35

Rectangle {
    id: root
36

37
    height: 136
38
    signal createNewState
39
    signal deleteState(int internalNodeId)
40
41
    signal duplicateCurrentState

42
43
44
45
46
47
    property int stateImageSize: 100
    property int delegateWidth: stateImageSize + 10
    property int delegateHeight: root.height
    property int innerSpacing: 2
    property int currentStateInternalId : 0
    color: "#4f4f4f"
48

49
50
    Connections {
        target: statesEditorModel
51
        onChangedToState: root.currentStateInternalId = n
52
53
    }

54
55
    SystemPalette {
        id: palette
56
    }
57

58
    Item {
59
        id: addStateItem
60

61
        property int buttonLeftSpacing: innerSpacing
62

63
64
65
        anchors.right: parent.right
        width: delegateHeight / 2 + buttonLeftSpacing
        height: delegateHeight
66

67
68
69
        Button {
            id: addStateButton
            visible: canAddNewStates
70

71
72
73
74
75
            anchors.right: parent.right
            anchors.verticalCenter: parent.verticalCenter
            width: parent.height / 2
            height: parent.height / 2
            iconSource: "images/plus.png"
76

77
            onClicked: root.createNewState()
78
        }
79
    }
80

81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
    ScrollView {
        anchors.left: parent.left
        anchors.right: addStateItem.left
        height: delegateHeight

        ListView {
            anchors.fill: parent
            model: statesEditorModel
            orientation: ListView.Horizontal
            spacing: innerSpacing

            delegate: StatesDelegate {
                id: statesDelegate
                width: delegateWidth
                height: delegateHeight
96
                isCurrentState: root.currentStateInternalId == internalNodeId
97
98
99
100
                gradiantBaseColor: isCurrentState ? Qt.darker(highlightColor, 1.8) : root.color
                delegateStateName: stateName
                delegateStateImageSource: stateImageSource
                delegateStateImageSize: stateImageSize
101
102
103
104
            }
        }
    }
}