mirror of
https://github.com/chylex/Nextcloud-Desktop.git
synced 2025-06-02 13:34:09 +02:00
ConfigFile: use QStandardPaths::AppConfigLocation for the config file
Also use appName instead of appNameGui in order to compute the path Issue: #2245 The reason is to respect the XDG spec on Unix (#1601) and might help on windows roaming profiles (#684)
This commit is contained in:
parent
ac844a2a45
commit
e0a14cac5b
@ -119,7 +119,7 @@ Preventing Automatic Updates in Linux Environments
|
|||||||
|
|
||||||
Because the Linux client does not provide automatic updating functionality, there is no
|
Because the Linux client does not provide automatic updating functionality, there is no
|
||||||
need to remove the automatic-update check. However, if you want to disable it edit your desktop
|
need to remove the automatic-update check. However, if you want to disable it edit your desktop
|
||||||
client configuration file, ``$HOME/.local/share/data/ownCloud/owncloud.cfg``.
|
client configuration file, ``$HOME/.config/ownCloud/owncloud.cfg``.
|
||||||
Add this line to the [General] section::
|
Add this line to the [General] section::
|
||||||
|
|
||||||
skipUpdateCheck=true
|
skipUpdateCheck=true
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
The ownCloud Client reads a configuration file. You can locate this configuration file as follows:
|
The ownCloud Client reads a configuration file. You can locate this configuration file as follows:
|
||||||
|
|
||||||
On Linux distributions:
|
On Linux distributions:
|
||||||
``$HOME/.local/share/data/ownCloud/owncloud.cfg``
|
``$HOME/.config/ownCloud/owncloud.cfg``
|
||||||
|
|
||||||
On Microsoft Windows systems:
|
On Microsoft Windows systems:
|
||||||
``%LOCALAPPDATA%\ownCloud\owncloud.cfg``
|
``%APPDATA%\ownCloud\owncloud.cfg``
|
||||||
|
|
||||||
On MAC OS X systems:
|
On MAC OS X systems:
|
||||||
``$HOME/Library/Application Support/ownCloud/owncloud.cfg``
|
``$HOME/Library/Preferences/ownCloud/owncloud.cfg``
|
||||||
|
|
||||||
|
|
||||||
The configuration file contains settings using the Microsoft Windows .ini file
|
The configuration file contains settings using the Microsoft Windows .ini file
|
||||||
|
@ -119,10 +119,29 @@ Application::Application(int &argc, char **argv)
|
|||||||
// TODO: Can't set this without breaking current config paths
|
// TODO: Can't set this without breaking current config paths
|
||||||
// setOrganizationName(QLatin1String(APPLICATION_VENDOR));
|
// setOrganizationName(QLatin1String(APPLICATION_VENDOR));
|
||||||
setOrganizationDomain(QLatin1String(APPLICATION_REV_DOMAIN));
|
setOrganizationDomain(QLatin1String(APPLICATION_REV_DOMAIN));
|
||||||
setApplicationName(_theme->appNameGUI());
|
setApplicationName(_theme->appName());
|
||||||
setWindowIcon(_theme->applicationIcon());
|
setWindowIcon(_theme->applicationIcon());
|
||||||
setAttribute(Qt::AA_UseHighDpiPixmaps, true);
|
setAttribute(Qt::AA_UseHighDpiPixmaps, true);
|
||||||
|
|
||||||
|
auto confDir = ConfigFile().configPath();
|
||||||
|
if (!QFileInfo(confDir).exists()) {
|
||||||
|
// Migrate from version <= 2.4
|
||||||
|
setApplicationName(_theme->appNameGUI());
|
||||||
|
QString oldDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
|
||||||
|
setApplicationName(_theme->appName());
|
||||||
|
if (QFileInfo(oldDir).isDir()) {
|
||||||
|
qCInfo(lcApplication) << "Migrating old config from" << oldDir << "to" << confDir;
|
||||||
|
if (!QFile::rename(oldDir, confDir)) {
|
||||||
|
qCWarning(lcApplication) << "Failed to move the old config file to its new location (" << oldDir << "to" << confDir << ")";
|
||||||
|
} else {
|
||||||
|
#ifndef Q_OS_WIN
|
||||||
|
// Create a symbolic link so a downgrade of the client would still find the config.
|
||||||
|
QFile::link(confDir, oldDir);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
parseOptions(arguments());
|
parseOptions(arguments());
|
||||||
//no need to waste time;
|
//no need to waste time;
|
||||||
if (_helpOnly || _versionOnly)
|
if (_helpOnly || _versionOnly)
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
#ifndef TOKEN_AUTH_ONLY
|
#ifndef TOKEN_AUTH_ONLY
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QDesktopServices>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
@ -36,6 +35,7 @@
|
|||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QNetworkProxy>
|
#include <QNetworkProxy>
|
||||||
|
#include <QStandardPaths>
|
||||||
|
|
||||||
#define DEFAULT_REMOTE_POLL_INTERVAL 30000 // default remote poll time in milliseconds
|
#define DEFAULT_REMOTE_POLL_INTERVAL 30000 // default remote poll time in milliseconds
|
||||||
#define DEFAULT_FULL_LOCAL_DISCOVERY_INTERVAL (60 * 60 * 1000) // 1 hour
|
#define DEFAULT_FULL_LOCAL_DISCOVERY_INTERVAL (60 * 60 * 1000) // 1 hour
|
||||||
@ -252,13 +252,11 @@ QVariant ConfigFile::getPolicySetting(const QString &setting, const QVariant &de
|
|||||||
|
|
||||||
QString ConfigFile::configPath() const
|
QString ConfigFile::configPath() const
|
||||||
{
|
{
|
||||||
#ifndef TOKEN_AUTH_ONLY
|
|
||||||
if (_confDir.isEmpty()) {
|
if (_confDir.isEmpty()) {
|
||||||
// Qt 5's QStandardPaths::writableLocation gives us wrong results (without /data/),
|
// On Unix, use the AppConfigLocation for the settings, that's configurable with the XDG_CONFIG_HOME env variable.
|
||||||
// so we'll have to use the deprecated version for now
|
// On Windows, use AppDataLocation, that's where the roaming data is and where we should store the config file
|
||||||
_confDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
|
_confDir = QStandardPaths::writableLocation(Utility::isWindows() ? QStandardPaths::AppDataLocation : QStandardPaths::AppConfigLocation);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
QString dir = _confDir;
|
QString dir = _confDir;
|
||||||
|
|
||||||
if (!dir.endsWith(QLatin1Char('/')))
|
if (!dir.endsWith(QLatin1Char('/')))
|
||||||
@ -266,12 +264,6 @@ QString ConfigFile::configPath() const
|
|||||||
return dir;
|
return dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ConfigFile::configPathWithAppName() const
|
|
||||||
{
|
|
||||||
//HACK
|
|
||||||
return QFileInfo(configFile()).dir().absolutePath().append("/");
|
|
||||||
}
|
|
||||||
|
|
||||||
static const QLatin1String exclFile("sync-exclude.lst");
|
static const QLatin1String exclFile("sync-exclude.lst");
|
||||||
|
|
||||||
QString ConfigFile::excludeFile(Scope scope) const
|
QString ConfigFile::excludeFile(Scope scope) const
|
||||||
|
@ -43,7 +43,6 @@ public:
|
|||||||
SystemScope };
|
SystemScope };
|
||||||
|
|
||||||
QString configPath() const;
|
QString configPath() const;
|
||||||
QString configPathWithAppName() const;
|
|
||||||
QString configFile() const;
|
QString configFile() const;
|
||||||
QString excludeFile(Scope scope) const;
|
QString excludeFile(Scope scope) const;
|
||||||
static QString excludeFileFromSystem(); // doesn't access config dir
|
static QString excludeFileFromSystem(); // doesn't access config dir
|
||||||
|
Loading…
Reference in New Issue
Block a user