kaneda
7bb4aa845a
Lettore 0.3.1: cambio capitolo affidabile con scrollBy
...
Il confronto con max calcolato (scrollHeight-innerHeight) falliva sul WebView
di Sailfish quando max è sovrastimato: scrollY non lo raggiungeva mai, ok
restava true e atEnd veniva ignorato -> si restava dentro il capitolo.
Ora: scrollBy(0,vh) + verifica 'lo scroll si è mosso'; se bloccato, unlock
CSS e riprova; se ancora fermo -> capitolo successivo (o precedente).
2026-08-21 08:16:25 +02:00
kaneda
fa3f19df75
Rimuovi harbour-calibreweb.yaml: spec a mano + yaml = prompt 'not generated by spectacle' e build non interattiva fallisce (pattern quill: solo spec)
2026-08-21 08:06:25 +02:00
kaneda
d418660a2c
Lettore 0.3.0: bookmark per posizione (carattere) e paginazione corretta
...
- Bookmark cw:v2:<offset assoluto caratteri> invece di capitolo+frazione;
migrazione automatica delle chiavi v1 (parseBookmarkKey)
- Lunghezze testo per capitolo in C++ (text node del DOM, entità decodificate,
body-only) per mappare offset assoluto -> capitolo
- Paginazione: stile iniettato height:auto/overflow:visible + unlock JS dei
contenitori hidden — il CSS di molti EPUB bloccava lo scroll e ogni tap
saltava al capitolo successivo
- prevPage dall'inizio capitolo -> ultima pagina del capitolo precedente
- Cambio font mantiene la posizione (restore per carattere)
- Label menu: pagina corrente/totale del capitolo; max su documentElement+body
- Test: harness C++ (Qt) e test JS con DOM mock
2026-08-21 07:57:57 +02:00
kaneda
1589762aac
Add English README and LICENSE
2026-08-20 22:10:44 +02:00
kaneda
d2892003d3
Sandbox SailJail: profilo X-Sailjail nel desktop file (Internet;Downloads, org harbour/app calibreweb) + config in AppConfigLocation (~/.config/harbour/calibreweb/, zona persistente della sandbox) + migrazione dal vecchio file. Senza profilo la sandbox nascondeva ~/.config/harbour e le impostazioni dal launcher sparivano
2026-08-19 17:31:36 +02:00
kaneda
4e533ecfc9
Config auto-adattiva: home grafica Jolla Phone 2026 = /home/rootitanium (nemo non esiste su Sailfish 5.1). Candidate rootitanium->nemo->utente corrente, file esistente prima, permessi aperti sulla home scelta
2026-08-19 16:46:41 +02:00
kaneda
c5822778bd
Icona in stile Sailfish OS: gradiente azzurro-blu con angoli arrotondati, libro aperto bianco con ombra e righe di testo tenui; dimensioni 86/108/128/172 installate
2026-08-19 16:41:54 +02:00
kaneda
91c42a1d43
Fix crash Close book (pop(null) differito con Timer); config condivisa nemo/defaultuser con permessi aperti a ogni scrittura
2026-08-19 16:35:55 +02:00
kaneda
8b7af5c5e0
Catalogo .qm nel data dir dell'app (/usr/share/harbour-calibreweb/translations) e caricamento esplicito in main.cpp con risoluzione lingua system via QLocale — il validatore RPM rifiuta /usr/share/translations
2026-08-19 16:30:53 +02:00
kaneda
d8584f2de4
Selettore lingua (System/EN/IT) nelle impostazioni con QTranslator in main.cpp (pattern quill); fix 'Close book' con pop fino alla prima pagina
2026-08-19 16:27:36 +02:00
kaneda
e3ba9b5e87
Localizzazione EN di default: qsTr() su tutte le stringhe QML, catalogo italiano translations/harbour-calibreweb_it.ts, lrelease+install .qm nello spec (pattern quill), .pro aggiornato
2026-08-19 16:17:30 +02:00
kaneda
9758f2b528
ReaderPage: voce 'Chiudi libro' nel PullDownMenu (salva il segno e torna alla pagina principale)
2026-08-19 16:10:50 +02:00
kaneda
d7b522f483
Lettore a pagine: niente scroll libero, tap a destra = pagina dopo, tap a sinistra = pagina prima (fasce superiore/inferiore ai menu PullDown/PushUp). Alla fine/inizio capitolo il tap passa al capitolo successivo/precedente
2026-08-19 16:02:54 +02:00
kaneda
585b8ba104
Desktop file: X-Nemo-Application-Type=silica-qt5 (fix validazione RPM Harbour)
2026-08-19 15:56:20 +02:00
kaneda
2212538fe8
Fix config persa al riavvio: file di configurazione fisso condiviso tra nemo e defaultuser (/home/nemo/.config/harbour/calibreweb.conf) + migrazione automatica dei valori gia' salvati (server, credenziali, margini, segnalibri)
2026-08-19 15:38:24 +02:00
kaneda
a2a3608db5
Bump a 0.2.0: spec con changelog del lettore EPUB (reflow, margini, segno locale), description aggiornata
2026-08-19 15:26:55 +02:00
kaneda
c216b20abb
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
2026-08-13 09:34:39 +02:00
kaneda
9bdec3eb2d
Sync avanzamento server completa: login di sessione calibre-web (form + csrf_token + cookie) per le route web, fetchBookmark (GET /read/<id>/<format> con estrazione bookmark: "chiave"), ripristino all'apertura del libro con posizione server dominante, POST a ogni pagina girata già attivo; fallimento login gestito con cooldown 60s e fallback locale
2026-08-13 09:28:34 +02:00
kaneda
2652f413a5
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
2026-08-13 09:11:38 +02:00
kaneda
fad647cf9e
Margini raggiungibili dal lettore: voce 'Margini del testo' (dialogo Slider) e 'Impostazioni' nel PullDownMenu del ReaderPage; Slider della SettingsPage a larghezza piena
2026-08-13 08:52:55 +02:00
kaneda
da4cffc761
settings.cpp: #include <QDebug> mancante (fix compilazione)
2026-08-12 20:31:05 +02:00
kaneda
55a94ea4ca
Settings: log diagnostico all'avvio (path file config + valori letti)
2026-08-12 20:30:47 +02:00
kaneda
d230d543dd
parseBookmarkKey restituisce QVariantMap (i puntatori int* non sono marshallabili da QML — il segno non si ripristinava mai)
2026-08-12 17:26:15 +02:00
kaneda
cbe4153881
ReaderPage: ricarica il capitolo al ritorno sulla pagina (Active) — margini e font cambiati nelle impostazioni si applicano subito
2026-08-12 17:15:46 +02:00
kaneda
ca8d634dab
settings.h: dichiarato il segnale readerMarginChanged mancante (fix build)
2026-08-12 17:04:11 +02:00
kaneda
8eb4244eee
Lettore: margini configurabili (Settings.readerMargin + Slider nelle impostazioni, iniettati nello stile del capitolo) + controlli in PushUpMenu (un solo trascinamento in alto)
2026-08-12 17:00:27 +02:00
kaneda
4fbc6185a7
Reflow deterministico: stile iniettato nell'HTML del capitolo (chapterHtml+loadHtml), niente JS post-load; runJavaScript solo per lo scroll
2026-08-12 16:16:21 +02:00
kaneda
52d09911f2
Persistenza: sync() esplicito dopo ogni scrittura QSettings (fix config cancellata al crash di chiusura) + reflow robusto con stile !important su html/body e contenitori
2026-08-12 16:04:41 +02:00
kaneda
35be6f14be
ReaderPage: Button non ha font in Silica (rimosso font.pixelSize da A-/A+)
2026-08-12 15:59:03 +02:00
kaneda
4930f76e03
ReaderPage: reflow con A-/A+ (font-size via JS con !important, posizione conservata in frazione)
2026-08-12 15:49:19 +02:00
kaneda
a5f469a73f
ReaderPage: dichiarata property ready (era usata ma mai dichiarata = spinner infinito) + PullDownMenu dentro la vista Silica (fix segfault)
2026-08-12 15:36:29 +02:00
kaneda
a159e6b252
ReaderPage: watchdog 15s (niente spinner infinito) + apertura ritardata per evitare race WebView
2026-08-12 15:33:01 +02:00
kaneda
129ff44b06
epub.cpp: rimossa readTextFile inutilizzata (warning -Wall)
2026-08-12 15:23:14 +02:00
kaneda
325d7be34f
Icone in struttura standard Sailfish (icons/86x86 e icons/108x108 con nome esatto) + yaml ripristinato in rpm/
2026-08-12 14:54:44 +02:00
kaneda
a81702932f
Rimosso harbour-calibreweb.yaml: lo spec scritto a mano è la fonte unica (la generazione spectacle produceva %files incompleto)
2026-08-12 14:47:43 +02:00
kaneda
6f0ca6ed07
Lettore EPUB nativo: ReaderPage (WebView+capitoli+progresso), segno locale in QSettings, sync POST /ajax/bookmark con fallback CSRF, pulsante Leggi nel dettaglio
2026-08-12 14:21:45 +02:00
kaneda
ae15c39421
Parser EPUB in C++: ZIP minimale (STORE/DEFLATE via zlib), container/OPF/spine, TOC EPUB2+3, chiavi segno — testato su EPUB di esempio
2026-08-12 14:18:40 +02:00
kaneda
9d8bd03990
Copertine: validazione contenuto prima del caching (niente più HTML in cache), id fisso per il dettaglio, handler con sintassi moderna
2026-08-12 13:42:44 +02:00
kaneda
f43521cc67
BookDetailPage: Notices non istanziabile in questa Silica, sostituito con banner Label+Timer
2026-08-12 12:24:24 +02:00
kaneda
ca19efd82a
BookDetailPage: riscritte resolveUrl e sanitizeFileName senza regex (backslash doppi rompevano il caricamento pagina)
2026-08-12 12:20:01 +02:00
kaneda
62452b470e
Risoluzione URL RFC 3986: fix sottopath raddoppiato (/calibre/calibre) + messaggio chiaro per risposte HTML
2026-08-12 12:13:56 +02:00
kaneda
dea79aff49
getFeed risolve gli URL relativi (fix 'Protocol "" is unknown' sui link di categoria)
2026-08-12 12:05:03 +02:00
kaneda
dd5d35c439
baseUrl come Q_PROPERTY (accesso proprietà, niente Q_INVOKABLE) + log data di build in avvio
2026-08-12 11:19:20 +02:00
kaneda
4afede7b92
SettingsPage: TextField con anchor invece di width binding (elimina il binding loop Silica)
2026-08-12 11:08:25 +02:00
kaneda
0c6c28aa4e
baseUrl esposto a QML come Q_INVOKABLE: fix TypeError su MainPage/SearchPage/BookDetailPage
2026-08-12 11:05:06 +02:00
kaneda
5f97cb45bf
Prova connessione: timeout 30s, busy indicator, normalizzazione https://, log qDebug per debug su device
2026-08-12 10:58:34 +02:00
kaneda
40fa34a0d2
Fix API Silica: TextSwitch al posto di Switch (label), Notices al posto di Toast (non esiste in Silica). Tutti i componenti verificati contro la doc ufficiale
2026-08-12 10:53:06 +02:00
kaneda
711e70734d
SettingsPage: Switch non ha description in Silica (era la causa di 'Impossibile caricare la pagina'); hint spostato in Label
2026-08-12 10:47:40 +02:00
kaneda
0598fd4409
CoverPage: path icona corretto (hicolor, non /usr/share/harbour-calibreweb/icons)
2026-08-12 10:24:12 +02:00
kaneda
a80f903c20
Icone installate via qmake INSTALLS: fix build RPM quando il tar sorgente non include icons/
2026-08-12 08:27:31 +02:00