OSDN Git Service

Update license.
[qt-creator-jp/qt-creator-jp.git] / src / plugins / qmldesigner / components / itemlibrary / qml / ItemView.qml
1 /**************************************************************************
2 **
3 ** This file is part of Qt Creator
4 **
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
6 **
7 ** Contact: Nokia Corporation (info@qt.nokia.com)
8 **
9 **
10 ** GNU Lesser General Public License Usage
11 **
12 ** This file may be used under the terms of the GNU Lesser General Public
13 ** License version 2.1 as published by the Free Software Foundation and
14 ** appearing in the file LICENSE.LGPL included in the packaging of this file.
15 ** Please review the following information to ensure the GNU Lesser General
16 ** Public License version 2.1 requirements will be met:
17 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 **
19 ** In addition, as a special exception, Nokia gives you certain additional
20 ** rights. These rights are described in the Nokia Qt LGPL Exception
21 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 **
23 ** Other Usage
24 **
25 ** Alternatively, this file may be used in accordance with the terms and
26 ** conditions contained in a signed written agreement between you and Nokia.
27 **
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
30 **
31 **************************************************************************/
32
33 import Qt 4.7
34
35 // view displaying an item library grid item
36
37 Item {
38     id: itemView
39
40     // public
41
42     signal itemPressed()
43     signal itemDragged()
44
45     // internal
46
47     ItemsViewStyle { id: style }
48
49     // frame
50     Rectangle {
51         anchors.top: parent.top
52         anchors.left: parent.left
53         anchors.right: parent.right
54         height: 1
55         color: style.gridLineLighter
56     }
57     Rectangle {
58         anchors.bottom: parent.bottom
59         anchors.left: parent.left
60         anchors.right: parent.right
61         height: 1
62         color: style.gridLineDarker
63     }
64     Rectangle {
65         anchors.top: parent.top
66         anchors.bottom: parent.bottom
67         anchors.left: parent.left
68         width: 1
69         color: style.gridLineLighter
70     }
71     Rectangle {
72         anchors.top: parent.top
73         anchors.bottom: parent.bottom
74         anchors.right: parent.right
75         width: 1
76         color: style.gridLineDarker
77     }
78     Rectangle {
79         anchors.top:parent.top
80         anchors.right:parent.right
81         width:1
82         height:1
83         color: style.backgroundColor
84     }
85     Rectangle {
86         anchors.bottom:parent.bottom
87         anchors.left:parent.left
88         width:1
89         height:1
90         color: style.backgroundColor
91     }
92
93     Image {
94         id: itemIcon
95
96         anchors.top: parent.top
97         anchors.topMargin: style.cellVerticalMargin
98         anchors.horizontalCenter: parent.horizontalCenter
99
100         width: itemLibraryIconWidth  // to be set in Qml context
101         height: itemLibraryIconHeight   // to be set in Qml context
102         source: itemLibraryIconPath     // to be set by model
103     }
104
105     Text {
106         id: text
107         elide: Text.ElideMiddle
108         anchors.top: itemIcon.bottom
109         anchors.topMargin: style.cellVerticalSpacing
110         anchors.left: parent.left
111         anchors.leftMargin: style.cellHorizontalMargin
112         anchors.right: parent.right
113         anchors.rightMargin: style.cellHorizontalMargin
114         width: style.textWidth
115         height: style.textHeight
116
117         verticalAlignment: "AlignVCenter"
118         horizontalAlignment: "AlignHCenter"
119         text: itemName  // to be set by model
120         color: style.itemNameTextColor
121     }
122
123     MouseArea {
124         id: mouseRegion
125         anchors.fill: parent
126
127         property bool reallyPressed: false
128         property int pressedX
129         property int pressedY
130
131         onPressed: {
132             reallyPressed = true
133             pressedX = mouse.x
134             pressedY = mouse.y
135             itemPressed()
136         }
137         onPositionChanged: {
138             if (reallyPressed &&
139                 (Math.abs(mouse.x - pressedX) +
140                  Math.abs(mouse.y - pressedY)) > 3) {
141                 itemDragged()
142                 reallyPressed = false
143             }
144         }
145         onReleased: reallyPressed = false
146     }
147 }
148