Commit 52ee9e22 authored by Pekka Vuorela's avatar Pekka Vuorela

Run astyle for Qt coding conventions

Parameters from
https://wiki.qt.io/Qt_Coding_Style#Artistic_Style
except line length to 120
parent a470b9b0
......@@ -37,7 +37,7 @@ public:
* If the device is not a variant it will return an empty string. If
* fallback is set to true it return the device model in this case.
*/
Q_INVOKABLE QString deviceVariant(bool fallback=false);
Q_INVOKABLE QString deviceVariant(bool fallback = false);
/**
* Try to find out ond what kind of system this is running
*/
......
This diff is collapsed.
......@@ -18,8 +18,9 @@
getenv("SSU_TESTS_DATA_PATH") : \
TESTS_DATA_PATH)
class Sandbox {
public:
class Sandbox
{
public:
enum Usage {
UseDirectly,
UseAsSkeleton,
......@@ -31,7 +32,7 @@ class Sandbox {
};
Q_DECLARE_FLAGS(Scopes, Scope)
public:
public:
Sandbox();
Sandbox(const QString &sandboxPath, Usage usage, Scopes scopes);
~Sandbox();
......@@ -48,12 +49,12 @@ class Sandbox {
const QStringList &filterNames = QStringList(), bool recurse = true);
bool addWorldFile(const QString &file);
private:
private:
bool prepare();
static QString createTmpDir(const QString &nameTemplate);
static bool copyDir(const QString &directory, const QString &newName);
private:
private:
static Sandbox *s_activeInstance;
const bool m_defaultConstructed;
const Usage m_usage;
......
This diff is collapsed.
......@@ -16,12 +16,13 @@ class QNetworkAccessManager;
class QNetworkReply;
class QDomDocument;
class Ssu: public QObject {
class Ssu: public QObject
{
Q_OBJECT
friend class UrlResolverTest;
public:
public:
/**
* Filters to control the output of the repository lookup methods
*/
......@@ -94,7 +95,7 @@ class Ssu: public QObject {
*
* @return a string containing the scope; it can be used to look up login credentials using credentials()
*/
QString credentialsScope(QString repoName, bool rndRepo=false);
QString credentialsScope(QString repoName, bool rndRepo = false);
/**
* Return the URL for which credentials scope is valid
*/
......@@ -115,9 +116,9 @@ class Ssu: public QObject {
* Resolve a repository url
* @return the repository URL on success, an empty string on error
*/
QString repoUrl(QString repoName, bool rndRepo=false,
QHash<QString, QString> repoParameters=QHash<QString, QString>(),
QHash<QString, QString> parametersOverride=QHash<QString, QString>());
QString repoUrl(QString repoName, bool rndRepo = false,
QHash<QString, QString> repoParameters = QHash<QString, QString>(),
QHash<QString, QString> parametersOverride = QHash<QString, QString>());
/**
* Unregister a device. This will clean all registration data from a device,
* though will not touch the information on ssu server; the information there
......@@ -141,19 +142,19 @@ class Ssu: public QObject {
/// See SsuCoreConfig::lastCredentialsUpdate
Q_INVOKABLE QDateTime lastCredentialsUpdate();
/// See SsuCoreConfig::release
Q_INVOKABLE QString release(bool rnd=false);
Q_INVOKABLE QString release(bool rnd = false);
/// See SsuCoreConfig::setDeviceMode
Q_INVOKABLE void setDeviceMode(DeviceModeFlags mode, enum EditMode editMode=Replace);
Q_INVOKABLE void setDeviceMode(DeviceModeFlags mode, enum EditMode editMode = Replace);
/// See SsuCoreConfig::setFlavour
Q_INVOKABLE void setFlavour(QString flavour);
/// See SsuCoreConfig::setRelease
Q_INVOKABLE void setRelease(QString release, bool rnd=false);
Q_INVOKABLE void setRelease(QString release, bool rnd = false);
/// See SsuCoreConfig::setDomain
Q_INVOKABLE void setDomain(QString domain);
/// See SsuCoreConfig::useSslVerify
Q_INVOKABLE bool useSslVerify();
private:
private:
QString errorString;
bool errorFlag;
QNetworkAccessManager *manager;
......@@ -163,7 +164,7 @@ class Ssu: public QObject {
bool verifyResponse(QDomDocument *response);
void storeAuthorizedKeys(QByteArray data);
private slots:
private slots:
void requestFinished(QNetworkReply *reply);
/**
* Set errorString returned by lastError to errorMessage, set
......@@ -171,7 +172,7 @@ class Ssu: public QObject {
*/
void setError(QString errorMessage);
public slots:
public slots:
/**
* Attempt RND device registration, using @a username and @a password supplied
* @param username Jolla username
......@@ -193,13 +194,13 @@ class Ssu: public QObject {
* error() to check if an error occured, and use lastError() to retrieve the last
* error message.
*/
void updateCredentials(bool force=false);
void updateCredentials(bool force = false);
/**
* Try to update credentials for (Jolla) store
*/
void updateStoreCredentials();
signals:
signals:
/**
* Emitted after an asynchronous operation finished
*/
......
......@@ -17,14 +17,16 @@
SsuCoreConfig *SsuCoreConfig::ssuCoreConfig = 0;
SsuCoreConfig *SsuCoreConfig::instance(){
SsuCoreConfig *SsuCoreConfig::instance()
{
if (!ssuCoreConfig)
ssuCoreConfig = new SsuCoreConfig();
return ssuCoreConfig;
}
QPair<QString, QString> SsuCoreConfig::credentials(QString scope){
QPair<QString, QString> SsuCoreConfig::credentials(QString scope)
{
QPair<QString, QString> ret;
beginGroup("credentials-" + scope);
ret.first = value("username").toString();
......@@ -33,36 +35,41 @@ QPair<QString, QString> SsuCoreConfig::credentials(QString scope){
return ret;
}
QString SsuCoreConfig::credentialsScope(QString repoName, bool rndRepo){
QString SsuCoreConfig::credentialsScope(QString repoName, bool rndRepo)
{
if (contains("credentials-scope"))
return value("credentials-scope").toString();
else
return "your-configuration-is-broken-and-does-not-contain-credentials-scope";
}
QString SsuCoreConfig::credentialsUrl(QString scope){
QString SsuCoreConfig::credentialsUrl(QString scope)
{
if (contains("credentials-url-" + scope))
return value("credentials-url-" + scope).toString();
else
return "your-configuration-is-broken-and-does-not-contain-credentials-url-for-" + scope;
}
QString SsuCoreConfig::flavour(){
QString SsuCoreConfig::flavour()
{
if (contains("flavour"))
return value("flavour").toString();
else
return "release";
}
Ssu::DeviceModeFlags SsuCoreConfig::deviceMode(){
Ssu::DeviceModeFlags SsuCoreConfig::deviceMode()
{
if (!contains("deviceMode"))
return Ssu::ReleaseMode;
else
return Ssu::DeviceModeFlags(value("deviceMode").toInt());
}
QString SsuCoreConfig::domain(bool pretty){
if (contains("domain")){
QString SsuCoreConfig::domain(bool pretty)
{
if (contains("domain")) {
if (pretty)
return value("domain").toString().replace(":", "-");
else
......@@ -71,7 +78,8 @@ QString SsuCoreConfig::domain(bool pretty){
return "";
}
bool SsuCoreConfig::isRegistered(){
bool SsuCoreConfig::isRegistered()
{
if (!contains("privateKey"))
return false;
if (!contains("certificate"))
......@@ -79,23 +87,26 @@ bool SsuCoreConfig::isRegistered(){
return value("registered").toBool();
}
QDateTime SsuCoreConfig::lastCredentialsUpdate(){
QDateTime SsuCoreConfig::lastCredentialsUpdate()
{
return value("lastCredentialsUpdate").toDateTime();
}
QString SsuCoreConfig::release(bool rnd){
QString SsuCoreConfig::release(bool rnd)
{
if (rnd)
return value("rndRelease").toString();
else
return value("release").toString();
}
void SsuCoreConfig::setDeviceMode(Ssu::DeviceModeFlags mode, enum Ssu::EditMode editMode){
void SsuCoreConfig::setDeviceMode(Ssu::DeviceModeFlags mode, enum Ssu::EditMode editMode)
{
int oldMode = value("deviceMode").toInt();
if ((editMode & Ssu::Add) == Ssu::Add){
if ((editMode & Ssu::Add) == Ssu::Add) {
oldMode |= mode;
} else if ((editMode & Ssu::Remove) == Ssu::Remove){
} else if ((editMode & Ssu::Remove) == Ssu::Remove) {
oldMode &= ~mode;
} else
oldMode = mode;
......@@ -104,14 +115,16 @@ void SsuCoreConfig::setDeviceMode(Ssu::DeviceModeFlags mode, enum Ssu::EditMode
sync();
}
void SsuCoreConfig::setFlavour(QString flavour){
void SsuCoreConfig::setFlavour(QString flavour)
{
setValue("flavour", flavour);
// flavour is RnD only, so enable RnD mode
setDeviceMode(Ssu::RndMode, Ssu::Add);
sync();
}
void SsuCoreConfig::setRelease(QString release, bool rnd){
void SsuCoreConfig::setRelease(QString release, bool rnd)
{
if (rnd) {
setValue("rndRelease", release);
// switch rndMode on/off when setting releases
......@@ -123,26 +136,29 @@ void SsuCoreConfig::setRelease(QString release, bool rnd){
sync();
}
void SsuCoreConfig::setDomain(QString domain){
void SsuCoreConfig::setDomain(QString domain)
{
// - in domain messes with default section autodetection,
// so change it to :
setValue("domain", domain.replace("-", ":"));
sync();
}
bool SsuCoreConfig::useSslVerify(){
bool SsuCoreConfig::useSslVerify()
{
if (contains("ssl-verify"))
return value("ssl-verify").toBool();
else
return true;
}
QDBusConnection SsuCoreConfig::userSessionBus(){
QDBusConnection SsuCoreConfig::userSessionBus()
{
int uid_min = getdef_num("UID_MIN", -1);
// For calls from valid UID we assume that they are properly logged in users.
// If they are not the call will fail, but it's their fault.
if (getuid() >= uid_min){
if (getuid() >= uid_min) {
return QDBusConnection::sessionBus();
} else {
// DBus security policy will prevent this beeing used by callers other
......@@ -150,7 +166,7 @@ QDBusConnection SsuCoreConfig::userSessionBus(){
// be extended later, and just use the usual 'DBus: THOU SHALL NOT PASS!'
// @TODO the uid to be used should be determined using the logind API from
// systemd package to support multiuser systems in the future
QString sessionBusAddress=QString("unix:path=/run/user/%1/dbus/user_bus_socket")
QString sessionBusAddress = QString("unix:path=/run/user/%1/dbus/user_bus_socket")
.arg(uid_min);
return QDBusConnection::connectToBus(sessionBusAddress, "userSessionBus");
}
......
......@@ -24,10 +24,11 @@
class QDBusConnection;
class SsuCoreConfig: public SsuSettings {
class SsuCoreConfig: public SsuSettings
{
Q_OBJECT
public:
public:
static SsuCoreConfig *instance();
/**
* Find a username/password pair for the given scope
......@@ -43,7 +44,7 @@ class SsuCoreConfig: public SsuSettings {
*
* @return a string containing the scope; it can be used to look up login credentials using credentials()
*/
QString credentialsScope(QString repoName, bool rndRepo=false);
QString credentialsScope(QString repoName, bool rndRepo = false);
/**
* Return the URL for which credentials scope is valid
*/
......@@ -63,7 +64,7 @@ class SsuCoreConfig: public SsuSettings {
* to print the domain name set pretty to true
* @return domain, or "" if not set
*/
Q_INVOKABLE QString domain(bool pretty=false);
Q_INVOKABLE QString domain(bool pretty = false);
/**
* Return devices RND registration status
* @retval true device is registered
......@@ -78,11 +79,11 @@ class SsuCoreConfig: public SsuSettings {
/**
* Return the release version string for either a release, or a RnD snapshot
*/
Q_INVOKABLE QString release(bool rnd=false);
Q_INVOKABLE QString release(bool rnd = false);
/**
* Set mode bits for the device
*/
Q_INVOKABLE void setDeviceMode(Ssu::DeviceModeFlags mode, enum Ssu::EditMode editMode=Ssu::Replace);
Q_INVOKABLE void setDeviceMode(Ssu::DeviceModeFlags mode, enum Ssu::EditMode editMode = Ssu::Replace);
/**
* Set the flavour used when resolving RND repositories
*/
......@@ -90,7 +91,7 @@ class SsuCoreConfig: public SsuSettings {
/**
* Set the release version string for either a release, or a RnD snapshot
*/
Q_INVOKABLE void setRelease(QString release, bool rnd=false);
Q_INVOKABLE void setRelease(QString release, bool rnd = false);
/**
* Set the domain string (usually something like nemo, jolla, ..)
*/
......@@ -107,7 +108,7 @@ class SsuCoreConfig: public SsuSettings {
static QDBusConnection userSessionBus();
private:
private:
SsuCoreConfig(): SsuSettings(SSU_CONFIGURATION, QSettings::IniFormat, SSU_DEFAULT_CONFIGURATION) {};
SsuCoreConfig(const SsuCoreConfig &); // hide copy constructor
......
This diff is collapsed.
......@@ -14,14 +14,15 @@
class SsuSettings;
class SsuDeviceInfo: public QObject {
class SsuDeviceInfo: public QObject
{
Q_OBJECT
public:
public:
/**
* Initialize with device to override autodetection
*/
SsuDeviceInfo(QString model="");
SsuDeviceInfo(QString model = "");
/**
* Return the list of adaptations used for the set model
*/
......@@ -36,7 +37,7 @@ class SsuDeviceInfo: public QObject {
* or as variant. If no model is provided as argument the autodetected or previously
* set model is used.
*/
bool contains(const QString &model="");
bool contains(const QString &model = "");
/**
* Try to find the device family for the system this is running on. This function
* temporarily changes the detected model, and therefore should not be used in a
......@@ -48,7 +49,7 @@ class SsuDeviceInfo: public QObject {
* If the device is not a variant it will return an empty string. If
* fallback is set to true it return the device model in this case.
*/
Q_INVOKABLE QString deviceVariant(bool fallback=false);
Q_INVOKABLE QString deviceVariant(bool fallback = false);
/**
* Try to find out ond what kind of system this is running
*/
......@@ -80,11 +81,11 @@ class SsuDeviceInfo: public QObject {
* only board-specific, or only user-specific are returned.
* Disabled repositories are excluded depending on filter settings.
*/
QStringList repos(bool rnd=false, int filter=Ssu::NoFilter);
QStringList repos(bool rnd = false, int filter = Ssu::NoFilter);
/**
* Override device model autodetection
*/
Q_INVOKABLE void setDeviceModel(QString model="");
Q_INVOKABLE void setDeviceModel(QString model = "");
/**
* Return a variable from the given variable section. 'var'- is automatically
* prepended to the section name if not specified already. Recursive search
......@@ -105,10 +106,10 @@ class SsuDeviceInfo: public QObject {
* dedicated device section the key from the device section will get
* returned, otherwise the one from the variant.
*/
QVariant value(const QString &key, const QVariant &value=QVariant());
QVariant value(const QString &key, const QVariant &value = QVariant());
private:
private:
SsuSettings *boardMappings;
QString cachedFamily, cachedModel, cachedVariant;
......
......@@ -18,7 +18,8 @@
#include "../constants.h"
SsuFeatureManager::SsuFeatureManager(): QObject() {
SsuFeatureManager::SsuFeatureManager(): QObject()
{
featureSettings = new SsuSettings(SSU_FEATURE_CONFIGURATION, SSU_FEATURE_CONFIGURATION_DIR);
}
......@@ -30,7 +31,8 @@ SsuFeatureManager::SsuFeatureManager(): QObject() {
// all features have a list of repositories in the repos key
// if there are enabled/disabled features, check the repos keys from all enabled features
// and only enable the repositories from those
QStringList SsuFeatureManager::repos(bool rndRepo, int filter){
QStringList SsuFeatureManager::repos(bool rndRepo, int filter)
{
QStringList r;
QStringList keys;
SsuCoreConfig *settings = SsuCoreConfig::instance();
......@@ -57,7 +59,8 @@ QStringList SsuFeatureManager::repos(bool rndRepo, int filter){
return r;
}
QString SsuFeatureManager::url(QString repo, bool rndRepo){
QString SsuFeatureManager::url(QString repo, bool rndRepo)
{
QString repoHeader = QString("repositories-%1/")
.arg(rndRepo ? "rnd" : "release");
......
......@@ -15,15 +15,16 @@
#include "ssu.h"
#include "ssusettings_p.h"
class SsuFeatureManager: public QObject {
class SsuFeatureManager: public QObject
{
Q_OBJECT
public:
public:
SsuFeatureManager();
QStringList repos(bool rndRepo, int filter=Ssu::NoFilter);
QStringList repos(bool rndRepo, int filter = Ssu::NoFilter);
QString url(QString repo, bool rndRepo);
private:
private:
SsuSettings *featureSettings;
};
......
......@@ -18,7 +18,8 @@ bool featureLessThan(const QHash<QByteArray, QString> &feature1, const QHash<QBy
return feature1.value("name") < feature2.value("name");
}
class SsuFeatureModelPrivate {
class SsuFeatureModelPrivate
{
public:
SsuFeatureModelPrivate(const QString &p) : path(p)
{
......@@ -28,8 +29,9 @@ public:
~SsuFeatureModelPrivate()
{}
void load() {
QDirIterator it(path, QDir::AllEntries|QDir::NoDot|QDir::NoDotDot, QDirIterator::FollowSymlinks);
void load()
{
QDirIterator it(path, QDir::AllEntries | QDir::NoDot | QDir::NoDotDot, QDirIterator::FollowSymlinks);
QStringList settingsFiles;
while (it.hasNext()) {
......@@ -120,7 +122,7 @@ QVariant SsuFeatureModel::data(const QModelIndex &index, int role) const
QHash<int, QByteArray> SsuFeatureModel::roleNames() const
{
QHash<int,QByteArray> roles;
QHash<int, QByteArray> roles;
roles.insert(Name, "name");
roles.insert(Version, "version");
return roles;
......
......@@ -13,8 +13,9 @@
SsuLog *SsuLog::ssuLog = 0;
SsuLog *SsuLog::instance(){
if (!ssuLog){
SsuLog *SsuLog::instance()
{
if (!ssuLog) {
ssuLog = new SsuLog();
ssuLog->fallbackLogPath = "/tmp/ssu.log";
ssuLog->ssuLogLevel = -1;
......@@ -23,13 +24,14 @@ SsuLog *SsuLog::instance(){
return ssuLog;
}
void SsuLog::print(int priority, QString message){
void SsuLog::print(int priority, QString message)
{
QByteArray ba = message.toUtf8();
const char *ca = ba.constData();
// directly go through qsettings here to avoid recursive invocation
// of coreconfig / ssulog
if (ssuLogLevel == -1){
if (ssuLogLevel == -1) {
QSettings settings(SSU_CONFIGURATION, QSettings::IniFormat);
if (settings.contains("loglevel"))
......@@ -43,7 +45,7 @@ void SsuLog::print(int priority, QString message){
if (priority > ssuLogLevel)
return;
if (sd_journal_print(priority, "ssu: %s", ca) < 0 && fallbackLogPath != ""){
if (sd_journal_print(priority, "ssu: %s", ca) < 0 && fallbackLogPath != "") {
QFile logfile;
QTextStream logstream;
logfile.setFileName(fallbackLogPath);
......
......@@ -12,16 +12,17 @@
#include <systemd/sd-journal.h>
class SsuLog {
class SsuLog
{
public:
public:
static SsuLog *instance();
/**
* Print a message to systemds journal, or to a text log file, if a fallback is defined
*/
void print(int priority, QString message);
private:
private:
SsuLog() {};
SsuLog(const SsuLog &); // hide copy constructor
......
This diff is collapsed.
......@@ -15,10 +15,11 @@
class SsuDeviceInfo;
class SsuRepoManager: public QObject {
class SsuRepoManager: public QObject
{
Q_OBJECT
public:
public:
SsuRepoManager();
/**
* Add a repository. Note: Repositories ending with -debuginfo receive special
......@@ -28,7 +29,7 @@ class SsuRepoManager: public QObject {
*
* If the device is in UpdateMode this function does nothing.
*/
int add(QString repo, QString repoUrl="");
int add(QString repo, QString repoUrl = "");
/**
* Return the path to the CA certificate to be used for the given domain,
* or default domain, if omitted
......@@ -37,7 +38,7 @@ class SsuRepoManager: public QObject {
* @retval -1 Repository not added because device is in update mode
* @retval -2 Repository not added because third party repositories are disabled
*/
static QString caCertificatePath(QString domain="");
static QString caCertificatePath(QString domain = "");
/**
* Disable a repository
*
......@@ -65,18 +66,18 @@ class SsuRepoManager: public QObject {
/**
* Collect the list of repositories from different submodules
*/
QStringList repos(int filter=Ssu::NoFilter);
QStringList repos(int filter = Ssu::NoFilter);
/**
* Collect the list of repositories from different submodules.
* This form allows overriding rnd mode setting.
*/
QStringList repos(bool rnd, int filter=Ssu::NoFilter);
QStringList repos(bool rnd, int filter = Ssu::NoFilter);
/**
* Collect the list of repositories from different submodules.
* This form takes a reference to a custom device info instance
* to allow overrides.
*/
QStringList repos(bool rnd, SsuDeviceInfo &deviceInfo, int filter=Ssu::NoFilter);
QStringList repos(bool rnd, SsuDeviceInfo &deviceInfo, int filter = Ssu::NoFilter);
/**
* Resolve repository specific variables, and store them in storageHash. Does
* not include adaptation specific variables, see SsuDeviceInfo::adaptationVariables
......@@ -84,7 +85,7 @@ class SsuRepoManager: public QObject {
* Returns a list of sections in the configuration file that might contain repository
* URLs
*/
QStringList repoVariables(QHash<QString, QString> *storageHash, bool rnd=false);
QStringList repoVariables(QHash<QString, QString> *storageHash, bool rnd = false);
/**
* Update the repository files on disk
*/
......@@ -93,9 +94,9 @@ class SsuRepoManager: public QObject {
* Resolve a repository url
* @return the repository URL on success, an empty string on error
*/
QString url(QString repoName, bool rndRepo=false,
QHash<QString, QString> repoParameters=QHash<QString, QString>(),
QHash<QString, QString> parametersOverride=QHash<QString, QString>());
QString url(QString repoName, bool rndRepo = false,
QHash<QString, QString> repoParameters = QHash<QString, QString>(),
QHash<QString, QString> parametersOverride = QHash<QString, QString>());
};
......
......@@ -14,28 +14,33 @@
#include "ssusettings_p.h"
#include "ssulog_p.h"
SsuSettings::SsuSettings(): QSettings(){
SsuSettings::SsuSettings(): QSettings()
{
}
SsuSettings::SsuSettings(const QString &fileName, Format format, QObject *parent):
QSettings(Sandbox::map(fileName), format, parent){
QSettings(Sandbox::map(fileName), format, parent)
{
}
SsuSettings::SsuSettings(const QString &fileName, Format format, const QString &defaultFileName, QObject *parent):
QSettings(Sandbox::map(fileName), format, parent){
QSettings(Sandbox::map(fileName), format, parent)
{
defaultSettingsFile = Sandbox::map(defaultFileName);
upgrade();
}
SsuSettings::SsuSettings(const QString &fileName, const QString &settingsDirectory, QObject *parent):
QSettings(Sandbox::map(fileName), QSettings::IniFormat, parent){
QSettings(Sandbox::map(fileName), QSettings::IniFormat, parent)
{
settingsd = Sandbox::map(settingsDirectory);
merge();
}
void SsuSettings::merge(bool keepOld){
void SsuSettings::merge(bool keepOld)
{
if (settingsd == "")
return;
......@@ -43,12 +48,12 @@ void SsuSettings::merge(bool keepOld){
SsuLog *ssuLog = SsuLog::instance();
QDirIterator it(settingsd, QDir::AllEntries|QDir::NoDot|QDir::NoDotDot, QDirIterator::FollowSymlinks);
QDirIterator it(settingsd, QDir::AllEntries | QDir::NoDot | QDir::NoDotDot, QDirIterator::FollowSymlinks);
QStringList settingsFiles;
QFileInfo oldSettingsInfo(fileName());
while (it.hasNext()){
while (it.hasNext()) {
QString f = it.next();
settingsFiles.append(it.filePath());
......@@ -58,7 +63,7 @@ void SsuSettings::merge(bool keepOld){
skipMerge = false;
}
if (skipMerge){
if (skipMerge) {
// systemd journal does not seem to allow selective loglevels for different services, disabling for now
//ssuLog->print(LOG_DEBUG, QString("Configuration file is newer than all config.d files, skipping merge"));
return;
......@@ -74,10 +79,11 @@ void SsuSettings::merge(bool keepOld){
sync();
}
void SsuSettings::merge(QSettings *masterSettings, const QStringList &settingsFiles){