Lettore 0.4.9: margini verticali su ogni schermata — fasce opache fisse sopra/sotto la viewport (colore di sfondo per tema) + padding deficit dell'ultima pagina (max-scroll multiplo esatto del passo: ultima pagina allineata, niente righe ripetute)
This commit is contained in:
@@ -153,10 +153,11 @@ Page {
|
||||
Item {
|
||||
id: readerContent
|
||||
width: parent.width
|
||||
// Il contenitore ha il padding verticale (margine) + il "deficit"
|
||||
// dell'ultima pagina: cosi' max-scroll = k*step e l'ultima pagina
|
||||
// e' allineata (niente testo ripetuto tra penultima e ultima).
|
||||
height: Math.max(parent.height,
|
||||
textItem.height + 2 * (page.previewMarginT >= 0
|
||||
? page.previewMarginT
|
||||
: appSettings.readerMarginV))
|
||||
textItem.height + 2 * page.marginV() + page.lastPagePad())
|
||||
|
||||
Text {
|
||||
id: textItem
|
||||
@@ -175,6 +176,31 @@ Page {
|
||||
}
|
||||
}
|
||||
|
||||
// Margini verticali VISTI su ogni schermata: due fasce opache (colore di
|
||||
// sfondo) coprono il testo a cavallo dei bordi della viewport. Il testo
|
||||
// scorre tra le fasce con passo = viewport - 2*margine: ogni pagina
|
||||
// mostra esattamente un blocco di testo con margine sopra e sotto.
|
||||
Rectangle {
|
||||
id: topBand
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
height: page.marginV()
|
||||
visible: height > 0
|
||||
z: 5
|
||||
color: Theme.colorScheme === Theme.LightOnDark ? "#FF000000" : "#FFFFFFFF"
|
||||
}
|
||||
Rectangle {
|
||||
id: bottomBand
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
height: page.marginV()
|
||||
visible: height > 0
|
||||
z: 5
|
||||
color: Theme.colorScheme === Theme.LightOnDark ? "#FF000000" : "#FFFFFFFF"
|
||||
}
|
||||
|
||||
// Paginazione a tap: la meta' destra va avanti di una pagina, la
|
||||
// sinistra indietro. Le fasce superiore e inferiore sono lasciate ai
|
||||
// menu (PullDown in alto, PushUp in basso). NIENTE preventStealing:
|
||||
@@ -288,6 +314,18 @@ Page {
|
||||
return page.previewMarginT >= 0 ? page.previewMarginT : appSettings.readerMarginV
|
||||
}
|
||||
|
||||
// deficit dell'ultima pagina: porta max-scroll a un multiplo esatto del
|
||||
// passo, cosi' l'ultima pagina mostra il testo residuo SENZA sovrapporsi
|
||||
// alla penultima (niente righe ripetute) e con il margine sotto
|
||||
function lastPagePad() {
|
||||
var step = Math.max(1, innerFlick.height - 2 * page.marginV())
|
||||
var t = textItem.height
|
||||
if (t <= 0)
|
||||
return 0
|
||||
var r = t % step
|
||||
return r === 0 ? 0 : step - r
|
||||
}
|
||||
|
||||
function maybeSave(force) {
|
||||
if (bookId <= 0)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user