-
Notifications
You must be signed in to change notification settings - Fork 0
/
My.qml
141 lines (117 loc) · 5 KB
/
My.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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/*
by sanekyy
Страничка пользователя, здесь отображаются данные о пользователе:
Аватарка
Данные
Истори постов
Подпищики
Подписки
Доступна панель навигации для перехода к другим страницам приложения
По завершению создания странички, вызывается my() в которой подгружаются данные о пользователе.
Содержит Column с фото и данными о пользователе.
*/
import QtQuick 2.2
import QuickAndroid 0.1
import QuickAndroid.Styles 0.1
import QtQuick.Controls 1.4 as Control
Page {
id: myPage
objectName: "MyPage"
function my() {
// Создаём json для запроса к серверу
var jsonReq = JSON.stringify({userId: A.settings.userId, username: A.settings.username,
password: A.settings.password
});
// Создаём http объект, открываем и настраиваем запрос, отправляем json
var request = new XMLHttpRequest();
request.open("POST", "http://" + A.serverIp + ":" + A.serverPort + "/my");;
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Content-Length', jsonReq.length);
request.send(jsonReq);
// Следим за изменением состояния запроса
request.onreadystatechange = function() {
if (request.readyState == request.DONE) { // Запрос выполнен?
if(request.status && request.status === 200){ // Успешкое выполнение?
if(request.getResponseHeader('Content-Type')==='application/json; charset=utf-8'){
var jsonRes = JSON.parse(request.responseText);
if (!jsonRes.err){ // Проверяем на отсутствие ошибки
userId.text+=jsonRes.userId;
username.text+=jsonRes.username;
firstName.text+=jsonRes.firstName;
lastName.text+=jsonRes.lastName;
scrollView.visible=true;
return;
}
// Обработка ошибки, сообщение пользователю...
A.openDialog("My Page", jsonRes.err.description, "OK");
return;
}
}
// Если запрос выполнен, но сервер не ответил кодом 200 ( 200 - успешное выполнение )
console.log('Server error');
A.openDialog("Error", "Server don't answer", "OK");
return;
}
};
}
actionBar: ActionBar {
id: actionBar
upEnabled: true
title: qsTr("My Page")
showTitle: true
iconSource: A.pageStack.count>2? A.drawable("ic_arrow_back",Constants.black87):A.drawable("ic_menu",Constants.black87)
onActionButtonClicked:{A.pageStack.count>2? back():A.startPage.openNavigationDrawer();}
z: 10
}
Control.ScrollView {
id: scrollView
visible: false
anchors.fill: parent
Column{
//spacing: 8 * A.dp
anchors.centerIn: parent
width:myPage.width
// space
Item{
width:30*A.dp
height: actionBar.height
}
Image{
sourceSize: Qt.size(48*A.dp, 48*A.dp);
source: A.drawable("ic_android_black_48dp","Green");
anchors.horizontalCenter: parent.horizontalCenter
}
Text {
id:userId
anchors.horizontalCenter: parent.horizontalCenter
text : "userId: "
type: Constants.smallText
color : Constants.black87
}
Text {
id:username
anchors.horizontalCenter: parent.horizontalCenter
text : "username: "
type: Constants.smallText
color : Constants.black87
}
Text {
id:firstName
anchors.horizontalCenter: parent.horizontalCenter
text : "firstName: "
type: Constants.smallText
color : Constants.black87
}
Text {
id:lastName
anchors.horizontalCenter: parent.horizontalCenter
text : "lastName: "
type: Constants.smallText
color : Constants.black87
}
}
}
Component.onCompleted: {
my();
}
}