diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2024-11-11 16:19:52 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2024-11-12 08:02:54 +0000 |
commit | 16bbe6569cb4b97584ad3dc8ec57af857d1d9275 (patch) | |
tree | e175bd5dc617dda52a608e5ba1318e8033b36682 | |
parent | 0e996b88109dec327932129d3b50bd3029815de5 (diff) |
Android: Avoid passing AndroidSdkManager
Use signleton instead.
Change-Id: Ic17919c75b7dba8c59f08b93a56edd80ce289252
Reviewed-by: hjk <hjk@qt.io>
-rw-r--r-- | src/plugins/android/androidconfigurations.cpp | 8 | ||||
-rw-r--r-- | src/plugins/android/androidconfigurations.h | 4 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmanagerdialog.cpp | 18 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmanagerdialog.h | 4 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmodel.cpp | 11 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmodel.h | 14 | ||||
-rw-r--r-- | src/plugins/android/androidsettingswidget.cpp | 8 | ||||
-rw-r--r-- | src/plugins/android/avddialog.h | 2 |
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: |