-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSubredditListModel.qml
59 lines (46 loc) · 1.43 KB
/
SubredditListModel.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
import QtQuick 2.0
import "QReddit.js" as QReddit
ListModel {
id: subredditListModel
property string subreddit
property string filter
property bool loaded
signal loadFinished
property var redditObj: new QReddit.QReddit("QReddit", "qreddit")
property var subredditObj: redditObj.getSubredditObj(subreddit)
onSubredditChanged: {
//console.log('Subreddit changed to '+subreddit)
clear();
subredditObj = redditObj.getSubredditObj(subreddit);
load();
}
onFilterChanged: {
//console.log('Filter changed to '+filter)
clear();
load();
}
Component.onCompleted: load()
function load() {
var connObj = subredditObj.getPostsListing(filter, {})
connObj.onSuccess.connect(function(response) {
for (var i = 0; i < connObj.response.length; i++) {
var postObj = connObj.response[i];
subredditListModel.append(postObj);
}
loadFinished();
loaded = true;
});
}
function loadMore() {
if (!loaded) {
return;
}
var moreConnObj = subredditObj.getMoreListing()
moreConnObj.onSuccess.connect(function(){
for (var i = 0; i < moreConnObj.response.length; i++) {
var postObj = moreConnObj.response[i];
subredditListModel.append(postObj);
}
})
}
}