aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2024-11-11 16:19:52 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2024-11-12 08:02:54 +0000
commit16bbe6569cb4b97584ad3dc8ec57af857d1d9275 (patch)
treee175bd5dc617dda52a608e5ba1318e8033b36682
parent0e996b88109dec327932129d3b50bd3029815de5 (diff)
Android: Avoid passing AndroidSdkManager
Use signleton instead. Change-Id: Ic17919c75b7dba8c59f08b93a56edd80ce289252 Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/plugins/android/androidconfigurations.cpp8
-rw-r--r--src/plugins/android/androidconfigurations.h4
-rw-r--r--src/plugins/android/androidsdkmanagerdialog.cpp18
-rw-r--r--src/plugins/android/androidsdkmanagerdialog.h4
-rw-r--r--src/plugins/android/androidsdkmodel.cpp11
-rw-r--r--src/plugins/android/androidsdkmodel.h14
-rw-r--r--src/plugins/android/androidsettingswidget.cpp8
-rw-r--r--src/plugins/android/avddialog.h2
8 files changed, 27 insertions, 42 deletions
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp
index 01752ef7581..92fae451fb6 100644
--- a/src/plugins/android/androidconfigurations.cpp
+++ b/src/plugins/android/androidconfigurations.cpp
@@ -969,7 +969,7 @@ QStringList allEssentials()
return allPackages;
}
-QString optionalSystemImagePackage(AndroidSdkManager *sdkManager)
+QString optionalSystemImagePackage()
{
const QStringList essentialPkgs(allEssentials());
QStringList platforms = Utils::filtered(essentialPkgs, [](const QString &item) {
@@ -998,7 +998,7 @@ QString optionalSystemImagePackage(AndroidSdkManager *sdkManager)
const auto imageName = QLatin1String("%1;android-%2;google_apis_playstore;%3")
.arg(Constants::systemImagesPackageName).arg(apiLevel).arg(hostArch);
- const SdkPlatformList sdkPlatforms = sdkManager->filteredSdkPlatforms(
+ const SdkPlatformList sdkPlatforms = AndroidConfigurations::sdkManager()->filteredSdkPlatforms(
apiLevel, AndroidSdkPackage::AnyValidState);
if (sdkPlatforms.isEmpty())
@@ -1020,10 +1020,10 @@ static QStringList packagesWithoutNdks(const QStringList &packages)
});
}
-bool allEssentialsInstalled(AndroidSdkManager *sdkManager)
+bool allEssentialsInstalled()
{
QStringList essentialPkgs(allEssentials());
- const auto installedPkgs = sdkManager->installedSdkPackages();
+ const auto installedPkgs = AndroidConfigurations::sdkManager()->installedSdkPackages();
for (const AndroidSdkPackage *pkg : installedPkgs) {
if (essentialPkgs.contains(pkg->sdkStylePath()))
essentialPkgs.removeOne(pkg->sdkStylePath());
diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h
index f4fc177c94f..ea67b7b0b6f 100644
--- a/src/plugins/android/androidconfigurations.h
+++ b/src/plugins/android/androidconfigurations.h
@@ -55,10 +55,10 @@ QVersionNumber ndkVersion(const Utils::FilePath &ndkPath);
QUrl sdkToolsUrl();
QByteArray getSdkToolsSha256();
-QString optionalSystemImagePackage(Internal::AndroidSdkManager *sdkManager);
+QString optionalSystemImagePackage();
QStringList allEssentials();
-bool allEssentialsInstalled(Internal::AndroidSdkManager *sdkManager);
+bool allEssentialsInstalled();
bool sdkToolsOk();
Utils::FilePath openJDKLocation();
diff --git a/src/plugins/android/androidsdkmanagerdialog.cpp b/src/plugins/android/androidsdkmanagerdialog.cpp
index f3ef5d68c0b..3359f85dc01 100644
--- a/src/plugins/android/androidsdkmanagerdialog.cpp
+++ b/src/plugins/android/androidsdkmanagerdialog.cpp
@@ -30,10 +30,9 @@ namespace Android::Internal {
class OptionsDialog : public QDialog
{
public:
- OptionsDialog(AndroidSdkManager *sdkManager, QWidget *parent)
+ OptionsDialog(QWidget *parent)
: QDialog(parent)
{
- QTC_CHECK(sdkManager);
resize(800, 480);
setWindowTitle(Tr::tr("SDK Manager Arguments"));
@@ -106,20 +105,17 @@ private:
class AndroidSdkManagerDialog : public QDialog
{
public:
- AndroidSdkManagerDialog(AndroidSdkManager *sdkManager, QWidget *parent);
+ AndroidSdkManagerDialog(QWidget *parent);
private:
AndroidSdkManager *m_sdkManager = nullptr;
AndroidSdkModel *m_sdkModel = nullptr;
};
-AndroidSdkManagerDialog::AndroidSdkManagerDialog(AndroidSdkManager *sdkManager, QWidget *parent)
+AndroidSdkManagerDialog::AndroidSdkManagerDialog(QWidget *parent)
: QDialog(parent)
- , m_sdkManager(sdkManager)
- , m_sdkModel(new AndroidSdkModel(m_sdkManager, this))
+ , m_sdkModel(new AndroidSdkModel(this))
{
- QTC_CHECK(sdkManager);
-
setWindowTitle(Tr::tr("Android SDK Manager"));
resize(664, 396);
setModal(true);
@@ -234,7 +230,7 @@ AndroidSdkManagerDialog::AndroidSdkManagerDialog(AndroidSdkManager *sdkManager,
connect(buttonBox, &QDialogButtonBox::rejected, this, &AndroidSdkManagerDialog::reject);
connect(optionsButton, &QPushButton::clicked, this, [this] {
- OptionsDialog dlg(m_sdkManager, this);
+ OptionsDialog dlg(this);
if (dlg.exec() == QDialog::Accepted) {
QStringList arguments = dlg.sdkManagerArguments();
if (arguments != AndroidConfig::sdkManagerToolArgs()) {
@@ -335,9 +331,9 @@ bool PackageFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sour
return showTopLevel || ((packageState(srcIndex) & m_packageState) && packageFound(srcIndex));
}
-void executeAndroidSdkManagerDialog(AndroidSdkManager *sdkManager, QWidget *parent)
+void executeAndroidSdkManagerDialog(QWidget *parent)
{
- AndroidSdkManagerDialog dialog(sdkManager, parent);
+ AndroidSdkManagerDialog dialog(parent);
dialog.exec();
}
diff --git a/src/plugins/android/androidsdkmanagerdialog.h b/src/plugins/android/androidsdkmanagerdialog.h
index e5e10c6783b..24e4698fc07 100644
--- a/src/plugins/android/androidsdkmanagerdialog.h
+++ b/src/plugins/android/androidsdkmanagerdialog.h
@@ -6,8 +6,6 @@
namespace Android::Internal {
-class AndroidSdkManager;
-
-void executeAndroidSdkManagerDialog(AndroidSdkManager *sdkManager, QWidget *parent);
+void executeAndroidSdkManagerDialog(QWidget *parent);
} // Android::Internal
diff --git a/src/plugins/android/androidsdkmodel.cpp b/src/plugins/android/androidsdkmodel.cpp
index 86dbc320135..6eb4045fbfd 100644
--- a/src/plugins/android/androidsdkmodel.cpp
+++ b/src/plugins/android/androidsdkmodel.cpp
@@ -17,12 +17,11 @@ namespace Internal {
const int packageColCount = 3;
-AndroidSdkModel::AndroidSdkModel(AndroidSdkManager *sdkManager, QObject *parent)
- : QAbstractItemModel(parent),
- m_sdkManager(sdkManager)
+AndroidSdkModel::AndroidSdkModel(QObject *parent)
+ : QAbstractItemModel(parent)
{
- QTC_CHECK(m_sdkManager);
- connect(m_sdkManager, &AndroidSdkManager::packagesReloaded, this, &AndroidSdkModel::refreshData);
+ connect(AndroidConfigurations::sdkManager(), &AndroidSdkManager::packagesReloaded,
+ this, &AndroidSdkModel::refreshData);
refreshData();
}
@@ -275,7 +274,7 @@ void AndroidSdkModel::refreshData()
m_tools.clear();
m_changeState.clear();
beginResetModel();
- for (AndroidSdkPackage *p : m_sdkManager->allSdkPackages()) {
+ for (AndroidSdkPackage *p : AndroidConfigurations::sdkManager()->allSdkPackages()) {
if (p->type() == AndroidSdkPackage::SdkPlatformPackage)
m_sdkPlatforms << static_cast<SdkPlatform *>(p);
else
diff --git a/src/plugins/android/androidsdkmodel.h b/src/plugins/android/androidsdkmodel.h
index 60ecc622275..2137a3e87f1 100644
--- a/src/plugins/android/androidsdkmodel.h
+++ b/src/plugins/android/androidsdkmodel.h
@@ -2,16 +2,12 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
+// TODO: remove
#include "androidconfigurations.h"
#include <QAbstractItemModel>
-#include <memory>
-
-namespace Android {
-namespace Internal {
-
-class AndroidSdkManager;
+namespace Android::Internal {
class AndroidSdkModel : public QAbstractItemModel
{
@@ -27,7 +23,7 @@ public:
PackageStateRole
};
- explicit AndroidSdkModel(AndroidSdkManager *sdkManager, QObject *parent = nullptr);
+ explicit AndroidSdkModel(QObject *parent = nullptr);
// QAbstractItemModel overrides.
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
@@ -47,11 +43,9 @@ public:
private:
void refreshData();
- AndroidSdkManager *m_sdkManager;
QList<const SdkPlatform *> m_sdkPlatforms;
QList<const AndroidSdkPackage *> m_tools;
QSet<const AndroidSdkPackage *> m_changeState;
};
-} // namespace Internal
-} // namespace Android
+} // namespace Android::Internal
diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp
index 080c6d4b379..aa3f3424902 100644
--- a/src/plugins/android/androidsettingswidget.cpp
+++ b/src/plugins/android/androidsettingswidget.cpp
@@ -262,8 +262,8 @@ static expected_str<void> testJavaC(const FilePath &jdkPath)
}
AndroidSettingsWidget::AndroidSettingsWidget()
+ : m_sdkManager(AndroidConfigurations::sdkManager())
{
- m_sdkManager = AndroidConfigurations::sdkManager();
setWindowTitle(Tr::tr("Android Configuration"));
const QIcon downloadIcon = Icons::ONLINE.icon();
@@ -479,7 +479,7 @@ AndroidSettingsWidget::AndroidSettingsWidget()
connect(downloadOpenJdkToolButton, &QAbstractButton::clicked,
this, &AndroidSettingsWidget::openOpenJDKDownloadUrl);
connect(sdkManagerToolButton, &QAbstractButton::clicked, this, [this] {
- executeAndroidSdkManagerDialog(m_sdkManager, this);
+ executeAndroidSdkManagerDialog(this);
});
connect(sdkToolsAutoDownloadButton, &QAbstractButton::clicked,
this, &AndroidSettingsWidget::downloadSdk);
@@ -637,7 +637,7 @@ void AndroidSettingsWidget::validateSdk()
m_androidSummary->setPointValid(PlatformToolsInstalledRow, // TODO: track me
AndroidConfig::adbToolPath().exists());
m_androidSummary->setPointValid(AllEssentialsInstalledRow,
- AndroidConfig::allEssentialsInstalled(m_sdkManager));
+ AndroidConfig::allEssentialsInstalled());
m_androidSummary->setPointValid(BuildToolsInstalledRow,
!AndroidConfig::buildToolsVersion().isNull());
// installedSdkPlatforms should not trigger a package reload as validate SDK is only called
@@ -667,7 +667,7 @@ void AndroidSettingsWidget::validateSdk()
// Add the a system image with highest API level only if there are other
// essentials needed, so it would practicaly be somewhat optional.
if (!missingPkgs.isEmpty()) {
- const QString sysImage = AndroidConfig::optionalSystemImagePackage(m_sdkManager);
+ const QString sysImage = AndroidConfig::optionalSystemImagePackage();
if (!sysImage.isEmpty())
missingPkgs.append(sysImage);
}
diff --git a/src/plugins/android/avddialog.h b/src/plugins/android/avddialog.h
index 55b8d5a4fa8..138b336c4b8 100644
--- a/src/plugins/android/avddialog.h
+++ b/src/plugins/android/avddialog.h
@@ -26,8 +26,6 @@ class SdkPlatform;
namespace Internal {
-class AndroidSdkManager;
-
class AvdDialog : public QDialog
{
public: