diff options
| author | Andrew Branson <andrew.branson@jolla.com> | 2026-04-06 13:20:06 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@jolla.com> | 2026-04-06 13:20:06 +0200 |
| commit | 5fb6483eb3674ff42ba7022127425ef7e7a9432f (patch) | |
| tree | a4d6456d04945ae3497bd96b6a0236db6ae70a12 /eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml | |
| parent | a35c9fa159173388d88ef77e1d31f53488aad094 (diff) | |
Diffstat (limited to 'eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml')
| -rw-r--r-- | eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml | 49 |
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) { |
