Sandbox SailJail: profilo X-Sailjail nel desktop file (Internet;Downloads, org harbour/app calibreweb) + config in AppConfigLocation (~/.config/harbour/calibreweb/, zona persistente della sandbox) + migrazione dal vecchio file. Senza profilo la sandbox nascondeva ~/.config/harbour e le impostazioni dal launcher sparivano
This commit is contained in:
@@ -8,3 +8,13 @@ Icon=harbour-calibreweb
|
|||||||
Type=Application
|
Type=Application
|
||||||
X-Nemo-Application-Type=silica-qt5
|
X-Nemo-Application-Type=silica-qt5
|
||||||
Categories=Office;Viewer;
|
Categories=Office;Viewer;
|
||||||
|
|
||||||
|
# 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/calibreweb/ (AppConfigLocation). Internet = rete,
|
||||||
|
# Downloads = salvataggio libri.
|
||||||
|
[X-Sailjail]
|
||||||
|
Permissions=Internet;Downloads
|
||||||
|
OrganizationName=harbour
|
||||||
|
ApplicationName=calibreweb
|
||||||
|
|||||||
@@ -25,6 +25,12 @@ in locale.
|
|||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Aug 19 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.2.0-1
|
* Wed Aug 19 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.2.0-1
|
||||||
|
- Sandbox SailJail (Sailfish 4.4+/5.x): profilo X-Sailjail esplicito nel desktop
|
||||||
|
file (Internet;Downloads, org harbour/app calibreweb) e config in
|
||||||
|
AppConfigLocation (~/.config/harbour/calibreweb/calibreweb.conf, l'unica zona
|
||||||
|
persistente della sandbox). Senza profilo la sandbox nascondeva ~/.config/harbour
|
||||||
|
e le impostazioni dal launcher sparivano (config solo funzionante da SSH).
|
||||||
|
Migrazione automatica dal vecchio file per-utente.
|
||||||
- Fix crash 'Close book': pop(null) differito con Timer (distruggere la pagina
|
- Fix crash 'Close book': pop(null) differito con Timer (distruggere la pagina
|
||||||
dall'handler del suo MenuItem crashava)
|
dall'handler del suo MenuItem crashava)
|
||||||
- Config condivisa nemo/defaultuser: permessi aperti su /home/nemo/.config/harbour
|
- Config condivisa nemo/defaultuser: permessi aperti su /home/nemo/.config/harbour
|
||||||
|
|||||||
@@ -15,6 +15,12 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
QGuiApplication *app = SailfishApp::application(argc, argv);
|
QGuiApplication *app = SailfishApp::application(argc, argv);
|
||||||
|
|
||||||
|
// Identita' applicazione allineata al profilo X-Sailjail del desktop file:
|
||||||
|
// QStandardPaths::AppConfigLocation diventa ~/.config/harbour/calibreweb,
|
||||||
|
// l'unica zona config persistente della sandbox di Sailfish 5.1.
|
||||||
|
app->setOrganizationName(QStringLiteral("harbour"));
|
||||||
|
app->setApplicationName(QStringLiteral("calibreweb"));
|
||||||
|
|
||||||
Settings settings;
|
Settings settings;
|
||||||
|
|
||||||
// User-chosen language (Settings -> Language). "system" = follow the
|
// User-chosen language (Settings -> Language). "system" = follow the
|
||||||
|
|||||||
+12
-24
@@ -8,27 +8,14 @@
|
|||||||
|
|
||||||
QString Settings::configPath()
|
QString Settings::configPath()
|
||||||
{
|
{
|
||||||
// Home candidate dell'utente grafico: Jolla Phone 2026 / Sailfish 5.1 usa
|
// Path canonico per la sandbox SailJail di Sailfish 4.4+/5.x: con
|
||||||
// /home/rootitanium, il Sailfish classico /home/nemo. La config DEVE essere
|
// org/app impostati (harbour/calibreweb, vedi main.cpp e X-Sailjail nel
|
||||||
// unica (launcher = utente grafico, debug SSH = defaultuser): si usa il
|
// desktop file), AppConfigLocation = ~/.config/harbour/calibreweb, l'unica
|
||||||
// file gia' esistente o la prima home in cui riusciamo a creare la dir.
|
// zona config che la sandbox rende PERSISTENTE tra gli avvii. Senza
|
||||||
const QString local = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation)
|
// profilo esplicito la sandbox nasconde ~/.config/harbour (config persa).
|
||||||
+ QStringLiteral("/harbour/calibreweb.conf");
|
const QString dir = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
|
||||||
const QStringList homes = QStringList()
|
QDir().mkpath(dir);
|
||||||
<< QStringLiteral("/home/rootitanium") // Jolla Phone 2026 (Sailfish 5.1)
|
return dir + QStringLiteral("/calibreweb.conf");
|
||||||
<< QStringLiteral("/home/nemo"); // Sailfish classico
|
|
||||||
for (const QString &h : homes) {
|
|
||||||
if (QFile::exists(h + QStringLiteral("/.config/harbour/calibreweb.conf")))
|
|
||||||
return h + QStringLiteral("/.config/harbour/calibreweb.conf");
|
|
||||||
}
|
|
||||||
if (QFile::exists(local))
|
|
||||||
return local;
|
|
||||||
for (const QString &h : homes) {
|
|
||||||
if (QDir().mkpath(h + QStringLiteral("/.config/harbour")))
|
|
||||||
return h + QStringLiteral("/.config/harbour/calibreweb.conf");
|
|
||||||
}
|
|
||||||
QDir().mkpath(QFileInfo(local).absolutePath());
|
|
||||||
return local;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings::Settings(QObject *parent)
|
Settings::Settings(QObject *parent)
|
||||||
@@ -50,10 +37,11 @@ void Settings::migrateIfNeeded()
|
|||||||
{
|
{
|
||||||
if (!serverUrl().isEmpty())
|
if (!serverUrl().isEmpty())
|
||||||
return; // il file condiviso ha gia' una configurazione
|
return; // il file condiviso ha gia' una configurazione
|
||||||
// Sorgenti candidate: config per-utente corrente + i path noti degli altri
|
// Sorgenti candidate per la migrazione: il vecchio file per-utente
|
||||||
// utenti (launcher=nemo, debug SSH=defaultuser). La prima con valori vince.
|
// (~/.config/harbour/calibreweb.conf) e i path usati dalle build precedenti.
|
||||||
|
// La prima con valori vince.
|
||||||
const QStringList candidates = QStringList()
|
const QStringList candidates = QStringList()
|
||||||
<< QSettings(QStringLiteral("harbour"), QStringLiteral("calibreweb")).fileName()
|
<< QDir::homePath() + QStringLiteral("/.config/harbour/calibreweb.conf")
|
||||||
<< QStringLiteral("/home/rootitanium/.config/harbour/calibreweb.conf")
|
<< QStringLiteral("/home/rootitanium/.config/harbour/calibreweb.conf")
|
||||||
<< QStringLiteral("/home/nemo/.config/harbour/calibreweb.conf")
|
<< QStringLiteral("/home/nemo/.config/harbour/calibreweb.conf")
|
||||||
<< QStringLiteral("/home/defaultuser/.config/harbour/calibreweb.conf");
|
<< QStringLiteral("/home/defaultuser/.config/harbour/calibreweb.conf");
|
||||||
|
|||||||
Reference in New Issue
Block a user