diff options
author | Katja Marttila <katja.marttila@qt.io> | 2018-05-08 11:41:19 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2018-09-10 11:20:24 +0000 |
commit | dd21b05b188ab8ee9aee43556d78d006ca9e7376 (patch) | |
tree | dc20b9eacea9ad975448b6241b5243dff6ea3f38 /src | |
parent | 6c38a975eeb0ebe06e7146fed6cf4bcdf8499b6c (diff) |
Add possibility to check/uncheck repositories with one button click
Task-number: QTIFW-1132
Change-Id: I4d71dedf6f099f8ccc7ecefcfa02cae78d28244b
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/sdk/settingsdialog.cpp | 23 | ||||
-rw-r--r-- | src/sdk/settingsdialog.h | 3 | ||||
-rw-r--r-- | src/sdk/settingsdialog.ui | 16 |
3 files changed, 40 insertions, 2 deletions
diff --git a/src/sdk/settingsdialog.cpp b/src/sdk/settingsdialog.cpp index c4c2c65c3..7e2ba31b9 100644 --- a/src/sdk/settingsdialog.cpp +++ b/src/sdk/settingsdialog.cpp @@ -234,7 +234,10 @@ SettingsDialog::SettingsDialog(PackageManagerCore *core, QWidget *parent) this, &SettingsDialog::currentRepositoryChanged); connect(m_ui->m_testRepository, &QAbstractButton::clicked, this, &SettingsDialog::testRepository); - + connect(m_ui->m_selectAll, &QAbstractButton::clicked, + this, &SettingsDialog::selectAll); + connect(m_ui->m_deselectAll, &QAbstractButton::clicked, + this, &SettingsDialog::deselectAll); useTmpRepositoriesOnly(settings.hasReplacementRepos()); m_ui->m_useTmpRepositories->setChecked(settings.hasReplacementRepos()); m_ui->m_useTmpRepositories->setEnabled(settings.hasReplacementRepos()); @@ -403,7 +406,25 @@ void SettingsDialog::currentRepositoryChanged(QTreeWidgetItem *current, QTreeWid m_ui->m_addRepository->setEnabled((current != m_rootItems.at(0)) & (index == -1)); } } +void SettingsDialog::checkSubTree(QTreeWidgetItem *item, Qt::CheckState state) +{ + if (item->flags() & Qt::ItemIsUserCheckable) + item->setData(1, Qt::CheckStateRole, state); + for (int i = 0; i < item->childCount(); i++) + checkSubTree(item->child(i), state); +} + +void SettingsDialog::selectAll() +{ + for (int i = 0; i < m_ui->m_repositoriesView->topLevelItemCount(); i++) + checkSubTree(m_ui->m_repositoriesView->topLevelItem(i), Qt::Checked); +} +void SettingsDialog::deselectAll() +{ + for (int i = 0; i < m_ui->m_repositoriesView->topLevelItemCount(); i++) + checkSubTree(m_ui->m_repositoriesView->topLevelItem(i), Qt::Unchecked); +} // -- private void SettingsDialog::setupRepositoriesTreeWidget() diff --git a/src/sdk/settingsdialog.h b/src/sdk/settingsdialog.h index eb25a2e87..97bdd0467 100644 --- a/src/sdk/settingsdialog.h +++ b/src/sdk/settingsdialog.h @@ -117,10 +117,13 @@ private slots: void removeRepository(); void useTmpRepositoriesOnly(bool use); void currentRepositoryChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); + void selectAll(); + void deselectAll(); private: void setupRepositoriesTreeWidget(); void insertRepositories(const QSet<QInstaller::Repository> repos, QTreeWidgetItem *rootItem); + void checkSubTree(QTreeWidgetItem *item, Qt::CheckState state); private: Ui::SettingsDialog *m_ui; diff --git a/src/sdk/settingsdialog.ui b/src/sdk/settingsdialog.ui index 3683f3cd1..6645e6460 100644 --- a/src/sdk/settingsdialog.ui +++ b/src/sdk/settingsdialog.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>491</width> + <width>543</width> <height>443</height> </rect> </property> @@ -237,6 +237,20 @@ </widget> </item> <item> + <widget class="QPushButton" name="m_selectAll"> + <property name="text"> + <string>Select All</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="m_deselectAll"> + <property name="text"> + <string>Deselect All</string> + </property> + </widget> + </item> + <item> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> |