diff options
Diffstat (limited to 'src/libs/installer/componentselectionpage_p.cpp')
-rw-r--r-- | src/libs/installer/componentselectionpage_p.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/libs/installer/componentselectionpage_p.cpp b/src/libs/installer/componentselectionpage_p.cpp index f77e0ae4b..0e60788cc 100644 --- a/src/libs/installer/componentselectionpage_p.cpp +++ b/src/libs/installer/componentselectionpage_p.cpp @@ -198,7 +198,7 @@ void ComponentSelectionPagePrivate::setupCategoryLayout() connect(fetchCategoryButton, &QPushButton::clicked, this, &ComponentSelectionPagePrivate::fetchRepositoryCategories); - foreach (RepositoryCategory repository, m_core->settings().repositoryCategories()) { + foreach (RepositoryCategory repository, m_core->settings().organizedRepositoryCategories()) { QCheckBox *checkBox = new QCheckBox; checkBox->setObjectName(repository.displayname()); connect(checkBox, &QCheckBox::stateChanged, this, @@ -324,8 +324,17 @@ void ComponentSelectionPagePrivate::checkboxStateChanged() } } -void ComponentSelectionPagePrivate::enableRepositoryCategory(int index, bool enable) { - RepositoryCategory repoCategory = m_core->settings().repositoryCategories().toList().at(index); +void ComponentSelectionPagePrivate::enableRepositoryCategory(const QString &repositoryName, bool enable) +{ + QMap<QString, RepositoryCategory> organizedRepositoryCategories = m_core->settings().organizedRepositoryCategories(); + + QMap<QString, RepositoryCategory>::iterator i = organizedRepositoryCategories.find(repositoryName); + RepositoryCategory repoCategory; + while (i != organizedRepositoryCategories.end() && i.key() == repositoryName) { + repoCategory = i.value(); + i++; + } + RepositoryCategory replacement = repoCategory; replacement.setEnabled(enable); QSet<RepositoryCategory> tmpRepoCategories = m_core->settings().repositoryCategories(); @@ -374,7 +383,7 @@ void ComponentSelectionPagePrivate::fetchRepositoryCategories() QList<QCheckBox*> checkboxes = m_categoryGroupBox->findChildren<QCheckBox *>(); for (int i = 0; i < checkboxes.count(); i++) { checkbox = checkboxes.at(i); - enableRepositoryCategory(i, checkbox->isChecked()); + enableRepositoryCategory(checkbox->objectName(), checkbox->isChecked()); } if (!m_core->fetchRemotePackagesTree()) { |