aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Kitaev <mbg033@gmail.com>2016-06-21 11:58:06 +0300
committerIlya Kitaev <mbg033@gmail.com>2016-06-21 11:58:06 +0300
commit88d9be953babda68cb5325258569578c11fa4438 (patch)
tree4e22b0a202b7e7d325818acb8c2d88161a3411f8
parent417c9bf60925aa0b7bc6ccc78721c8bc905ff88f (diff)
downloadmonzero-gui-88d9be953babda68cb5325258569578c11fa4438.tar.gz
monzero-gui-88d9be953babda68cb5325258569578c11fa4438.tar.xz
monzero-gui-88d9be953babda68cb5325258569578c11fa4438.zip
Lazy loading for the tweets
-rw-r--r--RightPanel.qml13
-rw-r--r--main.qml6
-rw-r--r--tabs/TweetsModel.qml48
-rw-r--r--tabs/Twitter.qml8
4 files changed, 47 insertions, 28 deletions
diff --git a/RightPanel.qml b/RightPanel.qml
index b29cb28a..c5878146 100644
--- a/RightPanel.qml
+++ b/RightPanel.qml
@@ -36,6 +36,11 @@ Rectangle {
width: 330
color: "#FFFFFF"
+ function updateTweets() {
+ tabView.twitter.item.updateTweets()
+ }
+
+
TabView {
id: tabView
anchors.left: parent.left
@@ -45,12 +50,18 @@ Rectangle {
anchors.leftMargin: 14
anchors.rightMargin: 14
anchors.topMargin: 40
+ property alias twitter: twitter
+
- Tab { title: qsTr("Twitter"); source: "tabs/Twitter.qml" }
+
+
+ Tab { id: twitter; title: qsTr("Twitter"); source: "tabs/Twitter.qml" }
Tab { title: "News" }
Tab { title: "Help" }
Tab { title: "About" }
+
+
style: TabViewStyle {
frameOverlap: 0
tabOverlap: 0
diff --git a/main.qml b/main.qml
index 7101d096..6f90bcf8 100644
--- a/main.qml
+++ b/main.qml
@@ -210,6 +210,12 @@ ApplicationWindow {
}
}
+ onRightPanelExpandedChanged: {
+ if (rightPanelExpanded) {
+ rightPanel.updateTweets()
+ }
+ }
+
Settings {
id: persistentSettings
property string language
diff --git a/tabs/TweetsModel.qml b/tabs/TweetsModel.qml
index a6b40aa6..55a7c74d 100644
--- a/tabs/TweetsModel.qml
+++ b/tabs/TweetsModel.qml
@@ -56,47 +56,41 @@ Item {
function reload() {
tweets.clear()
-
if (from == "" && phrase == "")
return;
-
- if (appWindow.rightPanelExpanded) {
-
-//! [requesting]
- var req = new XMLHttpRequest;
- req.open("GET", "https://api.twitter.com/1.1/search/tweets.json?from=" + from +
- "&count=" + tweetsMaxCount + "&q=" + encodePhrase(phrase));
- req.setRequestHeader("Authorization", "Bearer " + bearerToken);
- req.onreadystatechange = function() {
- status = req.readyState;
- if (status === XMLHttpRequest.DONE) {
- var objectArray = JSON.parse(req.responseText);
- if (objectArray.errors !== undefined)
- console.log("Error fetching tweets: " + objectArray.errors[0].message)
- else {
- for (var key in objectArray.statuses) {
- var jsonObject = objectArray.statuses[key];
- tweets.append(jsonObject);
- }
+ //! [requesting]
+ var req = new XMLHttpRequest;
+ req.open("GET", "https://api.twitter.com/1.1/search/tweets.json?from=" + from +
+ "&count=" + tweetsMaxCount + "&q=" + encodePhrase(phrase));
+ req.setRequestHeader("Authorization", "Bearer " + bearerToken);
+ req.onreadystatechange = function() {
+ status = req.readyState;
+ if (status === XMLHttpRequest.DONE) {
+ var objectArray = JSON.parse(req.responseText);
+ if (objectArray.errors !== undefined)
+ console.log("Error fetching tweets: " + objectArray.errors[0].message)
+ else {
+ for (var key in objectArray.statuses) {
+ var jsonObject = objectArray.statuses[key];
+ tweets.append(jsonObject);
}
- if (wasLoading == true)
- wrapper.isLoaded()
}
- wasLoading = (status === XMLHttpRequest.LOADING);
+ if (wasLoading == true)
+ wrapper.isLoaded()
}
- req.send();
-//! [requesting]
+ wasLoading = (status === XMLHttpRequest.LOADING);
}
+ req.send();
+ //! [requesting]
}
-
Component.onCompleted: {
if (consumerKey === "" || consumerSecret == "") {
console.log("setting demo token")
bearerToken = encodeURIComponent(Helper.demoToken())
tweetsModel.phrase = ""
tweetsModel.from = "@monerocurrency"
- reload()
+ // reload()
return;
}
diff --git a/tabs/Twitter.qml b/tabs/Twitter.qml
index 553e7da6..bd597287 100644
--- a/tabs/Twitter.qml
+++ b/tabs/Twitter.qml
@@ -34,6 +34,8 @@ import "../components"
Item {
id: tab
+
+
ListModel {
id: testModel
ListElement { head: "Monero || #xmr"; foot: "<b>@btcplanet</b> Duis turpis arcu, varius nec rutrum in, adipiscing at enim. Donec quis consequat ipsum," }
@@ -56,10 +58,16 @@ Item {
property var idx
property var ids
+ function updateTweets() {
+ tweetsModel.reload()
+ }
+
+
Component.onCompleted: {
ids = new Array()
}
+
function idInModel(id) {
for (var j = 0; j < ids.length; j++)
if (ids[j] === id)