cover: preferito custom (comune) con coordinate salvate (preferredLat/Lon); riga eventi: colonna Alta/Bassa con fade (mai sovrapposta)
This commit is contained in:
@@ -41,6 +41,7 @@ CoverBackground {
|
||||
|
||||
function refresh() {
|
||||
var pref = appSettings.preferredPort
|
||||
console.log("[tide] cover refresh, pref:", pref)
|
||||
if (pref === "") {
|
||||
portLabel.text = qsTr("No port selected")
|
||||
nextLabel.text = ""
|
||||
@@ -50,6 +51,13 @@ CoverBackground {
|
||||
for (var i = 0; i < Tides.PORTS.length; i++) {
|
||||
if (Tides.PORTS[i][0] === pref) { p = Tides.PORTS[i]; break }
|
||||
}
|
||||
// preferito custom (comune): ricostruisci le costanti da lat/lon
|
||||
if (!p && appSettings.preferredLat >= 0) {
|
||||
var np = Tides.nearestPort(appSettings.preferredLat, appSettings.preferredLon)
|
||||
var cost = np.km < 222 ? np.port[4].slice()
|
||||
: Tides.synthConst(appSettings.preferredLat, appSettings.preferredLon)
|
||||
p = [pref, "", appSettings.preferredLat, appSettings.preferredLon, cost, "pref"]
|
||||
}
|
||||
if (!p) { portLabel.text = qsTr("No port selected"); nextLabel.text = ""; return }
|
||||
portLabel.text = p[0]
|
||||
var ex = Tides.extrema(p, new Date(), 1)
|
||||
|
||||
@@ -244,7 +244,8 @@ Page {
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: Theme.horizontalPageMargin
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: 110
|
||||
width: 130
|
||||
truncationMode: TruncationMode.Fade
|
||||
}
|
||||
Label {
|
||||
text: model.date + " " + model.time
|
||||
@@ -366,6 +367,14 @@ Page {
|
||||
visible: page.port && page.port[0] !== appSettings.preferredPort
|
||||
onClicked: {
|
||||
appSettings.preferredPort = page.port[0]
|
||||
// se è un comune (custom) salva le coordinate per la cover
|
||||
if (page.custom) {
|
||||
appSettings.preferredLat = page.port[2]
|
||||
appSettings.preferredLon = page.port[3]
|
||||
} else {
|
||||
appSettings.preferredLat = -1
|
||||
appSettings.preferredLon = -1
|
||||
}
|
||||
pageStack.replace(Qt.resolvedUrl("MainPage.qml"))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,12 +265,25 @@ Page {
|
||||
updateList()
|
||||
var pref = appSettings.preferredPort
|
||||
if (pref !== "") {
|
||||
var found = false
|
||||
for (var i = 0; i < Tides.PORTS.length; i++) {
|
||||
if (Tides.PORTS[i][0] === pref) {
|
||||
page.openDetail(Tides.PORTS[i], i, false)
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
// preferito custom (comune): ricostruisci e apri il dettaglio
|
||||
if (!found && appSettings.preferredLat >= 0) {
|
||||
var lat = appSettings.preferredLat
|
||||
var lon = appSettings.preferredLon
|
||||
var np = Tides.nearestPort(lat, lon)
|
||||
var cost = np.km < 222 ? np.port[4].slice()
|
||||
: Tides.synthConst(lat, lon)
|
||||
page.openDetail([pref, qsTr("Italy"), lat, lon, cost,
|
||||
np.km < 222 ? "near:" + np.port[0] : "synth"],
|
||||
-1, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,32 @@ void Settings::setPreferredPort(const QString &value)
|
||||
emit preferredPortChanged();
|
||||
}
|
||||
|
||||
double Settings::preferredLat() const
|
||||
{
|
||||
return m_settings.value(QStringLiteral("preferredLat"), -1.0).toDouble();
|
||||
}
|
||||
|
||||
void Settings::setPreferredLat(double value)
|
||||
{
|
||||
if (qFuzzyCompare(value, preferredLat()))
|
||||
return;
|
||||
m_settings.setValue(QStringLiteral("preferredLat"), value);
|
||||
emit preferredLatChanged();
|
||||
}
|
||||
|
||||
double Settings::preferredLon() const
|
||||
{
|
||||
return m_settings.value(QStringLiteral("preferredLon"), -1.0).toDouble();
|
||||
}
|
||||
|
||||
void Settings::setPreferredLon(double value)
|
||||
{
|
||||
if (qFuzzyCompare(value, preferredLon()))
|
||||
return;
|
||||
m_settings.setValue(QStringLiteral("preferredLon"), value);
|
||||
emit preferredLonChanged();
|
||||
}
|
||||
|
||||
QString Settings::unit() const
|
||||
{
|
||||
return m_settings.value(QStringLiteral("unit"), QStringLiteral("m")).toString();
|
||||
|
||||
+12
-1
@@ -4,9 +4,10 @@
|
||||
#include <QObject>
|
||||
#include <QSettings>
|
||||
|
||||
// Preferenze dell'app, persistite in QSettings ("harbour", "maree"):
|
||||
// Preferenze dell'app, persistite in QSettings ("harbour", "tide"):
|
||||
// language "system" (segue la lingua UI Sailfish) | "en" | "it"
|
||||
// preferredPort nome del porto preferito (vuoto = nessuno)
|
||||
// preferredLat/Lon coordinate del preferito se è un comune (custom)
|
||||
// unit "m" | "ft"
|
||||
// days 1 | 2 | 3 (intervallo del grafico)
|
||||
class Settings : public QObject
|
||||
@@ -15,6 +16,8 @@ class Settings : public QObject
|
||||
|
||||
Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
|
||||
Q_PROPERTY(QString preferredPort READ preferredPort WRITE setPreferredPort NOTIFY preferredPortChanged)
|
||||
Q_PROPERTY(double preferredLat READ preferredLat WRITE setPreferredLat NOTIFY preferredLatChanged)
|
||||
Q_PROPERTY(double preferredLon READ preferredLon WRITE setPreferredLon NOTIFY preferredLonChanged)
|
||||
Q_PROPERTY(QString unit READ unit WRITE setUnit NOTIFY unitChanged)
|
||||
Q_PROPERTY(int days READ days WRITE setDays NOTIFY daysChanged)
|
||||
|
||||
@@ -27,6 +30,12 @@ public:
|
||||
QString preferredPort() const;
|
||||
void setPreferredPort(const QString &value);
|
||||
|
||||
double preferredLat() const;
|
||||
void setPreferredLat(double value);
|
||||
|
||||
double preferredLon() const;
|
||||
void setPreferredLon(double value);
|
||||
|
||||
QString unit() const;
|
||||
void setUnit(const QString &value);
|
||||
|
||||
@@ -36,6 +45,8 @@ public:
|
||||
signals:
|
||||
void languageChanged();
|
||||
void preferredPortChanged();
|
||||
void preferredLatChanged();
|
||||
void preferredLonChanged();
|
||||
void unitChanged();
|
||||
void daysChanged();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user