Rimossa la sync server dell'avanzamento di lettura (login di sessione, postBookmark, fetchBookmark): resta solo il salvataggio locale della posizione (QSettings) con ripristino locale all'apertura. ApiClient riportato a feed OPDS + copertine

This commit is contained in:
2026-08-13 09:34:39 +02:00
parent 9bdec3eb2d
commit c216b20abb
3 changed files with 1 additions and 324 deletions
+1 -49
View File
@@ -15,7 +15,6 @@ Page {
property bool ready: false
property bool restoring: false
property int saveCounter: 0
property int syncCounter: 0
property string errorMessage: ""
// reflow: scala il font (il testo si ri-avvolge), non lo zoom grafico
property double fontScale: 1.0
@@ -36,10 +35,6 @@ Page {
text: "Indice capitoli"
onClicked: showChapterList()
}
MenuItem {
text: "Aggiorna posizione sul server"
onClicked: syncNow()
}
MenuItem {
text: "Margini del testo"
onClicked: {
@@ -201,20 +196,11 @@ Page {
if (bookId <= 0)
return
page.saveCounter++
// salva locale ogni ~10 s, sync server ogni ~30 s
// salva in locale ogni ~10 s (o subito su forzatura)
if (force || page.saveCounter % 5 === 0) {
appSettings.setBookmarkKey(page.bookId, page.bookFormat,
book.makeBookmarkKey(page.currentChapter, page.chapterFraction))
}
if (force || page.syncCounter++ % 15 === 0)
syncNow()
}
function syncNow() {
if (bookId <= 0)
return
apiClient.postBookmark(page.bookId, page.bookFormat,
book.makeBookmarkKey(page.currentChapter, page.chapterFraction))
}
function gotoChapter(index) {
@@ -315,11 +301,6 @@ Page {
page.currentChapter = ch
page.chapterFraction = fr
loadChapter()
// ripristino anche dal server: la posizione remota vince, se esiste.
// Il login di sessione viene fatto qui (prima richiesta verso le route web)
if (page.bookId > 0)
apiClient.fetchBookmark(page.bookId, page.bookFormat)
}
onStatusChanged: {
@@ -332,33 +313,4 @@ Page {
applyMarginsJS()
}
}
Connections {
target: apiClient
// posizione letta dal server all'apertura del libro
onBookmarkReady: {
if (bookId !== page.bookId)
return
if (key.length === 0)
return // nessun segnalibro sul server: resta la posizione locale
var r = book.parseBookmarkKey(key)
if (!r || !r.hasOwnProperty("chapter"))
return
var same = (r.chapter === page.currentChapter)
&& (Math.abs(r.fraction - page.chapterFraction) < 0.01)
if (same)
return
page.currentChapter = r.chapter
page.chapterFraction = r.fraction
// aggiorna anche la copia locale
appSettings.setBookmarkKey(page.bookId, page.bookFormat, key)
if (page.ready && book.chapterCount() > 0)
loadChapter()
}
// sync non disponibile (server irraggiungibile, login bloccato, ...):
// si continua in locale, senza disturbare il lettore
onBookmarkError: { }
onLoginFailed: { }
}
}