Android: Merge Java settings into Android settings

... to save some space.

Change-Id: I68d7cae1b007eff0624f2c0993e191c64fb415fc
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Assam Boudjelthia
2021-09-14 17:33:44 +03:00
parent 53d5bc5a08
commit ca9742e2a1
2 changed files with 92 additions and 133 deletions

View File

@@ -115,23 +115,17 @@ private:
bool m_isInitialReloadDone = false; bool m_isInitialReloadDone = false;
SummaryWidget *m_androidSummary = nullptr; SummaryWidget *m_androidSummary = nullptr;
SummaryWidget *m_javaSummary = nullptr;
SummaryWidget *m_openSslSummary = nullptr; SummaryWidget *m_openSslSummary = nullptr;
}; };
enum JavaValidation {
JavaPathExistsRow,
JavaJdkValidRow
};
enum AndroidValidation { enum AndroidValidation {
SdkPathExistsRow, JavaPathExistsAndWritableRow,
SdkPathWritableRow, SdkPathExistsAndWritableRow,
SdkToolsInstalledRow, SdkToolsInstalledRow,
PlatformToolsInstalledRow, PlatformToolsInstalledRow,
BuildToolsInstalledRow,
SdkManagerSuccessfulRow, SdkManagerSuccessfulRow,
PlatformSdkInstalledRow, PlatformSdkInstalledRow,
BuildToolsInstalledRow,
AllEssentialsInstalledRow, AllEssentialsInstalledRow,
}; };
@@ -288,14 +282,12 @@ AndroidSettingsWidget::AndroidSettingsWidget()
sdkMangerLayout->addWidget(m_sdkManagerWidget); sdkMangerLayout->addWidget(m_sdkManagerWidget);
connect(m_sdkManagerWidget, &AndroidSdkManagerWidget::updatingSdk, [this] { connect(m_sdkManagerWidget, &AndroidSdkManagerWidget::updatingSdk, [this] {
// Disable the top level UI to keep the user from unintentionally interrupting operations // Disable the top level UI to keep the user from unintentionally interrupting operations
m_ui.javaSettingsGroupBox->setEnabled(false);
m_ui.androidSettingsGroupBox->setEnabled(false); m_ui.androidSettingsGroupBox->setEnabled(false);
m_ui.androidOpenSSLSettingsGroupBox->setEnabled(false); m_ui.androidOpenSSLSettingsGroupBox->setEnabled(false);
m_ui.CreateKitCheckBox->setEnabled(false); m_ui.CreateKitCheckBox->setEnabled(false);
m_ui.managerTabWidget->tabBar()->setEnabled(false); m_ui.managerTabWidget->tabBar()->setEnabled(false);
}); });
connect(m_sdkManagerWidget, &AndroidSdkManagerWidget::updatingSdkFinished, [this] { connect(m_sdkManagerWidget, &AndroidSdkManagerWidget::updatingSdkFinished, [this] {
m_ui.javaSettingsGroupBox->setEnabled(true);
m_ui.androidSettingsGroupBox->setEnabled(true); m_ui.androidSettingsGroupBox->setEnabled(true);
m_ui.androidOpenSSLSettingsGroupBox->setEnabled(true); m_ui.androidOpenSSLSettingsGroupBox->setEnabled(true);
m_ui.CreateKitCheckBox->setEnabled(true); m_ui.CreateKitCheckBox->setEnabled(true);
@@ -312,15 +304,10 @@ AndroidSettingsWidget::AndroidSettingsWidget()
}; };
}); });
QMap<int, QString> javaValidationPoints;
javaValidationPoints[JavaPathExistsRow] = tr("JDK path exists.");
javaValidationPoints[JavaJdkValidRow] = tr("JDK path is a valid JDK root folder.");
m_javaSummary = new SummaryWidget(javaValidationPoints, tr("Java Settings are OK."),
tr("Java settings have errors."), m_ui.javaDetailsWidget);
QMap<int, QString> androidValidationPoints; QMap<int, QString> androidValidationPoints;
androidValidationPoints[SdkPathExistsRow] = tr("Android SDK path exists."); androidValidationPoints[SdkPathExistsAndWritableRow] =
androidValidationPoints[SdkPathWritableRow] = tr("Android SDK path writable."); tr("Android SDK path exists and is writable.");
androidValidationPoints[JavaPathExistsAndWritableRow] = tr("JDK path exists and is writable.");
androidValidationPoints[SdkToolsInstalledRow] = tr("SDK tools installed."); androidValidationPoints[SdkToolsInstalledRow] = tr("SDK tools installed.");
androidValidationPoints[PlatformToolsInstalledRow] = tr("Platform tools installed."); androidValidationPoints[PlatformToolsInstalledRow] = tr("Platform tools installed.");
androidValidationPoints[SdkManagerSuccessfulRow] = tr( androidValidationPoints[SdkManagerSuccessfulRow] = tr(
@@ -443,10 +430,9 @@ void AndroidSettingsWidget::validateJdk()
{ {
m_androidConfig.setOpenJDKLocation(m_ui.OpenJDKLocationPathChooser->filePath()); m_androidConfig.setOpenJDKLocation(m_ui.OpenJDKLocationPathChooser->filePath());
bool jdkPathExists = m_androidConfig.openJDKLocation().exists(); bool jdkPathExists = m_androidConfig.openJDKLocation().exists();
m_javaSummary->setPointValid(JavaPathExistsRow, jdkPathExists); const FilePath bin = m_androidConfig.openJDKLocation()
.pathAppended("bin/javac" QTC_HOST_EXE_SUFFIX);
const FilePath bin = m_androidConfig.openJDKLocation().pathAppended("bin/javac" QTC_HOST_EXE_SUFFIX); m_androidSummary->setPointValid(JavaPathExistsAndWritableRow, jdkPathExists && bin.exists());
m_javaSummary->setPointValid(JavaJdkValidRow, jdkPathExists && bin.exists());
updateUI(); updateUI();
@@ -486,8 +472,9 @@ void AndroidSettingsWidget::validateSdk()
const FilePath sdkPath = m_ui.SDKLocationPathChooser->filePath().cleanPath(); const FilePath sdkPath = m_ui.SDKLocationPathChooser->filePath().cleanPath();
m_androidConfig.setSdkLocation(sdkPath); m_androidConfig.setSdkLocation(sdkPath);
m_androidSummary->setPointValid(SdkPathExistsRow, m_androidConfig.sdkLocation().exists()); const FilePath path = m_androidConfig.sdkLocation();
m_androidSummary->setPointValid(SdkPathWritableRow, m_androidConfig.sdkLocation().isWritableDir()); m_androidSummary->setPointValid(SdkPathExistsAndWritableRow,
path.exists() && path.isWritableDir());
m_androidSummary->setPointValid(SdkToolsInstalledRow, m_androidSummary->setPointValid(SdkToolsInstalledRow,
!m_androidConfig.sdkToolsVersion().isNull()); !m_androidConfig.sdkToolsVersion().isNull());
m_androidSummary->setPointValid(PlatformToolsInstalledRow, m_androidSummary->setPointValid(PlatformToolsInstalledRow,
@@ -502,8 +489,7 @@ void AndroidSettingsWidget::validateSdk()
m_androidSummary->setPointValid(AllEssentialsInstalledRow, m_androidSummary->setPointValid(AllEssentialsInstalledRow,
m_androidConfig.allEssentialsInstalled(&m_sdkManager)); m_androidConfig.allEssentialsInstalled(&m_sdkManager));
const bool sdkToolsOk = m_androidSummary->rowsOk({SdkPathExistsRow, const bool sdkToolsOk = m_androidSummary->rowsOk({SdkPathExistsAndWritableRow,
SdkPathWritableRow,
SdkToolsInstalledRow, SdkToolsInstalledRow,
SdkManagerSuccessfulRow}); SdkManagerSuccessfulRow});
const bool componentsOk = m_androidSummary->rowsOk({PlatformToolsInstalledRow, const bool componentsOk = m_androidSummary->rowsOk({PlatformToolsInstalledRow,
@@ -635,8 +621,7 @@ void AndroidSettingsWidget::createKitToggled()
void AndroidSettingsWidget::updateUI() void AndroidSettingsWidget::updateUI()
{ {
const bool javaSetupOk = m_javaSummary->allRowsOk(); const bool sdkToolsOk = m_androidSummary->rowsOk({SdkPathExistsAndWritableRow, SdkToolsInstalledRow});
const bool sdkToolsOk = m_androidSummary->rowsOk({SdkPathExistsRow, SdkPathWritableRow, SdkToolsInstalledRow});
const bool androidSetupOk = m_androidSummary->allRowsOk(); const bool androidSetupOk = m_androidSummary->allRowsOk();
const bool openSslOk = m_openSslSummary->allRowsOk(); const bool openSslOk = m_openSslSummary->allRowsOk();
@@ -649,7 +634,6 @@ void AndroidSettingsWidget::updateUI()
.arg(currentNdk.isEmpty() ? "" : m_androidConfig.ndkVersion(currentNdk).toString()); .arg(currentNdk.isEmpty() ? "" : m_androidConfig.ndkVersion(currentNdk).toString());
m_androidSummary->setInfoText(androidSetupOk ? infoText : ""); m_androidSummary->setInfoText(androidSetupOk ? infoText : "");
m_javaSummary->setSetupOk(javaSetupOk);
m_androidSummary->setSetupOk(androidSetupOk); m_androidSummary->setSetupOk(androidSetupOk);
m_openSslSummary->setSetupOk(openSslOk); m_openSslSummary->setSetupOk(openSslOk);
} }
@@ -668,7 +652,7 @@ void AndroidSettingsWidget::downloadSdk()
auto userInput = QMessageBox::information(this, AndroidSdkDownloader::dialogTitle(), auto userInput = QMessageBox::information(this, AndroidSdkDownloader::dialogTitle(),
message, QMessageBox::Yes | QMessageBox::No); message, QMessageBox::Yes | QMessageBox::No);
if (userInput == QMessageBox::Yes) { if (userInput == QMessageBox::Yes) {
if (m_javaSummary->allRowsOk()) { if (m_androidSummary->rowsOk({JavaPathExistsAndWritableRow})) {
auto javaPath = m_ui.OpenJDKLocationPathChooser->filePath(); auto javaPath = m_ui.OpenJDKLocationPathChooser->filePath();
m_sdkDownloader.downloadAndExtractSdk( m_sdkDownloader.downloadAndExtractSdk(
javaPath, javaPath,

View File

@@ -6,94 +6,24 @@
<string>Android Configuration</string> <string>Android Configuration</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="javaSettingsGroupBox">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="title">
<string>Java Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="Utils::PathChooser" name="OpenJDKLocationPathChooser" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QToolButton" name="downloadOpenJDKToolButton">
<property name="toolTip">
<string>Open JDK download URL in the system's browser.</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="OpenJDKLocationLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>JDK location:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<widget class="Utils::DetailsWidget" name="javaDetailsWidget" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item> <item>
<widget class="QGroupBox" name="androidSettingsGroupBox"> <widget class="QGroupBox" name="androidSettingsGroupBox">
<property name="title"> <property name="title">
<string>Android Settings</string> <string>Android Settings</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<item row="2" column="1" rowspan="3"> <item row="1" column="1">
<widget class="QListWidget" name="ndkListWidget"> <widget class="Utils::PathChooser" name="SDKLocationPathChooser" native="true"/>
<property name="sizeAdjustPolicy"> </item>
<enum>QAbstractScrollArea::AdjustToContents</enum> <item row="1" column="6">
</property> <widget class="QToolButton" name="downloadSDKToolButton">
<property name="iconSize"> <property name="toolTip">
<size> <string>Open Android SDK download URL in the system's browser.</string>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="resizeMode">
<enum>QListView::Adjust</enum>
</property>
<property name="modelColumn">
<number>0</number>
</property>
<property name="sortingEnabled">
<bool>false</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="2" rowspan="3" colspan="4"> <item row="3" column="2" rowspan="3" colspan="4">
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="ndkListControlsLayout">
<item> <item>
<widget class="QPushButton" name="addCustomNdkButton"> <widget class="QPushButton" name="addCustomNdkButton">
<property name="enabled"> <property name="enabled">
@@ -133,7 +63,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<spacer name="verticalSpacer_3"> <spacer name="ndkListControlsSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
@@ -147,24 +77,65 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="5" column="0" colspan="7"> <item row="6" column="0" colspan="7">
<widget class="Utils::DetailsWidget" name="androidDetailsWidget" native="true"/> <widget class="Utils::DetailsWidget" name="androidDetailsWidget" native="true"/>
</item> </item>
<item row="2" column="0"> <item row="3" column="1" rowspan="3">
<widget class="QLabel" name="ndkComboBoxLabel"> <widget class="QListWidget" name="ndkListWidget">
<property name="text"> <property name="sizeAdjustPolicy">
<string>Android NDK list:</string> <enum>QAbstractScrollArea::AdjustToContents</enum>
</property> </property>
</widget> <property name="iconSize">
</item> <size>
<item row="0" column="6"> <width>16</width>
<widget class="QToolButton" name="downloadSDKToolButton"> <height>16</height>
<property name="toolTip"> </size>
<string>Open Android SDK download URL in the system's browser.</string> </property>
<property name="resizeMode">
<enum>QListView::Adjust</enum>
</property>
<property name="modelColumn">
<number>0</number>
</property>
<property name="sortingEnabled">
<bool>false</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="OpenJDKLocationLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>JDK location:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="Utils::PathChooser" name="OpenJDKLocationPathChooser" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="0" column="6">
<widget class="QToolButton" name="downloadOpenJDKToolButton">
<property name="toolTip">
<string>Open JDK download URL in the system's browser.</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="SDKLocationLabel"> <widget class="QLabel" name="SDKLocationLabel">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred"> <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
@@ -180,7 +151,21 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="6"> <item row="1" column="2" colspan="4">
<widget class="QPushButton" name="sdkToolsAutoDownloadButton">
<property name="text">
<string>Set Up SDK</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="ndkComboBoxLabel">
<property name="text">
<string>Android NDK list:</string>
</property>
</widget>
</item>
<item row="3" column="6">
<widget class="QToolButton" name="downloadNDKToolButton"> <widget class="QToolButton" name="downloadNDKToolButton">
<property name="toolTip"> <property name="toolTip">
<string>Open Android NDK download URL in the system's browser.</string> <string>Open Android NDK download URL in the system's browser.</string>
@@ -190,16 +175,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1">
<widget class="Utils::PathChooser" name="SDKLocationPathChooser" native="true"/>
</item>
<item row="0" column="2" colspan="4">
<widget class="QPushButton" name="sdkToolsAutoDownloadButton">
<property name="text">
<string>Set Up SDK</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>