SB_STATUS CSbieIni::UpdateTextList(const QString &Setting, const QStringList& List, bool withTemplates)
{
QStringList OldSettings = GetTextList(Setting, withTemplates);
QStringList NewSettings;
foreach(const QString& Value, List) {
if (!OldSettings.removeOne(Value))
NewSettings.append(Value);
}
// delete removed or changed settings
foreach(const QString& Value, OldSettings)
DelValue(Setting, Value);
// add new or changed settings
foreach(const QString& Value, NewSettings)
InsertText(Setting, Value);
return SB_OK;
}
void COptionsWindow::SaveForced()
{
QStringList ForceProcess;
QStringList ForceProcessDisabled;
QStringList ForceFolder;
QStringList ForceFolderDisabled;
for (int i = 0; i < ui.treeForced->topLevelItemCount(); i++)
{
QTreeWidgetItem* pItem = ui.treeForced->topLevelItem(i);
int Type = pItem->data(0, Qt::UserRole).toInt();
if (Type == (int)eTemplate)
continue; // entry from template
if (pItem->checkState(0) == Qt::Checked) {
switch (Type) {
case eProcess: ForceProcess.append(pItem->data(1, Qt::UserRole).toString()); break;
case ePath: ForceFolder.append(pItem->data(1, Qt::UserRole).toString()); break;
}
}
else {
switch (Type) {
case eProcess: ForceProcessDisabled.append(pItem->data(1, Qt::UserRole).toString()); break;
case ePath: ForceFolderDisabled.append(pItem->data(1, Qt::UserRole).toString()); break;
}
}
}
WriteTextList("ForceProcess", ForceProcess);
WriteTextList("ForceProcessDisabled", ForceProcessDisabled);
WriteTextList("ForceFolder", ForceFolder);
WriteTextList("ForceFolderDisabled", ForceFolderDisabled);
m_ForcedChanged = false;
}
void COptionsWindow::SaveGroups()
{
QStringList ProcessGroups;
for (int i = 0; i < ui.treeGroups->topLevelItemCount(); i++)
{
QTreeWidgetItem* pItem = ui.treeGroups->topLevelItem(i);
QString GroupName = pItem->data(0, Qt::UserRole).toString();
if (GroupName.isEmpty())
continue; // this is a template entry, dont save
QStringList Programs;
for (int j = 0; j < pItem->childCount(); j++)
Programs.append(pItem->child(j)->data(0, Qt::UserRole).toString());
QString Group = GroupName + "," + Programs.join(",");
ProcessGroups.append(Group);
}
WriteTextList("ProcessGroup", ProcessGroups);
m_GroupsChanged = false;
}