Margini alto/basso (Settings.readerMarginV) + applicazione a caldo senza reload: i margini si sovrascrivono via runJavaScript (setProperty !important) sul documento aperto, anteprima live nel dialogo e al ritorno dalle impostazioni

This commit is contained in:
2026-08-13 09:11:38 +02:00
parent fad647cf9e
commit 2652f413a5
7 changed files with 122 additions and 25 deletions
+40 -10
View File
@@ -1,13 +1,22 @@
import QtQuick 2.0
import Sailfish.Silica 1.0
// Regola i margini laterali del testo nel lettore senza uscire dal libro.
// Il valore viene applicato all'accettazione; il capitolo aperto si ricarica
// con il nuovo margine (il chiamante si occupa del reload).
// Regola i margini del testo nel lettore senza uscire dal libro.
// Anteprima LIVE: ogni variazione degli slider viene inoltrata al lettore via
// previewHandler (runJavaScript sul documento aperto), quindi il testo si
// adatta subito. I valori vengono persistiti solo all'accettazione.
Dialog {
id: dialog
property int marginValue: 24
property int marginLr: 24
property int marginTb: 0
// funzione chiamata a ogni variazione: previewHandler(marginLr, marginTb)
property var previewHandler: null
function preview() {
if (dialog.previewHandler)
dialog.previewHandler(dialog.marginLr, dialog.marginTb)
}
Column {
width: parent.width
@@ -18,26 +27,47 @@ Dialog {
}
Slider {
id: marginSlider
id: lrSlider
width: parent.width
label: "Margine laterale"
label: "Margini laterali"
minimumValue: 0
maximumValue: 80
stepSize: 4
value: dialog.marginValue
value: dialog.marginLr
valueText: value + " px"
onValueChanged: dialog.marginValue = value
onValueChanged: {
dialog.marginLr = value
dialog.preview()
}
}
Slider {
id: tbSlider
width: parent.width
label: "Alto e basso"
minimumValue: 0
maximumValue: 80
stepSize: 4
value: dialog.marginTb
valueText: value + " px"
onValueChanged: {
dialog.marginTb = value
dialog.preview()
}
}
Label {
x: Theme.horizontalPageMargin
width: parent.width - 2 * Theme.horizontalPageMargin
text: "Il margine viene applicato al capitolo corrente e salvato per tutti i libri."
text: "Le modifiche si applicano subito al testo. Conferma per salvarle per tutti i libri."
color: Theme.secondaryColor
wrapMode: Text.Wrap
font.pixelSize: Theme.fontSizeSmall
}
}
onAccepted: appSettings.readerMargin = dialog.marginValue
onAccepted: {
appSettings.readerMargin = dialog.marginLr
appSettings.readerMarginV = dialog.marginTb
}
}