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 | |
| parent | a35c9fa159173388d88ef77e1d31f53488aad094 (diff) | |
Diffstat (limited to 'eventsview-plugins')
| -rw-r--r-- | eventsview-plugins/eventsview-plugin-fediverse/fediverse-delegate.qml | 49 | ||||
| -rw-r--r-- | eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.cpp | 2 |
2 files changed, 43 insertions, 8 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) { diff --git a/eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.cpp b/eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.cpp index 48b3446..b6d0aa3 100644 --- a/eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.cpp +++ b/eventsview-plugins/eventsview-plugin-fediverse/fediversepostsmodel.cpp @@ -39,7 +39,7 @@ QVariantList imageListForPost(const SocialPost::ConstPtr &post) imageMap.insert(QStringLiteral("url"), image->url()); imageMap.insert(QStringLiteral("type"), image->type() == SocialPostImage::Video ? QStringLiteral("video") - : QStringLiteral("image")); + : QStringLiteral("photo")); images.append(imageMap); } |
