Skip to content

Commit

Permalink
Split SsuSettings::merge() to make testing easier
Browse files Browse the repository at this point in the history
  • Loading branch information
martyone committed Apr 2, 2013
1 parent 8832c26 commit e05b5d8
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
17 changes: 12 additions & 5 deletions libssu/ssusettings.cpp
Expand Up @@ -67,27 +67,33 @@ void SsuSettings::merge(bool keepOld){
if (settingsFiles.count() > 0 && !keepOld)
clear();

merge(this, settingsFiles);
sync();
}

void SsuSettings::merge(QSettings *masterSettings, const QStringList &settingsFiles){
SsuLog *ssuLog = SsuLog::instance();

foreach (const QString &settingsFile, settingsFiles){
QSettings settings(settingsFile, QSettings::IniFormat);
QStringList groups = settings.childGroups();

ssuLog->print(LOG_DEBUG, QString("Merging %1 into %2")
.arg(settingsFile)
.arg(fileName()));
.arg(masterSettings->fileName()));

foreach (const QString &group, groups){
beginGroup(group);
masterSettings->beginGroup(group);
settings.beginGroup(group);

QStringList keys = settings.allKeys();
foreach (const QString &key, keys){
setValue(key, settings.value(key));
masterSettings->setValue(key, settings.value(key));
}

settings.endGroup();
endGroup();
masterSettings->endGroup();
}
sync();
}
}

Expand Down Expand Up @@ -175,5 +181,6 @@ void SsuSettings::upgrade(){
}
setValue("configVersion", i);
}
sync();
}
}
1 change: 1 addition & 0 deletions libssu/ssusettings.h
Expand Up @@ -30,6 +30,7 @@ class SsuSettings: public QSettings {
private:
QString defaultSettingsFile, settingsd;
void merge(bool keepOld=false);
static void merge(QSettings *masterSettings, const QStringList &settingsFiles);
void upgrade();

};
Expand Down

0 comments on commit e05b5d8

Please sign in to comment.