blob: b454ca7d8463a926ac284855c1a8b589312034eb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0 WITH Qt-GPL-exception-1.0
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0
import StudioTheme 1.0 as StudioTheme
Item {
id: delegateRoot
property alias textColor: text.color
signal showContextMenu()
Rectangle {
anchors.rightMargin: 1
anchors.topMargin: 1
anchors.fill: parent
color: mouseRegion.containsMouse ? StudioTheme.Values.themeControlBackgroundHover : StudioTheme.Values.themePanelBackground
Behavior on color {
ColorAnimation {
duration: StudioTheme.Values.hoverDuration
easing.type: StudioTheme.Values.hoverEasing
}
}
Image {
id: itemIcon // to be set by model
anchors.top: parent.top
anchors.topMargin: styleConstants.cellVerticalMargin
anchors.horizontalCenter: parent.horizontalCenter
width: itemLibraryIconWidth // to be set in Qml context
height: itemLibraryIconHeight // to be set in Qml context
source: itemLibraryIconPath // to be set by model
// Icons generated for components can change if the component is edited,
// so don't cache them locally at Image level.
cache: itemComponentSource === ""
}
Text {
id: text
font.pixelSize: Theme.smallFontPixelSize()
elide: Text.ElideMiddle
wrapMode: Text.WordWrap
anchors.top: itemIcon.bottom
anchors.topMargin: styleConstants.cellVerticalSpacing
anchors.left: parent.left
anchors.leftMargin: styleConstants.cellHorizontalMargin
anchors.right: parent.right
anchors.rightMargin: styleConstants.cellHorizontalMargin
anchors.bottom: parent.bottom
anchors.bottomMargin: styleConstants.cellHorizontalMargin
verticalAlignment: Qt.AlignVCenter
horizontalAlignment: Qt.AlignHCenter
text: itemName // to be set by model
color: StudioTheme.Values.themeTextColor
renderType: Text.NativeRendering
}
ImagePreviewTooltipArea {
id: mouseRegion
anchors.fill: parent
onShowContextMenu: delegateRoot.showContextMenu()
onPressed: (mouse)=> {
allowTooltip = false
hide()
if (mouse.button === Qt.LeftButton)
rootView.startDragAndDrop(itemLibraryEntry, mapToGlobal(mouse.x, mouse.y))
}
onDoubleClicked: (mouse)=> {
if (mouse.button === Qt.LeftButton && itemComponentSource) {
hide()
rootView.goIntoComponent(itemComponentSource)
}
}
}
}
}
|