forked from rh-lab-q/confla-android
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConferenceListPage.qml
124 lines (103 loc) · 3.98 KB
/
ConferenceListPage.qml
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
122
123
124
import QtQuick 2.0
import "functions.js" as F
import "Theme.js" as Theme
Page {
id: page
signal selectConference(variant conf_data, bool replace );
ListModel {
id: conferencesListModel;
}
ListView {
model: conferencesListModel
anchors.fill: parent
spacing: Theme.paddingMedium
delegate: BackgroundItem {
id: delegate
height: Math.max(delegateText.paintedHeight, icon.height) + 2*Theme.paddingMedium;
Image {
id: icon;
anchors.top: parent.top;
anchors.left: parent.left
anchors.topMargin: Theme.paddingMedium;
anchors.leftMargin: Theme.paddingMedium;
source: (model.icon !== undefined) ? model.icon : "";
}
Text {
id: delegateText
anchors.left: icon.right
anchors.margins: Theme.paddingMedium
text: model.name
anchors.verticalCenter: parent.verticalCenter
color: delegate.highlighted ? Theme.primary_color_highlight : Theme.primary_color;
wrapMode: Text.Wrap;
textFormat: Text.RichText;
font.pointSize: Theme.primary_pointSize
}
onClicked: {
selectConference(
{
"url": model.url,
"url_id": model.url_id,
"url_json": model.url_json,
"url_feedback": model.url_feedback,
"icon": model.icon,
"name": model.name,
"splash": model.splash,
"checksum": model.checksum,
}
, false);
}
}
}
Text {
visible: (conferencesListModel.count == 0);
//% "List of conferences is empty"
text: qsTrId("conference-list-page-list-is-empty")
anchors.fill: parent;
horizontalAlignment: Text.AlignHCenter;
verticalAlignment: Text.AlignVCenter;
wrapMode: Text.Wrap;
textFormat: Text.RichText;
font.pointSize: Theme.primary_pointSize
color: Theme.primary_color;
}
function reload(d) {
conferencesListModel.clear();
if (d.conferences !== undefined) {
var confs = d.conferences;
var conf;
for (var i = 0; i < confs.length; i++) {
conf = confs[i];
conferencesListModel.append(
{
"url": conf.url,
"url_id": conf.url_id,
"url_json": conf.url_json,
"url_feedback": conf.url_feedback,
"icon": conf.icon,
"name": conf.name,
"splash": conf.splash,
"checksum": conf.checksum,
}
)
// console.error(JSON.stringify(conf));
}
if (confs.length === 1) {
conf = confs[0];
selectConference(
{
"url": conf.url,
"url_id": conf.url_id,
"url_json": conf.url_json,
"url_feedback": conf.url_feedback,
"icon": conf.icon,
"name": conf.name,
"splash": conf.splash,
"checksum": conf.checksum,
}
, true);
}
}
// console.error("here " + JSON.stringify(d) )
}
}