summaryrefslogtreecommitdiff
path: root/qml/BoardPage.qml
diff options
context:
space:
mode:
Diffstat (limited to 'qml/BoardPage.qml')
-rw-r--r--qml/BoardPage.qml108
1 files changed, 108 insertions, 0 deletions
diff --git a/qml/BoardPage.qml b/qml/BoardPage.qml
new file mode 100644
index 0000000..ca988f3
--- /dev/null
+++ b/qml/BoardPage.qml
@@ -0,0 +1,108 @@
+import QtQuick 1.1
+import com.nokia.meego 1.1
+import com.nokia.extras 1.1
+import com.javispedro.tapasboard 1.0
+
+Page {
+ id: boardPage
+
+ anchors.leftMargin: UiConstants.DefaultMargin
+ anchors.rightMargin: UiConstants.DefaultMargin
+
+ property Board board : null;
+ property int forumId;
+
+ tools: ToolBarLayout {
+ ToolIcon {
+ platformIconId: "toolbar-back"
+ onClicked: pageStack.pop()
+ }
+ ToolIcon {
+ platformIconId: board.busy ? "toolbar-cancle" : "toolbar-refresh"
+ onClicked: {
+ if (board.busy) {
+ board.cancelAllActions();
+ } else {
+ boardModel.refresh();
+ }
+ }
+ }
+ }
+
+ ListView {
+ id: forumsView
+ anchors.fill: parent
+ model: BoardModel {
+ id: boardModel
+ board: boardPage.board
+ forumId: boardPage.forumId
+ }
+ section.criteria: ViewSection.FullString
+ section.property: "category"
+ section.delegate: GroupHeader {
+ width: parent.width
+ text: section
+ }
+
+ delegate: EmptyListDelegate {
+ id: forumItem
+
+ height: Math.max(forumItemColumn.height + UiConstants.ButtonSpacing * 2, UiConstants.ListItemHeightDefault)
+
+ unread: model.unread
+
+ Column {
+ id: forumItemColumn
+ anchors.left: parent.left
+ anchors.right: forumItemImage.left
+ anchors.verticalCenter: parent.verticalCenter
+
+ Text {
+ text: model.title
+ width: parent.width
+ font: UiConstants.TitleFont
+ }
+
+ Text {
+ text: model.description
+ width: parent.width
+ font: UiConstants.SubtitleFont
+ wrapMode: Text.Wrap
+ visible: text != ""
+ }
+ }
+
+ Image {
+ id: forumItemImage
+ source: "image://theme/icon-m-common-drilldown-arrow" + (theme.inverted ? "-inverse" : "")
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ }
+
+ onClicked: {
+ if (model.subOnly) {
+ pageStack.push(Qt.resolvedUrl("BoardPage.qml"), {
+ board: boardPage.board,
+ forumId: model.forumId
+ });
+ } else {
+ pageStack.push(Qt.resolvedUrl("ForumPage.qml"), {
+ board: boardPage.board,
+ forumId: model.forumId
+ });
+ }
+ }
+ }
+ }
+
+ ScrollDecorator {
+ flickableItem: forumsView
+ }
+
+ BusyIndicator {
+ anchors.centerIn: parent
+ platformStyle: BusyIndicatorStyle { size: "large" }
+ visible: forumsView.count == 0 && board.busy
+ running: visible
+ }
+}