schermate di configurazione complete: razze disponibili, mio pollaio, registro galline, clienti, backup/ripristino nel formato dell'app Android, lingua a runtime, introduzione e informazioni

- datastore: export/import JSON con le chiavi camelCase dell'app Android (breedSettings/reservations/customers), scorte e ultimo aggiornamento preservati al ripristino
- settings: flag 'introduzione vista'
- desktop: permesso Documents (dove finisce il backup)
- nuovi controlli: tools/check_qml.py (chiavi di traduzione, simboli JS, pagine, componenti) e qmllint nella suite
- versione 0.2.0
This commit is contained in:
2026-10-09 09:21:47 +02:00
parent a73d94a74e
commit 248e0db899
25 changed files with 2060 additions and 74 deletions
+65
View File
@@ -0,0 +1,65 @@
import QtQuick 2.2
import Sailfish.Silica 1.0
import "../js/i18n.js" as I18N
// Informazioni: descrizione dell'app e versione (dall'applicationVersion
// impostata nel main.cpp, la stessa del pacchetto RPM).
Page {
id: page
allowedOrientations: Orientation.All
property string lang: "en"
function tr(key, arg) { return I18N.t(key, arg, page.lang) }
Component.onCompleted: page.lang = I18N.langFor(appSettings.language, Qt.locale().name)
SilicaFlickable {
anchors.fill: parent
contentHeight: about.height
Column {
id: about
width: parent.width
spacing: Theme.paddingLarge
PageHeader { title: page.tr("about") }
Image {
anchors.horizontalCenter: parent.horizontalCenter
width: Theme.itemSizeLarge * 2
height: Theme.itemSizeLarge * 2
source: "file:///usr/share/icons/hicolor/172x172/apps/harbour-henflow.png"
fillMode: Image.PreserveAspectFit
asynchronous: true
}
Label {
anchors.horizontalCenter: parent.horizontalCenter
text: "Henflow"
font.pixelSize: Theme.fontSizeLarge
color: Theme.highlightColor
}
Label {
x: Theme.horizontalPageMargin
width: parent.width - 2 * Theme.horizontalPageMargin
text: page.tr("about_desc")
color: Theme.primaryColor
wrapMode: Text.Wrap
horizontalAlignment: Text.AlignHCenter
}
Label {
anchors.horizontalCenter: parent.horizontalCenter
text: "v " + appVersion
color: Theme.secondaryColor
font.pixelSize: Theme.fontSizeSmall
}
Item { width: parent.width; height: Theme.paddingLarge }
}
VerticalScrollDecorator {}
}
}