Lettore 0.4.2: il PushUpMenu resta aperto (snap con guardia menu.active)

Lo snap usava menu.open (vero solo a menu aperto): durante l'apertura il
pulley sposta il contenuto, lo snap scattava nel mezzo e il menu si
annullava. Ora guardia su menu.active (vero anche durante il drag) e
onClosed: snapTimer.restart() per riallineare il contenuto dopo la chiusura.
This commit is contained in:
2026-08-21 11:55:20 +02:00
parent 47f949c3fb
commit 6a840bc551
3 changed files with 14 additions and 5 deletions
+5 -2
View File
@@ -55,6 +55,7 @@ Page {
// il PullDownMenu va DENTRO una vista Silica, non a livello di Page // il PullDownMenu va DENTRO una vista Silica, non a livello di Page
PullDownMenu { PullDownMenu {
id: pullMenu id: pullMenu
onClosed: snapTimer.restart()
MenuItem { MenuItem {
text: qsTr("Table of contents") text: qsTr("Table of contents")
onClicked: showChapterList() onClicked: showChapterList()
@@ -92,6 +93,7 @@ Page {
// controlli del lettore: un solo trascinamento in alto li apre // controlli del lettore: un solo trascinamento in alto li apre
PushUpMenu { PushUpMenu {
id: readerMenu id: readerMenu
onClosed: snapTimer.restart()
Label { Label {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
@@ -236,8 +238,9 @@ Page {
function snapToPage() { function snapToPage() {
if (!page.ready || page.pendingRestore) if (!page.ready || page.pendingRestore)
return return
// menu aperti: il contenuto è spostato apposta, niente snap // menu ATTIVI (aperti O in trascinamento): il pulley sposta il contenuto
if (pullMenu.open || readerMenu.open) // di proposito, niente snap — altrimenti il menu si richiude da solo
if (pullMenu.active || readerMenu.active)
return return
var vh = Math.max(1, readerFlick.height) var vh = Math.max(1, readerFlick.height)
var max = Math.max(0, readerFlick.contentHeight - vh) var max = Math.max(0, readerFlick.contentHeight - vh)
+7 -1
View File
@@ -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.1 Version: 0.4.2
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.2-1
- Fix PushUpMenu che si richiudeva da solo: lo snap usava la guardia
menu.open (vera solo a menu aperto), ma durante l'apertura il pulley sposta
il contenuto e lo snap scattava nel mezzo -> il menu si annullava. Ora la
guardia e' menu.active (vera anche durante il trascinamento); dopo la
chiusura del menu (onClosed) lo snap riallinea il contenuto se serve
* Fri Aug 21 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.4.1-1 * Fri Aug 21 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.4.1-1
- Fix scroll libero e pulley menu: rimosso preventStealing dalla MouseArea - Fix scroll libero e pulley menu: rimosso preventStealing dalla MouseArea
(ruba il gesto al PushUpMenu appena il dito entra nella zona centrale). (ruba il gesto al PushUpMenu appena il dito entra nella zona centrale).
+2 -2
View File
@@ -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.1")); app->setApplicationVersion(QStringLiteral("0.4.2"));
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.1 build" << __DATE__ << __TIME__; qDebug() << "harbour-calibreweb v0.4.2 build" << __DATE__ << __TIME__;
qmlRegisterType<EpubBook>("harbour.calibreweb", 1, 0, "EpubBook"); qmlRegisterType<EpubBook>("harbour.calibreweb", 1, 0, "EpubBook");