summaryrefslogtreecommitdiff
path: root/eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml
diff options
context:
space:
mode:
Diffstat (limited to 'eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml')
-rw-r--r--eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml49
1 files changed, 42 insertions, 7 deletions
diff --git a/eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml b/eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml
index f954db4..334be86 100644
--- a/eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml
+++ b/eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml
@@ -23,16 +23,25 @@ SocialMediaAccountDelegate {
showRemainingCount: false
services: ["Posts"]
- socialNetwork: SocialSync.Fediverse
+ socialNetwork: 9
dataType: SocialSync.Posts
providerName: "fediverse"
- periodicSyncLoopEnabled: true
FediversePostActions {
id: fediversePostActions
}
- model: FediversePostsModel {}
+ model: FediversePostsModel {
+ onCountChanged: {
+ if (count > 0) {
+ if (!updateTimer.running) {
+ shortUpdateTimer.start()
+ }
+ } else {
+ shortUpdateTimer.stop()
+ }
+ }
+ }
delegate: FediverseFeedItem {
downloader: delegateItem.downloader
@@ -78,17 +87,19 @@ SocialMediaAccountDelegate {
if (viewVisible) {
delegateItem.resetHasSyncableAccounts()
delegateItem.model.refresh()
- if (delegateItem.hasSyncableAccounts) {
- delegateItem.startPeriodicSyncLoop()
+ if (delegateItem.hasSyncableAccounts && !updateTimer.running) {
+ shortUpdateTimer.start()
}
} else {
- delegateItem.stopPeriodicSyncLoop()
+ shortUpdateTimer.stop()
}
}
onConnectedToNetworkChanged: {
if (viewVisible) {
- delegateItem.startPeriodicSyncLoop()
+ if (!updateTimer.running) {
+ shortUpdateTimer.start()
+ }
}
}
@@ -103,6 +114,30 @@ SocialMediaAccountDelegate {
}
}
+ Timer {
+ id: shortUpdateTimer
+
+ interval: 3000
+ onTriggered: {
+ delegateItem.sync()
+ updateTimer.start()
+ }
+ }
+
+ Timer {
+ id: updateTimer
+
+ interval: 60000
+ repeat: true
+ onTriggered: {
+ if (delegateItem.viewVisible) {
+ delegateItem.sync()
+ } else {
+ stop()
+ }
+ }
+ }
+
function statusUrl(modelData) {
var directUrl = modelData && modelData.url ? modelData.url.toString() : ""
if (directUrl.length > 0) {