fix preferenze non persistenti (pattern calibreweb): QSettings su AppConfigLocation esplicito + diagnostica avvio; org/app solo nel main

This commit is contained in:
2026-09-02 18:43:16 +02:00
parent c6bc664ecc
commit c9e2be5b4e
3 changed files with 30 additions and 8 deletions
+5 -7
View File
@@ -9,12 +9,10 @@ Type=Application
X-Nemo-Application-Type=silica-qt5
Categories=Utility;
# Profilo SailJail esplicito: senza X-Sailjail la sandbox di Sailfish 5.1 usa
# il profilo default, che nasconde ~/.config/harbour (config non persistente).
# Con OrganizationName/ApplicationName la sandbox rende persistente
# ~/.config/harbour/tide/ (AppConfigLocation). Internet = geocoding
# OpenStreetMap per la ricerca libera delle città.
# Profilo SailJail esplicito: senza X-Sailjail la sandbox di Sailfish 5.1 usa il
# profilo default, che nasconde ~/.config/harbour (config non persistente).
# Org/App sono impostati a runtime dal main.cpp (setOrganizationName/
# setApplicationName): AppConfigLocation = ~/.config/harbour/tide (persistente).
# Internet = geocoding OpenStreetMap/Photon e stato del mare Open-Meteo.
[X-Sailjail]
Permissions=Internet
OrganizationName=harbour
ApplicationName=tide
+21 -1
View File
@@ -1,9 +1,29 @@
#include "settings.h"
#include <QStandardPaths>
#include <QDir>
QString Settings::configPath()
{
// Path canonico per la sandbox SailJail (Sailfish 5.x): con org/app
// impostati (harbour/tide, vedi main.cpp) AppConfigLocation =
// ~/.config/harbour/tide, l'unica zona config che la sandbox rende
// PERSISTENTE tra gli avvii. Senza path esplicito QSettings scrive in
// una zona nascosta e le preferenze vanno perse.
const QString dir = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
QDir().mkpath(dir);
return dir + QStringLiteral("/tide.conf");
}
Settings::Settings(QObject *parent)
: QObject(parent)
, m_settings(QStringLiteral("harbour"), QStringLiteral("tide"))
, m_settings(configPath(), QSettings::IniFormat)
{
// diagnostica: path reale del file di configurazione e valori letti all'avvio
qDebug() << "Settings file:" << m_settings.fileName();
if (m_settings.status() != QSettings::NoError)
qDebug() << "Settings WARNING: file di configurazione non accessibile";
qDebug() << "Settings read: language=[" << language() << "] preferredPort=["
<< preferredPort() << "] unit=[" << unit() << "] days=" << days();
}
QString Settings::language() const
+4
View File
@@ -51,6 +51,10 @@ signals:
void daysChanged();
private:
// Path canonico (pattern calibreweb): senza path esplicito la sandbox
// SailJail non rende persistente la config (QSettings org/app scrive in
// una zona nascosta/effimera). AppConfigLocation = ~/.config/harbour/tide
static QString configPath();
QSettings m_settings;
};