fix(sessions): lista vuota sul device — modello C++ con ruoli (v0.1.2)
Causa: su Qt 5.6 (kit Sailfish 5.1) una QVariantList di QVariantMap
usata come model non fa risolvere i campi nei delegate QML
(model.title/message_count/updated_at = undefined -> righe vuote), pur
con payload corretto dal server (verificato con cattura reale del 12/09).
- Nuovo src/sessionsmodel.{h,cpp}: QAbstractListModel con ruoli
session_id/title/message_count/updated_at; api.sessions ora e' il
modello, api.sessionsCount per lo stato "nessuna sessione"
- /api/sessions con sidebar_source=webui&exclude_hidden=1 (come la
sidebar del browser: solo sessioni WebUI, niente CLI/cron/nascoste)
- SessionsPage: describe(message_count, updated_at) con parametri espliciti
- PROTOCOL.md: payload sessions verificato + nota del pitfall Qt 5.6
This commit is contained in:
@@ -58,7 +58,7 @@ Page {
|
||||
width: parent.width
|
||||
font.pixelSize: Theme.fontSizeExtraSmall
|
||||
color: Theme.secondaryColor
|
||||
text: page.describe(model)
|
||||
text: page.describe(model.message_count, model.updated_at)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ Page {
|
||||
}
|
||||
|
||||
ViewPlaceholder {
|
||||
enabled: api.sessions.length === 0 && !api.busy
|
||||
enabled: api.sessionsCount === 0 && !api.busy
|
||||
text: qsTr("No sessions")
|
||||
hintText: qsTr("Pull down to create a new session")
|
||||
}
|
||||
@@ -119,9 +119,9 @@ Page {
|
||||
chat.newSession()
|
||||
}
|
||||
|
||||
function describe(m) {
|
||||
var n = m.message_count ? m.message_count : 0
|
||||
var d = new Date((m.updated_at ? m.updated_at : 0) * 1000)
|
||||
return n + qsTr(" messages") + " · " + Qt.formatDateTime(d, "dd/MM HH:mm")
|
||||
function describe(n, u) {
|
||||
var c = n ? n : 0
|
||||
var d = new Date((u ? u : 0) * 1000)
|
||||
return c + qsTr(" messages") + " · " + Qt.formatDateTime(d, "dd/MM HH:mm")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user