forked from qt-creator/qt-creator
Android: Allow users to select which NDK to use for kits
This adds a "Make Default" button next to the NDKs list view. The default NDK version is then used to override the NDK version for all Qt versions in the sdk_definitions.json. Fixes: QTCREATORBUG-21755 Fixes: QTCREATORBUG-22389 Fixes: QTCREATORBUG-24248 Fixes: QTCREATORBUG-26281 Change-Id: I460daafdd7f2d6380c0114bcd14cb0c46226d516 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
@@ -105,6 +105,7 @@ private:
|
||||
|
||||
void downloadSdk();
|
||||
void addCustomNdkItem();
|
||||
bool isDefaultNdkSelected() const;
|
||||
void validateOpenSsl();
|
||||
|
||||
Ui_AndroidSettingsWidget m_ui;
|
||||
@@ -263,6 +264,8 @@ void AndroidSettingsWidget::updateNdkList()
|
||||
}
|
||||
|
||||
m_ui.ndkListWidget->setCurrentRow(0);
|
||||
|
||||
updateUI();
|
||||
}
|
||||
|
||||
void AndroidSettingsWidget::addCustomNdkItem()
|
||||
@@ -287,6 +290,17 @@ void AndroidSettingsWidget::addCustomNdkItem()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool AndroidSettingsWidget::isDefaultNdkSelected() const
|
||||
{
|
||||
if (!m_androidConfig.defaultNdk().isEmpty()) {
|
||||
if (const QListWidgetItem *item = m_ui.ndkListWidget->currentItem()) {
|
||||
return FilePath::fromUserInput(item->text()) == m_androidConfig.defaultNdk();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
AndroidSettingsWidget::AndroidSettingsWidget()
|
||||
{
|
||||
m_ui.setupUi(this);
|
||||
@@ -398,9 +412,18 @@ AndroidSettingsWidget::AndroidSettingsWidget()
|
||||
connect(m_ui.addCustomNdkButton, &QPushButton::clicked, this,
|
||||
&AndroidSettingsWidget::addCustomNdkItem);
|
||||
connect(m_ui.removeCustomNdkButton, &QPushButton::clicked, this, [this] {
|
||||
if (isDefaultNdkSelected())
|
||||
m_androidConfig.setDefaultNdk({});
|
||||
m_androidConfig.removeCustomNdk(m_ui.ndkListWidget->currentItem()->text());
|
||||
m_ui.ndkListWidget->takeItem(m_ui.ndkListWidget->currentRow());
|
||||
});
|
||||
connect(m_ui.makeDefaultNdkButton, &QPushButton::clicked, this, [this] {
|
||||
const FilePath defaultNdk = isDefaultNdkSelected()
|
||||
? FilePath()
|
||||
: FilePath::fromUserInput(m_ui.ndkListWidget->currentItem()->text());
|
||||
m_androidConfig.setDefaultNdk(defaultNdk);
|
||||
updateUI();
|
||||
});
|
||||
|
||||
connect(m_ui.openSslPathChooser, &PathChooser::rawPathChanged,
|
||||
this, &AndroidSettingsWidget::validateOpenSsl);
|
||||
@@ -658,6 +681,22 @@ void AndroidSettingsWidget::updateUI()
|
||||
|
||||
m_androidSummary->setSetupOk(androidSetupOk);
|
||||
m_openSslSummary->setSetupOk(openSslOk);
|
||||
|
||||
// Mark default entry in NDK list widget
|
||||
{
|
||||
const QFont font = m_ui.ndkListWidget->font();
|
||||
QFont markedFont = font;
|
||||
markedFont.setItalic(true);
|
||||
for (int row = 0; row < m_ui.ndkListWidget->count(); ++row) {
|
||||
QListWidgetItem *item = m_ui.ndkListWidget->item(row);
|
||||
const bool isDefaultNdk =
|
||||
FilePath::fromUserInput(item->text()) == m_androidConfig.defaultNdk();
|
||||
item->setFont(isDefaultNdk ? markedFont : font);
|
||||
}
|
||||
}
|
||||
|
||||
m_ui.makeDefaultNdkButton->setText(isDefaultNdkSelected() ? tr("Unset Default")
|
||||
: tr("Make Default"));
|
||||
}
|
||||
|
||||
void AndroidSettingsWidget::downloadSdk()
|
||||
|
||||
Reference in New Issue
Block a user