RoomDelegate subtitle: lazy-fetch missing profiles
This commit is contained in:
parent
a0912106ca
commit
db5d9b57f8
|
@ -11,6 +11,7 @@ import "../PythonBridge"
|
||||||
HTile {
|
HTile {
|
||||||
id: room
|
id: room
|
||||||
|
|
||||||
|
property Future fetchProfilesFuture: null
|
||||||
property Future loadEventsFuture: null
|
property Future loadEventsFuture: null
|
||||||
property bool moreToLoad: true
|
property bool moreToLoad: true
|
||||||
|
|
||||||
|
@ -200,17 +201,20 @@ HTile {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onDestruction: if (loadEventsFuture) loadEventsFuture.cancel()
|
Component.onDestruction: {
|
||||||
|
if (fetchProfilesFuture) fetchProfilesFuture.cancel()
|
||||||
|
if (loadEventsFuture) loadEventsFuture.cancel()
|
||||||
|
}
|
||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
|
interval: 1000
|
||||||
|
triggeredOnStart: true
|
||||||
running:
|
running:
|
||||||
! accountModel.connecting &&
|
! accountModel.connecting &&
|
||||||
accountModel.presence !== "offline" &&
|
accountModel.presence !== "offline" &&
|
||||||
! lastEvent &&
|
! lastEvent &&
|
||||||
moreToLoad
|
moreToLoad
|
||||||
|
|
||||||
interval: 1000
|
|
||||||
triggeredOnStart: true
|
|
||||||
onTriggered: if (! loadEventsFuture) {
|
onTriggered: if (! loadEventsFuture) {
|
||||||
loadEventsFuture = py.callClientCoro(
|
loadEventsFuture = py.callClientCoro(
|
||||||
model.for_account,
|
model.for_account,
|
||||||
|
@ -224,4 +228,26 @@ HTile {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
// Ensure this event stays long enough for bothering to
|
||||||
|
// fetch the profile to be worth it
|
||||||
|
interval: 500
|
||||||
|
running:
|
||||||
|
! accountModel.connecting &&
|
||||||
|
accountModel.presence !== "offline" &&
|
||||||
|
lastEvent &&
|
||||||
|
lastEvent.fetch_profile
|
||||||
|
|
||||||
|
onTriggered: {
|
||||||
|
if (fetchProfilesFuture) fetchProfilesFuture.cancel()
|
||||||
|
|
||||||
|
fetchProfilesFuture = py.callClientCoro(
|
||||||
|
model.for_account,
|
||||||
|
"get_event_profiles",
|
||||||
|
[model.id, lastEvent.id],
|
||||||
|
() => { if (room) fetchProfilesFuture = null },
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user