blob: 9835a066983bf8af6fb37d60623c0f688eb7f374 (
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
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
|
import QtQuick 1.1
import com.nokia.meego 1.1
import com.nokia.extras 1.1
import com.javispedro.tapasboard 1.0
Page {
id: topicPage
anchors.leftMargin: UiConstants.DefaultMargin
anchors.rightMargin: UiConstants.DefaultMargin
property Board board;
property int topicId;
tools: ToolBarLayout {
ToolIcon {
platformIconId: "toolbar-back"
onClicked: pageStack.pop()
}
ToolIcon {
platformIconId: board.busy ? "toolbar-cancle" : "toolbar-refresh"
onClicked: {
if (board.busy) {
board.cancelAllActions();
} else {
topicModel.refresh();
}
}
}
}
ListView {
id: postsView
anchors.fill: parent
model: TopicModel {
id: topicModel
board: topicPage.board
topicId: topicPage.topicId
onFirstUnreadPostChanged: {
postsView.positionViewAtIndex(firstUnreadPost, ListView.Beginning);
topicModel.markAsRead();
}
}
section.property: "humanDate"
section.criteria: ViewSection.FullString
section.delegate: GroupHeader {
width: parent.width
text: section
}
delegate: Item {
id: postItem
height: postItemRectangle.height + UiConstants.ButtonSpacing * 2
width: parent.width
Rectangle {
id: postItemRectangle
width: parent.width
height: postItemColumn.height + UiConstants.DefaultMargin
anchors.centerIn: parent
visible: model.postId >= 0
color: "white"
radius: 20
border.width: model.unread ? 2 : 0
border.color: "black"
Column {
id: postItemColumn
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: UiConstants.DefaultMargin
anchors.verticalCenter: parent.verticalCenter
spacing: 2
Item {
width: parent.width
height: childrenRect.height
Text {
anchors.top: parent.top
anchors.left: parent.left
text: model.userName
font: UiConstants.SmallTitleFont
textFormat: Text.PlainText
}
Text {
anchors.top: parent.top
anchors.right: parent.right
text: model.humanTime
font: UiConstants.SubtitleFont
textFormat: Text.PlainText
}
}
Text {
text: model.title
width: parent.width
font: UiConstants.TitleFont
visible: text != ""
textFormat: Text.PlainText
wrapMode: Text.Wrap
}
Text {
text: model.content
width: parent.width
font: UiConstants.SubtitleFont
textFormat: Text.RichText
wrapMode: Text.Wrap
onLinkActivated: Qt.openUrlExternally(link)
}
}
}
}
}
ScrollDecorator {
flickableItem: postsView
}
BusyIndicator {
anchors.centerIn: parent
platformStyle: BusyIndicatorStyle { size: "large" }
visible: postsView.count == 0 && board.busy
running: visible
}
}
|