Skip to content

Commit

Permalink
Improve disabled repo handling.
Browse files Browse the repository at this point in the history
When removing repos, drop them from the disabled-repos list as well as the enabled-repos so they no longer appear in the repo list. When an action empties the list, remove the setting instead of setting it to '@invalid()'.
  • Loading branch information
abranson committed Oct 29, 2019
1 parent 27af65c commit 17978ef
Showing 1 changed file with 24 additions and 12 deletions.
36 changes: 24 additions & 12 deletions libssu/ssurepomanager.cpp
Expand Up @@ -98,14 +98,20 @@ int SsuRepoManager::enable(const QString &repo)
SsuCoreConfig *ssuSettings = SsuCoreConfig::instance();
QStringList disabledRepos;

if (ssuSettings->contains("disabled-repos"))
if (ssuSettings->contains("disabled-repos")) {
disabledRepos = ssuSettings->value("disabled-repos").toStringList();

disabledRepos.removeAll(repo);
disabledRepos.removeDuplicates();
disabledRepos.removeAll(repo);
disabledRepos.removeDuplicates();

if (disabledRepos.size() > 0)
ssuSettings->setValue("disabled-repos", disabledRepos);
else
ssuSettings->remove("disabled-repos");

ssuSettings->sync();
}

ssuSettings->setValue("disabled-repos", disabledRepos);
ssuSettings->sync();

return 0;
}
Expand All @@ -125,15 +131,21 @@ int SsuRepoManager::remove(const QString &repo)
if (ssuSettings->contains("repository-urls/" + repo))
ssuSettings->remove("repository-urls/" + repo);

if (ssuSettings->contains("enabled-repos")) {
QStringList enabledRepos = ssuSettings->value("enabled-repos").toStringList();
if (enabledRepos.contains(repo)) {
enabledRepos.removeAll(repo);
enabledRepos.removeDuplicates();
ssuSettings->setValue("enabled-repos", enabledRepos);
QStringList sections;
sections << "enabled-repos" << "disabled-repos";
foreach(QString section, sections) {
if (ssuSettings->contains(section)) {
QStringList repos = ssuSettings->value(section).toStringList();
if (repos.contains(repo)) {
repos.removeAll(repo);
repos.removeDuplicates();
if (repos.size() > 0)
ssuSettings->setValue(section, repos);
else
ssuSettings->remove(section);
}
}
}

ssuSettings->sync();

return 0;
Expand Down

0 comments on commit 17978ef

Please sign in to comment.