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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
import QtQuick 2.0
import Ubuntu.Components 0.1
Item{
id: infoBubble
property var event;
property int type: narrowType
property int wideType: 1;
property int narrowType: 2;
readonly property int minimumHeight: timeLabel.height
signal clicked(var event);
UbuntuShape{
id: bg
anchors.fill: parent
color: "white"
}
onEventChanged: {
setDetails();
}
Component.onCompleted: {
setDetails();
}
function setDetails() {
if(event === null || event === undefined) {
return;
}
// TRANSLATORS: this is a time formatting string,
// see http://qt-project.org/doc/qt-5.0/qtqml/qml-qtquick2-date.html#details for valid expressions
var timeFormat = i18n.tr("hh:mm");
var startTime = event.startDateTime.toLocaleTimeString(Qt.locale(), timeFormat)
var endTime = event.endDateTime.toLocaleTimeString(Qt.locale(), timeFormat)
// TRANSLATORS: the first argument (%1) refers to a start time for an event,
// while the second one (%2) refers to the end time
var timeString = i18n.tr("%1 - %2").arg(startTime).arg(endTime)
timeLabel.text = ""
titleLabel.text = ""
descriptionLabel.text = ""
//height is less then set only event title
if( height > minimumHeight ) {
//on wide type show all details
if( type == wideType) {
timeLabel.text = timeString
if( event.displayLabel)
titleLabel.text = event.displayLabel;
if( event.description)
descriptionLabel.text = event.description
} else {
//narrow type shows only time and title
timeLabel.text = startTime
if( event.displayLabel)
titleLabel.text = event.displayLabel;
}
} else {
if( event.displayLabel)
timeLabel.text = event.displayLabel;
}
}
Column{
width: parent.width
Row{
width: parent.width
Rectangle{
width: units.gu(1)
radius: width/2
height: width
color: "#715772"
anchors.verticalCenter: parent.verticalCenter
antialiasing: true
}
Label{
id: timeLabel
fontSize:"small";
color:"gray"
width: parent.width
}
}
Label{
id: titleLabel
x: units.gu(1)
fontSize:"small";
color:"black"
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
width: parent.width
}
Label{
id: descriptionLabel
x: units.gu(1)
fontSize:"small";
color:"gray"
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
width: parent.width
visible: type == wideType
}
}
MouseArea{
anchors.fill: parent
onClicked: {
infoBubble.clicked(event);
}
}
}
|