mirror of
https://github.com/QuasarApp/installer-framework.git
synced 2025-04-27 22:14:32 +00:00
Organize categories alphabetically to ComponentSelectionPage
Task-number: QTIFW-1264 Change-Id: I14a54082c30107d9242632a69d73a637803c6f2d Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
This commit is contained in:
parent
2f30ae55a1
commit
2f55dced31
@ -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()) {
|
||||
|
@ -72,7 +72,7 @@ public slots:
|
||||
void selectAll();
|
||||
void deselectAll();
|
||||
void checkboxStateChanged();
|
||||
void enableRepositoryCategory(int index, bool enable);
|
||||
void enableRepositoryCategory(const QString &repositoryName, bool enable);
|
||||
void updateWidgetVisibility(bool show);
|
||||
void fetchRepositoryCategories();
|
||||
void customButtonClicked(int which);
|
||||
|
@ -584,6 +584,16 @@ QSet<RepositoryCategory> Settings::repositoryCategories() const
|
||||
return variantListToSet<RepositoryCategory>(d->m_data.values(scRepositoryCategories));
|
||||
}
|
||||
|
||||
QMap<QString, RepositoryCategory> Settings::organizedRepositoryCategories() const
|
||||
{
|
||||
QSet<RepositoryCategory> categories = repositoryCategories();
|
||||
QMap<QString, RepositoryCategory> map;
|
||||
foreach (const RepositoryCategory &category, categories) {
|
||||
map.insert(category.displayname(), category);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
void Settings::setDefaultRepositories(const QSet<Repository> &repositories)
|
||||
{
|
||||
d->m_data.remove(scRepositories);
|
||||
|
@ -116,6 +116,7 @@ public:
|
||||
|
||||
QSet<Repository> defaultRepositories() const;
|
||||
QSet<RepositoryCategory> repositoryCategories() const;
|
||||
QMap<QString, RepositoryCategory> organizedRepositoryCategories() const;
|
||||
void setDefaultRepositories(const QSet<Repository> &repositories);
|
||||
void addDefaultRepositories(const QSet<Repository> &repositories);
|
||||
void addRepositoryCategories(const QSet<RepositoryCategory> &repositories);
|
||||
|
Loading…
x
Reference in New Issue
Block a user