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 int pageCount: 1
|
||||||
property bool ready: false
|
property bool ready: false
|
||||||
property string errorMessage: ""
|
property string errorMessage: ""
|
||||||
// reflow: scala il font (il testo si ri-avvolge), non lo zoom grafico
|
// reflow: scala il font (il testo si ri-avvolge), persistita in appSettings
|
||||||
property double fontScale: 1.0
|
property double fontScale: appSettings.readerFontScale
|
||||||
// restore in sospeso: frazione da applicare quando il testo si ri-impagina
|
// restore in sospeso: frazione da applicare quando il testo si ri-impagina
|
||||||
property bool pendingRestore: false
|
property bool pendingRestore: false
|
||||||
property double restoreFrac: 0.0
|
property double restoreFrac: 0.0
|
||||||
@@ -318,6 +318,8 @@ Page {
|
|||||||
function changeFontScale(delta) {
|
function changeFontScale(delta) {
|
||||||
// limite ampio e passo 0.1: tanti ingrandimenti prima del limite
|
// limite ampio e passo 0.1: tanti ingrandimenti prima del limite
|
||||||
page.fontScale = Math.max(0.7, Math.min(3.5, page.fontScale + delta))
|
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
|
// il binding aggiorna il font; ripristina la posizione per CARATTERI
|
||||||
// (stabile col reflow, a differenza della frazione di scroll: con il
|
// (stabile col reflow, a differenza della frazione di scroll: con il
|
||||||
// testo più alto la stessa frazione mostrerebbe un punto diverso)
|
// testo più alto la stessa frazione mostrerebbe un punto diverso)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Name: harbour-calibreweb
|
Name: harbour-calibreweb
|
||||||
Summary: Client OPDS per Calibre Web
|
Summary: Client OPDS per Calibre Web
|
||||||
Version: 0.4.5
|
Version: 0.4.6
|
||||||
Release: 1
|
Release: 1
|
||||||
Group: Qt/Qt
|
Group: Qt/Qt
|
||||||
License: MIT
|
License: MIT
|
||||||
@@ -24,6 +24,12 @@ reflow del testo, margini configurabili e posizione salvata
|
|||||||
in locale.
|
in locale.
|
||||||
|
|
||||||
%changelog
|
%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
|
* 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
|
- 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
|
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->setOrganizationName(QStringLiteral("harbour"));
|
||||||
app->setApplicationName(QStringLiteral("calibreweb"));
|
app->setApplicationName(QStringLiteral("calibreweb"));
|
||||||
// versione mostrata nelle impostazioni (tenere allineata allo spec)
|
// versione mostrata nelle impostazioni (tenere allineata allo spec)
|
||||||
app->setApplicationVersion(QStringLiteral("0.4.5"));
|
app->setApplicationVersion(QStringLiteral("0.4.6"));
|
||||||
|
|
||||||
Settings settings;
|
Settings settings;
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
|||||||
|
|
||||||
QQuickView *view = SailfishApp::createView();
|
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");
|
qmlRegisterType<EpubBook>("harbour.calibreweb", 1, 0, "EpubBook");
|
||||||
|
|
||||||
|
|||||||
@@ -197,6 +197,21 @@ void Settings::setReaderMarginV(int value)
|
|||||||
emit readerMarginVChanged();
|
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
|
QString Settings::language() const
|
||||||
{
|
{
|
||||||
return m_settings.value(QStringLiteral("language"), QStringLiteral("system")).toString();
|
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(bool ignoreSslErrors READ ignoreSslErrors WRITE setIgnoreSslErrors NOTIFY ignoreSslErrorsChanged)
|
||||||
Q_PROPERTY(int readerMargin READ readerMargin WRITE setReaderMargin NOTIFY readerMarginChanged)
|
Q_PROPERTY(int readerMargin READ readerMargin WRITE setReaderMargin NOTIFY readerMarginChanged)
|
||||||
Q_PROPERTY(int readerMarginV READ readerMarginV WRITE setReaderMarginV NOTIFY readerMarginVChanged)
|
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"
|
// lingua scelta dall'utente: "system" (predefinita, lingua UI Sailfish), "en", "it"
|
||||||
Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
|
Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
|
||||||
Q_PROPERTY(QString downloadDir READ downloadDir CONSTANT)
|
Q_PROPERTY(QString downloadDir READ downloadDir CONSTANT)
|
||||||
@@ -43,6 +45,10 @@ public:
|
|||||||
int readerMarginV() const;
|
int readerMarginV() const;
|
||||||
void setReaderMarginV(int value);
|
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"
|
// lingua dell'interfaccia: "system" (default) | "en" | "it"
|
||||||
QString language() const;
|
QString language() const;
|
||||||
void setLanguage(const QString &value);
|
void setLanguage(const QString &value);
|
||||||
@@ -69,6 +75,7 @@ signals:
|
|||||||
void ignoreSslErrorsChanged();
|
void ignoreSslErrorsChanged();
|
||||||
void readerMarginChanged();
|
void readerMarginChanged();
|
||||||
void readerMarginVChanged();
|
void readerMarginVChanged();
|
||||||
|
void readerFontScaleChanged();
|
||||||
void languageChanged();
|
void languageChanged();
|
||||||
void baseUrlChanged();
|
void baseUrlChanged();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user