Keep a {id: item} cache for ModelStore models
Accelerates the ModelStore ListView find() function, which now just has to get an object key instead of looping through the whole model.
This commit is contained in:
@@ -12,8 +12,8 @@ Item {
|
||||
property string userId
|
||||
property string roomId
|
||||
|
||||
property QtObject userInfo: null
|
||||
property QtObject roomInfo: null
|
||||
property QtObject userInfo: ModelStore.get("accounts").find(userId)
|
||||
property QtObject roomInfo: ModelStore.get(userId, "rooms").find(roomId)
|
||||
|
||||
property bool ready: Boolean(userInfo && roomInfo)
|
||||
property bool longLoading: false
|
||||
@@ -58,22 +58,6 @@ Item {
|
||||
)
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 100
|
||||
running: ! userInfo
|
||||
repeat: true
|
||||
triggeredOnStart: true
|
||||
onTriggered: userInfo = ModelStore.get("accounts").find(userId)
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 100
|
||||
running: ! roomInfo
|
||||
repeat: true
|
||||
triggeredOnStart: true
|
||||
onTriggered: roomInfo = ModelStore.get(userId, "rooms").find(roomId)
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 300
|
||||
running: ! ready
|
||||
|
Reference in New Issue
Block a user