Android: Add channel and include_obsolete UI filters to SDK Manager

Allow to filter channels and obsolete packages from the UI.

Change-Id: Ifcaa2a1c3421a15e60f92b7a9b86cc9ab3554885
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Assam Boudjelthia
2021-09-14 20:12:56 +03:00
parent 7ffaa89f02
commit 53d5bc5a08
2 changed files with 109 additions and 0 deletions

View File

@@ -150,6 +150,49 @@ AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidConfig &config,
m_sdkManager->acceptSdkLicense(false);
m_ui->sdkLicensebuttonBox->setEnabled(false); // Wait for next license to enable controls
});
connect(m_ui->oboleteCheckBox, &QCheckBox::stateChanged, [this](int state) {
const QString obsoleteArg = "--include_obsolete";
QStringList args = m_androidConfig.sdkManagerToolArgs();
if (state == Qt::Checked && !args.contains(obsoleteArg)) {
args.append(obsoleteArg);
m_androidConfig.setSdkManagerToolArgs(args);
} else if (state == Qt::Unchecked && args.contains(obsoleteArg)) {
args.removeAll(obsoleteArg);
m_androidConfig.setSdkManagerToolArgs(args);
}
m_sdkManager->reloadPackages(true);
});
connect(m_ui->channelCheckbox, QOverload<int>::of(&QComboBox::currentIndexChanged),
[this](int index) {
QStringList args = m_androidConfig.sdkManagerToolArgs();
QString existingArg;
for (int i = 0; i < 4; ++i) {
const QString arg = "--channel=" + QString::number(i);
if (args.contains(arg)) {
existingArg = arg;
break;
}
}
if (index == 0 && !existingArg.isEmpty()) {
args.removeAll(existingArg);
m_androidConfig.setSdkManagerToolArgs(args);
} else if (index > 0) {
// Add 1 to account for Stable (second item) being channel 0
const QString channelArg = "--channel=" + QString::number(index - 1);
if (existingArg != channelArg) {
if (!existingArg.isEmpty()) {
args.removeAll(existingArg);
m_androidConfig.setSdkManagerToolArgs(args);
}
args.append(channelArg);
m_androidConfig.setSdkManagerToolArgs(args);
}
}
m_sdkManager->reloadPackages(true);
});
}
AndroidSdkManagerWidget::~AndroidSdkManagerWidget()