Config auto-adattiva: home grafica Jolla Phone 2026 = /home/rootitanium (nemo non esiste su Sailfish 5.1). Candidate rootitanium->nemo->utente corrente, file esistente prima, permessi aperti sulla home scelta
This commit is contained in:
@@ -40,6 +40,10 @@ in locale.
|
|||||||
(/home/nemo/.config/harbour/calibreweb.conf) indipendente dall'utente
|
(/home/nemo/.config/harbour/calibreweb.conf) indipendente dall'utente
|
||||||
che avvia l'app (launcher nemo / debug SSH defaultuser), con migrazione
|
che avvia l'app (launcher nemo / debug SSH defaultuser), con migrazione
|
||||||
automatica dei valori gia' salvati
|
automatica dei valori gia' salvati
|
||||||
|
- Config auto-adattiva: la home grafica su Jolla Phone 2026 (Sailfish 5.1)
|
||||||
|
e' /home/rootitanium (non nemo): candidate rootitanium -> nemo -> home
|
||||||
|
dell'utente corrente, file esistente prima, poi prima home scrivibile;
|
||||||
|
permessi aperti sulla home scelta a ogni scrittura
|
||||||
- Lettore EPUB nativo (WebView): capitoli, reflow A-/A+, margini
|
- Lettore EPUB nativo (WebView): capitoli, reflow A-/A+, margini
|
||||||
configurabili, posizione salvata in locale (QSettings) e ripristinata
|
configurabili, posizione salvata in locale (QSettings) e ripristinata
|
||||||
all'apertura
|
all'apertura
|
||||||
|
|||||||
+34
-14
@@ -8,9 +8,27 @@
|
|||||||
|
|
||||||
QString Settings::configPath()
|
QString Settings::configPath()
|
||||||
{
|
{
|
||||||
const QString dir = QStringLiteral("/home/nemo/.config/harbour");
|
// Home candidate dell'utente grafico: Jolla Phone 2026 / Sailfish 5.1 usa
|
||||||
QDir().mkpath(dir);
|
// /home/rootitanium, il Sailfish classico /home/nemo. La config DEVE essere
|
||||||
return dir + QStringLiteral("/calibreweb.conf");
|
// unica (launcher = utente grafico, debug SSH = defaultuser): si usa il
|
||||||
|
// file gia' esistente o la prima home in cui riusciamo a creare la dir.
|
||||||
|
const QString local = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation)
|
||||||
|
+ QStringLiteral("/harbour/calibreweb.conf");
|
||||||
|
const QStringList homes = QStringList()
|
||||||
|
<< QStringLiteral("/home/rootitanium") // Jolla Phone 2026 (Sailfish 5.1)
|
||||||
|
<< 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)
|
||||||
@@ -36,6 +54,7 @@ void Settings::migrateIfNeeded()
|
|||||||
// utenti (launcher=nemo, debug SSH=defaultuser). La prima con valori vince.
|
// utenti (launcher=nemo, debug SSH=defaultuser). La prima con valori vince.
|
||||||
const QStringList candidates = QStringList()
|
const QStringList candidates = QStringList()
|
||||||
<< QSettings(QStringLiteral("harbour"), QStringLiteral("calibreweb")).fileName()
|
<< QSettings(QStringLiteral("harbour"), QStringLiteral("calibreweb")).fileName()
|
||||||
|
<< 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");
|
||||||
for (const QString &cand : candidates) {
|
for (const QString &cand : candidates) {
|
||||||
@@ -73,26 +92,27 @@ void Settings::migrateIfNeeded()
|
|||||||
|
|
||||||
void Settings::openPermissions()
|
void Settings::openPermissions()
|
||||||
{
|
{
|
||||||
// Apre la catena di directory e il file di configurazione: la home di
|
// Apre la catena di directory e il file di configurazione della home scelta
|
||||||
// nemo e' 700 di default e defaultuser (debug SSH) non puo' entrarci.
|
// (utente grafico, home spesso 700): il debug SSH (defaultuser) deve poter
|
||||||
// Al primo avvio dal launcher (nemo) questi permessi restano aperti, e
|
// leggere/scrivere lo stesso file. Funziona quando l'app gira come owner
|
||||||
// da quel momento entrambi gli utenti condividono lo stesso file.
|
// della home (dal launcher); da SSH i permessi restano quelli gia' aperti.
|
||||||
QDir home(QStringLiteral("/home/nemo"));
|
const QString file = m_settings.fileName(); // .../calibreweb.conf
|
||||||
QFile::setPermissions(home.absolutePath(),
|
const QString dir = QFileInfo(file).absolutePath(); // .../.config/harbour
|
||||||
|
const QString configDir = QFileInfo(dir).absolutePath(); // .../.config
|
||||||
|
const QString home = QFileInfo(configDir).absolutePath(); // /home/<utente>
|
||||||
|
QFile::setPermissions(home,
|
||||||
QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner
|
QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner
|
||||||
| QFile::ReadGroup | QFile::ExeGroup
|
| QFile::ReadGroup | QFile::ExeGroup
|
||||||
| QFile::ReadOther | QFile::ExeOther);
|
| QFile::ReadOther | QFile::ExeOther);
|
||||||
QDir config(QStringLiteral("/home/nemo/.config"));
|
QFile::setPermissions(configDir,
|
||||||
QFile::setPermissions(config.absolutePath(),
|
|
||||||
QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner
|
QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner
|
||||||
| QFile::ReadGroup | QFile::ExeGroup
|
| QFile::ReadGroup | QFile::ExeGroup
|
||||||
| QFile::ReadOther | QFile::ExeOther);
|
| QFile::ReadOther | QFile::ExeOther);
|
||||||
QDir dir(QFileInfo(m_settings.fileName()).absolutePath());
|
QFile::setPermissions(dir,
|
||||||
QFile::setPermissions(dir.absolutePath(),
|
|
||||||
QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner
|
QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner
|
||||||
| QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup
|
| QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup
|
||||||
| QFile::ReadOther | QFile::WriteOther | QFile::ExeOther);
|
| QFile::ReadOther | QFile::WriteOther | QFile::ExeOther);
|
||||||
QFile::setPermissions(m_settings.fileName(),
|
QFile::setPermissions(file,
|
||||||
QFile::ReadOwner | QFile::WriteOwner
|
QFile::ReadOwner | QFile::WriteOwner
|
||||||
| QFile::ReadGroup | QFile::WriteGroup
|
| QFile::ReadGroup | QFile::WriteGroup
|
||||||
| QFile::ReadOther | QFile::WriteOther);
|
| QFile::ReadOther | QFile::WriteOther);
|
||||||
|
|||||||
Reference in New Issue
Block a user