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() {
|
function refresh() {
|
||||||
var pref = appSettings.preferredPort
|
var pref = appSettings.preferredPort
|
||||||
|
console.log("[tide] cover refresh, pref:", pref)
|
||||||
if (pref === "") {
|
if (pref === "") {
|
||||||
portLabel.text = qsTr("No port selected")
|
portLabel.text = qsTr("No port selected")
|
||||||
nextLabel.text = ""
|
nextLabel.text = ""
|
||||||
@@ -50,6 +51,13 @@ CoverBackground {
|
|||||||
for (var i = 0; i < Tides.PORTS.length; i++) {
|
for (var i = 0; i < Tides.PORTS.length; i++) {
|
||||||
if (Tides.PORTS[i][0] === pref) { p = Tides.PORTS[i]; break }
|
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 }
|
if (!p) { portLabel.text = qsTr("No port selected"); nextLabel.text = ""; return }
|
||||||
portLabel.text = p[0]
|
portLabel.text = p[0]
|
||||||
var ex = Tides.extrema(p, new Date(), 1)
|
var ex = Tides.extrema(p, new Date(), 1)
|
||||||
|
|||||||
@@ -244,7 +244,8 @@ Page {
|
|||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: Theme.horizontalPageMargin
|
anchors.leftMargin: Theme.horizontalPageMargin
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
width: 110
|
width: 130
|
||||||
|
truncationMode: TruncationMode.Fade
|
||||||
}
|
}
|
||||||
Label {
|
Label {
|
||||||
text: model.date + " " + model.time
|
text: model.date + " " + model.time
|
||||||
@@ -366,6 +367,14 @@ Page {
|
|||||||
visible: page.port && page.port[0] !== appSettings.preferredPort
|
visible: page.port && page.port[0] !== appSettings.preferredPort
|
||||||
onClicked: {
|
onClicked: {
|
||||||
appSettings.preferredPort = page.port[0]
|
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"))
|
pageStack.replace(Qt.resolvedUrl("MainPage.qml"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -265,12 +265,25 @@ Page {
|
|||||||
updateList()
|
updateList()
|
||||||
var pref = appSettings.preferredPort
|
var pref = appSettings.preferredPort
|
||||||
if (pref !== "") {
|
if (pref !== "") {
|
||||||
|
var found = false
|
||||||
for (var i = 0; i < Tides.PORTS.length; i++) {
|
for (var i = 0; i < Tides.PORTS.length; i++) {
|
||||||
if (Tides.PORTS[i][0] === pref) {
|
if (Tides.PORTS[i][0] === pref) {
|
||||||
page.openDetail(Tides.PORTS[i], i, false)
|
page.openDetail(Tides.PORTS[i], i, false)
|
||||||
|
found = true
|
||||||
break
|
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();
|
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
|
QString Settings::unit() const
|
||||||
{
|
{
|
||||||
return m_settings.value(QStringLiteral("unit"), QStringLiteral("m")).toString();
|
return m_settings.value(QStringLiteral("unit"), QStringLiteral("m")).toString();
|
||||||
|
|||||||
+12
-1
@@ -4,9 +4,10 @@
|
|||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QSettings>
|
#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"
|
// language "system" (segue la lingua UI Sailfish) | "en" | "it"
|
||||||
// preferredPort nome del porto preferito (vuoto = nessuno)
|
// preferredPort nome del porto preferito (vuoto = nessuno)
|
||||||
|
// preferredLat/Lon coordinate del preferito se è un comune (custom)
|
||||||
// unit "m" | "ft"
|
// unit "m" | "ft"
|
||||||
// days 1 | 2 | 3 (intervallo del grafico)
|
// days 1 | 2 | 3 (intervallo del grafico)
|
||||||
class Settings : public QObject
|
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 language READ language WRITE setLanguage NOTIFY languageChanged)
|
||||||
Q_PROPERTY(QString preferredPort READ preferredPort WRITE setPreferredPort NOTIFY preferredPortChanged)
|
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(QString unit READ unit WRITE setUnit NOTIFY unitChanged)
|
||||||
Q_PROPERTY(int days READ days WRITE setDays NOTIFY daysChanged)
|
Q_PROPERTY(int days READ days WRITE setDays NOTIFY daysChanged)
|
||||||
|
|
||||||
@@ -27,6 +30,12 @@ public:
|
|||||||
QString preferredPort() const;
|
QString preferredPort() const;
|
||||||
void setPreferredPort(const QString &value);
|
void setPreferredPort(const QString &value);
|
||||||
|
|
||||||
|
double preferredLat() const;
|
||||||
|
void setPreferredLat(double value);
|
||||||
|
|
||||||
|
double preferredLon() const;
|
||||||
|
void setPreferredLon(double value);
|
||||||
|
|
||||||
QString unit() const;
|
QString unit() const;
|
||||||
void setUnit(const QString &value);
|
void setUnit(const QString &value);
|
||||||
|
|
||||||
@@ -36,6 +45,8 @@ public:
|
|||||||
signals:
|
signals:
|
||||||
void languageChanged();
|
void languageChanged();
|
||||||
void preferredPortChanged();
|
void preferredPortChanged();
|
||||||
|
void preferredLatChanged();
|
||||||
|
void preferredLonChanged();
|
||||||
void unitChanged();
|
void unitChanged();
|
||||||
void daysChanged();
|
void daysChanged();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user