Lettore 0.4.6: font persistito nelle impostazioni
fontScale era una property QML di pagina, mai salvata: l'ingrandimento spariva alla chiusura del libro. Nuova readerFontScale in QSettings (default 1.0): il lettore parte dalla scala salvata e la persiste a ogni cambio. Test: persistenza su disco verificata (font + margini).
This commit is contained in:
@@ -31,8 +31,8 @@ Page {
|
||||
property int pageCount: 1
|
||||
property bool ready: false
|
||||
property string errorMessage: ""
|
||||
// reflow: scala il font (il testo si ri-avvolge), non lo zoom grafico
|
||||
property double fontScale: 1.0
|
||||
// reflow: scala il font (il testo si ri-avvolge), persistita in appSettings
|
||||
property double fontScale: appSettings.readerFontScale
|
||||
// restore in sospeso: frazione da applicare quando il testo si ri-impagina
|
||||
property bool pendingRestore: false
|
||||
property double restoreFrac: 0.0
|
||||
@@ -318,6 +318,8 @@ Page {
|
||||
function changeFontScale(delta) {
|
||||
// limite ampio e passo 0.1: tanti ingrandimenti prima del limite
|
||||
page.fontScale = Math.max(0.7, Math.min(3.5, page.fontScale + delta))
|
||||
// persisti la scala: riparte da qui alla prossima apertura
|
||||
appSettings.readerFontScale = page.fontScale
|
||||
// il binding aggiorna il font; ripristina la posizione per CARATTERI
|
||||
// (stabile col reflow, a differenza della frazione di scroll: con il
|
||||
// testo più alto la stessa frazione mostrerebbe un punto diverso)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name: harbour-calibreweb
|
||||
Summary: Client OPDS per Calibre Web
|
||||
Version: 0.4.5
|
||||
Version: 0.4.6
|
||||
Release: 1
|
||||
Group: Qt/Qt
|
||||
License: MIT
|
||||
@@ -24,6 +24,12 @@ reflow del testo, margini configurabili e posizione salvata
|
||||
in locale.
|
||||
|
||||
%changelog
|
||||
* Fri Aug 21 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.4.6-1
|
||||
- Fix impostazioni lettore non salvate: la scala del font era una proprieta'
|
||||
QML di pagina (mai persistita) -> l'ingrandimento spariva alla chiusura del
|
||||
libro. Aggiunta readerFontScale in QSettings (default 1.0): il lettore
|
||||
parte dalla scala salvata e la persiste a ogni cambio A-/A+. Margini gia'
|
||||
persistiti (verificati con test su disco)
|
||||
* Fri Aug 21 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.4.5-1
|
||||
- Fix ingrandimento testo: il restore dopo il reflow usava la frazione di
|
||||
scroll (instabile col cambio font) e il timer di 80ms poteva scattare prima
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
app->setOrganizationName(QStringLiteral("harbour"));
|
||||
app->setApplicationName(QStringLiteral("calibreweb"));
|
||||
// versione mostrata nelle impostazioni (tenere allineata allo spec)
|
||||
app->setApplicationVersion(QStringLiteral("0.4.5"));
|
||||
app->setApplicationVersion(QStringLiteral("0.4.6"));
|
||||
|
||||
Settings settings;
|
||||
|
||||
@@ -56,7 +56,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
|
||||
QQuickView *view = SailfishApp::createView();
|
||||
|
||||
qDebug() << "harbour-calibreweb v0.4.5 build" << __DATE__ << __TIME__;
|
||||
qDebug() << "harbour-calibreweb v0.4.6 build" << __DATE__ << __TIME__;
|
||||
|
||||
qmlRegisterType<EpubBook>("harbour.calibreweb", 1, 0, "EpubBook");
|
||||
|
||||
|
||||
@@ -197,6 +197,21 @@ void Settings::setReaderMarginV(int value)
|
||||
emit readerMarginVChanged();
|
||||
}
|
||||
|
||||
double Settings::readerFontScale() const
|
||||
{
|
||||
return m_settings.value(QStringLiteral("readerFontScale"), 1.0).toDouble();
|
||||
}
|
||||
|
||||
void Settings::setReaderFontScale(double value)
|
||||
{
|
||||
if (qFuzzyCompare(value, readerFontScale()))
|
||||
return;
|
||||
m_settings.setValue(QStringLiteral("readerFontScale"), value);
|
||||
m_settings.sync();
|
||||
openPermissions();
|
||||
emit readerFontScaleChanged();
|
||||
}
|
||||
|
||||
QString Settings::language() const
|
||||
{
|
||||
return m_settings.value(QStringLiteral("language"), QStringLiteral("system")).toString();
|
||||
|
||||
@@ -14,6 +14,8 @@ class Settings : public QObject
|
||||
Q_PROPERTY(bool ignoreSslErrors READ ignoreSslErrors WRITE setIgnoreSslErrors NOTIFY ignoreSslErrorsChanged)
|
||||
Q_PROPERTY(int readerMargin READ readerMargin WRITE setReaderMargin NOTIFY readerMarginChanged)
|
||||
Q_PROPERTY(int readerMarginV READ readerMarginV WRITE setReaderMarginV NOTIFY readerMarginVChanged)
|
||||
// scala del font del lettore (1.0 = dimensione base), persistita
|
||||
Q_PROPERTY(double readerFontScale READ readerFontScale WRITE setReaderFontScale NOTIFY readerFontScaleChanged)
|
||||
// lingua scelta dall'utente: "system" (predefinita, lingua UI Sailfish), "en", "it"
|
||||
Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
|
||||
Q_PROPERTY(QString downloadDir READ downloadDir CONSTANT)
|
||||
@@ -43,6 +45,10 @@ public:
|
||||
int readerMarginV() const;
|
||||
void setReaderMarginV(int value);
|
||||
|
||||
// scala del font del lettore (1.0 = base), persistita tra le sessioni
|
||||
double readerFontScale() const;
|
||||
void setReaderFontScale(double value);
|
||||
|
||||
// lingua dell'interfaccia: "system" (default) | "en" | "it"
|
||||
QString language() const;
|
||||
void setLanguage(const QString &value);
|
||||
@@ -69,6 +75,7 @@ signals:
|
||||
void ignoreSslErrorsChanged();
|
||||
void readerMarginChanged();
|
||||
void readerMarginVChanged();
|
||||
void readerFontScaleChanged();
|
||||
void languageChanged();
|
||||
void baseUrlChanged();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user