This repository has been archived by the owner on Nov 10, 2017. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
main.qml
114 lines (105 loc) · 2.98 KB
/
main.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
import bb.cascades 1.0
import bb.system 1.0
import "CategoryTab"
import "FeedsListPage"
import "SubscriptionSheet"
TabbedPane {
id: tabPane
Menu.definition: MenuDefinition {
settingsAction: SettingsActionItem {
onTriggered: {
displaySettings();
}
}
helpAction: HelpActionItem {
onTriggered: {
displayHelp();
}
}
/*actions: [
ActionItem {
title: qsTr("Subscribe")
imageSource: "asset:///images/subscribe.png"
onTriggered: {
displaySubscriptionPage();
}
}
]*/
} // Menu.definition
showTabsOnActionBar: false
activePane: NavigationPane {
id: nav
peekEnabled: false
FeedsListPage {
id: feedsPage
onFeedClicked: {
var page = articlesListPageDefinition.createObject();
page.feed = feed;
nav.push(page)
}
}
} // NavigationPane
onActiveTabChanged: {
feedsPage.titleBar.title = activeTab.title;
if (activeTab.category) {
_feedModel.filterOnCategory(activeTab.category.id);
} else {
_feedModel.resetCategoryFilter();
}
}
attachedObjects: [
ComponentDefinition {
id: settingsPageDefinition
source: "SettingsPage/SettingsPage.qml"
}, // Settings page
ComponentDefinition {
id: articlesListPageDefinition
source: "ArticlesListPage/ArticlesListPage.qml"
}, // Articles list page
ComponentDefinition {
id: newTabDefinition
content: CategoryTab {}
}, // New tab
SystemToast {
id: errorToast
body: "Error"
}, // Error toast
Sheet {
id: subscriptionSheet
SubscriptionSheet {
id: subscribe
onCancel: {
subscriptionSheet.close();
}
onAccept: {
_manager.subscribe(feedUrl);
subscriptionSheet.close();
}
}
} // Subscription page
] // attachedObjects
function displaySettings() {
var page = settingsPageDefinition.createObject();
nav.push(page)
}
function displayHelp() {
// TODO: display help
console.log("Help not implemented yet");
}
function displaySubscriptionPage() {
subscriptionSheet.open();
}
function displayError(text) {
errorToast.body = text;
errorToast.show();
}
function addCategory(category) {
var tab = newTabDefinition.createObject();
tab.category = category;
tabPane.add(tab);
}
Tab {
title: qsTr("All feeds")
imageSource: "asset:///images/all_categories.png"
}
} // TabbedPane