aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-11-22 18:46:09 +0100
committerhjk <hjk@qt.io>2024-01-24 13:41:13 +0000
commit2beaba4627c6fad778cb7a4262db881ee69f718d (patch)
treefeea5ad6de0f90df018a603e42d503111ad6b984
parentcdb44ea680afe72a1ad6107c9f78ffc16796e612 (diff)
Android: Use more direct access to current config singleton
Change-Id: Ica5ba556ac022fe39ed4439d023cda1742344eed Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
-rw-r--r--src/plugins/android/androidavdmanager.cpp40
-rw-r--r--src/plugins/android/androidavdmanager.h10
-rw-r--r--src/plugins/android/androidbuildapkstep.cpp12
-rw-r--r--src/plugins/android/androidconfigurations.cpp45
-rw-r--r--src/plugins/android/androidconfigurations.h4
-rw-r--r--src/plugins/android/androidcreatekeystorecertificate.cpp2
-rw-r--r--src/plugins/android/androiddebugsupport.cpp6
-rw-r--r--src/plugins/android/androiddeployqtstep.cpp6
-rw-r--r--src/plugins/android/androiddevice.cpp41
-rw-r--r--src/plugins/android/androiddevice.h1
-rw-r--r--src/plugins/android/androidmanager.cpp21
-rw-r--r--src/plugins/android/androidmanifesteditorwidget.cpp2
-rw-r--r--src/plugins/android/androidplugin.cpp2
-rw-r--r--src/plugins/android/androidqmlpreviewworker.cpp12
-rw-r--r--src/plugins/android/androidqtversion.cpp10
-rw-r--r--src/plugins/android/androidrunner.cpp5
-rw-r--r--src/plugins/android/androidrunnerworker.cpp8
-rw-r--r--src/plugins/android/androidsdkdownloader.cpp9
-rw-r--r--src/plugins/android/androidsdkdownloader.h1
-rw-r--r--src/plugins/android/androidsdkmanager.cpp47
-rw-r--r--src/plugins/android/androidsdkmanager.h2
-rw-r--r--src/plugins/android/androidsdkmanagerwidget.cpp26
-rw-r--r--src/plugins/android/androidsdkmanagerwidget.h4
-rw-r--r--src/plugins/android/androidsdkmodel.cpp6
-rw-r--r--src/plugins/android/androidsdkmodel.h4
-rw-r--r--src/plugins/android/androidsettingswidget.cpp95
-rw-r--r--src/plugins/android/androidsignaloperation.cpp2
-rw-r--r--src/plugins/android/androidtoolchain.cpp13
-rw-r--r--src/plugins/android/avddialog.cpp13
-rw-r--r--src/plugins/android/avddialog.h3
-rw-r--r--src/plugins/android/javalanguageserver.cpp2
31 files changed, 204 insertions, 250 deletions
diff --git a/src/plugins/android/androidavdmanager.cpp b/src/plugins/android/androidavdmanager.cpp
index 25a73bcf5c..a939fb5910 100644
--- a/src/plugins/android/androidavdmanager.cpp
+++ b/src/plugins/android/androidavdmanager.cpp
@@ -35,11 +35,11 @@ static Q_LOGGING_CATEGORY(avdManagerLog, "qtc.android.avdManager", QtWarningMsg)
\c true if the command is successfully executed. Output is copied into \a output. The function
blocks the calling thread.
*/
-bool AndroidAvdManager::avdManagerCommand(const AndroidConfig &config, const QStringList &args, QString *output)
+bool AndroidAvdManager::avdManagerCommand(const QStringList &args, QString *output)
{
- CommandLine cmd(config.avdManagerToolPath(), args);
+ CommandLine cmd(androidConfig().avdManagerToolPath(), args);
Process proc;
- proc.setEnvironment(config.toolsEnvironment());
+ proc.setEnvironment(androidConfig().toolsEnvironment());
qCDebug(avdManagerLog).noquote() << "Running AVD Manager command:" << cmd.toUserOutput();
proc.setCommand(cmd);
proc.runBlocking();
@@ -61,7 +61,7 @@ static bool checkForTimeout(const chrono::steady_clock::time_point &start,
return timedOut;
}
-static CreateAvdInfo createAvdCommand(const AndroidConfig &config, const CreateAvdInfo &info)
+static CreateAvdInfo createAvdCommand(const CreateAvdInfo &info)
{
CreateAvdInfo result = info;
@@ -72,7 +72,7 @@ static CreateAvdInfo createAvdCommand(const AndroidConfig &config, const CreateA
return result;
}
- CommandLine avdManager(config.avdManagerToolPath(), {"create", "avd", "-n", result.name});
+ CommandLine avdManager(androidConfig().avdManagerToolPath(), {"create", "avd", "-n", result.name});
avdManager.addArgs({"-k", result.systemImage->sdkStylePath()});
if (result.sdcardSize > 0)
@@ -87,7 +87,7 @@ static CreateAvdInfo createAvdCommand(const AndroidConfig &config, const CreateA
qCDebug(avdManagerLog).noquote() << "Running AVD Manager command:" << avdManager.toUserOutput();
Process proc;
proc.setProcessMode(ProcessMode::Writer);
- proc.setEnvironment(config.toolsEnvironment());
+ proc.setEnvironment(androidConfig().toolsEnvironment());
proc.setCommand(avdManager);
proc.start();
if (!proc.waitForStarted()) {
@@ -129,17 +129,13 @@ static CreateAvdInfo createAvdCommand(const AndroidConfig &config, const CreateA
return result;
}
-AndroidAvdManager::AndroidAvdManager(const AndroidConfig &config)
- : m_config(config)
-{
-
-}
+AndroidAvdManager::AndroidAvdManager() = default;
AndroidAvdManager::~AndroidAvdManager() = default;
QFuture<CreateAvdInfo> AndroidAvdManager::createAvd(CreateAvdInfo info) const
{
- return Utils::asyncRun(&createAvdCommand, m_config, info);
+ return Utils::asyncRun(&createAvdCommand, info);
}
static void avdConfigEditManufacturerTag(const FilePath &avdPath, bool recoverMode = false)
@@ -168,7 +164,7 @@ static void avdConfigEditManufacturerTag(const FilePath &avdPath, bool recoverMo
saver.finalize();
}
-static AndroidDeviceInfoList listVirtualDevices(const AndroidConfig &config)
+static AndroidDeviceInfoList listVirtualDevices()
{
QString output;
AndroidDeviceInfoList avdList;
@@ -184,9 +180,9 @@ static AndroidDeviceInfoList listVirtualDevices(const AndroidConfig &config)
FilePaths avdErrorPaths;
do {
- if (!AndroidAvdManager::avdManagerCommand(config, {"list", "avd"}, &output)) {
+ if (!AndroidAvdManager::avdManagerCommand({"list", "avd"}, &output)) {
qCDebug(avdManagerLog)
- << "Avd list command failed" << output << config.sdkToolsVersion();
+ << "Avd list command failed" << output << androidConfig().sdkToolsVersion();
return {};
}
@@ -205,7 +201,7 @@ static AndroidDeviceInfoList listVirtualDevices(const AndroidConfig &config)
QFuture<AndroidDeviceInfoList> AndroidAvdManager::avdList() const
{
- return Utils::asyncRun(listVirtualDevices, m_config);
+ return Utils::asyncRun(listVirtualDevices);
}
QString AndroidAvdManager::startAvd(const QString &name) const
@@ -233,7 +229,7 @@ static bool is32BitUserSpace()
bool AndroidAvdManager::startAvdAsync(const QString &avdName) const
{
- const FilePath emulator = m_config.emulatorToolPath();
+ const FilePath emulator = androidConfig().emulatorToolPath();
if (!emulator.exists()) {
QMetaObject::invokeMethod(Core::ICore::mainWindow(), [emulator] {
QMessageBox::critical(Core::ICore::dialogParent(),
@@ -263,11 +259,11 @@ bool AndroidAvdManager::startAvdAsync(const QString &avdName) const
});
// start the emulator
- CommandLine cmd(m_config.emulatorToolPath());
+ CommandLine cmd(androidConfig().emulatorToolPath());
if (is32BitUserSpace())
cmd.addArg("-force-32bit");
- cmd.addArgs(m_config.emulatorArgs(), CommandLine::Raw);
+ cmd.addArgs(androidConfig().emulatorArgs(), CommandLine::Raw);
cmd.addArgs({"-avd", avdName});
qCDebug(avdManagerLog).noquote() << "Running command (startAvdAsync):" << cmd.toUserOutput();
avdProcess->setCommand(cmd);
@@ -277,7 +273,7 @@ bool AndroidAvdManager::startAvdAsync(const QString &avdName) const
QString AndroidAvdManager::findAvd(const QString &avdName) const
{
- const QVector<AndroidDeviceInfo> devices = m_config.connectedDevices();
+ const QVector<AndroidDeviceInfo> devices = androidConfig().connectedDevices();
for (const AndroidDeviceInfo &device : devices) {
if (device.type != ProjectExplorer::IDevice::Emulator)
continue;
@@ -309,7 +305,7 @@ bool AndroidAvdManager::isAvdBooted(const QString &device) const
QStringList arguments = AndroidDeviceInfo::adbSelector(device);
arguments << "shell" << "getprop" << "init.svc.bootanim";
- const CommandLine command({m_config.adbToolPath(), arguments});
+ const CommandLine command({androidConfig().adbToolPath(), arguments});
qCDebug(avdManagerLog).noquote() << "Running command (isAvdBooted):" << command.toUserOutput();
Process adbProc;
adbProc.setCommand(command);
@@ -330,7 +326,7 @@ bool AndroidAvdManager::waitForBooted(const QString &serialNumber,
if (isAvdBooted(serialNumber))
return true;
QThread::sleep(2);
- if (!m_config.isConnected(serialNumber)) // device was disconnected
+ if (!androidConfig().isConnected(serialNumber)) // device was disconnected
return false;
}
return false;
diff --git a/src/plugins/android/androidavdmanager.h b/src/plugins/android/androidavdmanager.h
index 807bf2258e..4cf9a8d81d 100644
--- a/src/plugins/android/androidavdmanager.h
+++ b/src/plugins/android/androidavdmanager.h
@@ -13,7 +13,7 @@ namespace Android::Internal {
class AndroidAvdManager
{
public:
- AndroidAvdManager(const AndroidConfig& config = AndroidConfigurations::currentConfig());
+ AndroidAvdManager();
~AndroidAvdManager();
QFuture<CreateAvdInfo> createAvd(CreateAvdInfo info) const;
@@ -24,16 +24,10 @@ public:
QString findAvd(const QString &avdName) const;
QString waitForAvd(const QString &avdName, const std::optional<QFuture<void>> &future = {}) const;
bool isAvdBooted(const QString &device) const;
- static bool avdManagerCommand(const AndroidConfig &config,
- const QStringList &args,
- QString *output);
- const AndroidConfig &config() const { return m_config; }
+ static bool avdManagerCommand(const QStringList &args, QString *output);
private:
bool waitForBooted(const QString &serialNumber, const std::optional<QFuture<void>> &future = {}) const;
-
-private:
- const AndroidConfig &m_config;
};
} // Android::Internal
diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp
index 107cc7844f..34c6a9b619 100644
--- a/src/plugins/android/androidbuildapkstep.cpp
+++ b/src/plugins/android/androidbuildapkstep.cpp
@@ -414,7 +414,7 @@ bool AndroidBuildApkWidget::isOpenSslLibsIncluded()
QString AndroidBuildApkWidget::openSslIncludeFileContent(const FilePath &projectPath)
{
- QString openSslPath = AndroidConfigurations::currentConfig().openSslLocation().toString();
+ QString openSslPath = androidConfig().openSslLocation().toString();
if (projectPath.endsWith(".pro"))
return "android: include(" + openSslPath + "/openssl.pri)";
if (projectPath.endsWith("CMakeLists.txt"))
@@ -540,7 +540,7 @@ bool AndroidBuildApkStep::init()
QStringList arguments = {"--input", m_inputFile.path(),
"--output", outputDir.path(),
"--android-platform", m_buildTargetSdk,
- "--jdk", AndroidConfigurations::currentConfig().openJDKLocation().path()};
+ "--jdk", androidConfig().openJDKLocation().path()};
if (verboseOutput())
arguments << "--verbose";
@@ -928,17 +928,17 @@ QVariant AndroidBuildApkStep::data(Utils::Id id) const
{
if (id == Constants::AndroidNdkPlatform) {
if (auto qtVersion = QtKitAspect::qtVersion(kit()))
- return AndroidConfigurations::currentConfig()
+ return androidConfig()
.bestNdkPlatformMatch(AndroidManager::minimumSDK(target()), qtVersion);
return {};
}
if (id == Constants::NdkLocation) {
if (auto qtVersion = QtKitAspect::qtVersion(kit()))
- return QVariant::fromValue(AndroidConfigurations::currentConfig().ndkLocation(qtVersion));
+ return QVariant::fromValue(androidConfig().ndkLocation(qtVersion));
return {};
}
if (id == Constants::SdkLocation)
- return QVariant::fromValue(AndroidConfigurations::currentConfig().sdkLocation());
+ return QVariant::fromValue(androidConfig().sdkLocation());
if (id == Constants::AndroidMkSpecAbis)
return AndroidManager::applicationAbis(target());
@@ -999,7 +999,7 @@ QAbstractItemModel *AndroidBuildApkStep::keystoreCertificates()
"-storepass", m_keystorePasswd, "-J-Duser.language=en"};
Process keytoolProc;
- keytoolProc.setCommand({AndroidConfigurations::currentConfig().keytoolPath(), params});
+ keytoolProc.setCommand({androidConfig().keytoolPath(), params});
using namespace std::chrono_literals;
keytoolProc.runBlocking(30s, EventLoopMode::On);
if (keytoolProc.result() > ProcessResult::FinishedWithError)
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp
index 40fe9b76a1..2b0bd9492e 100644
--- a/src/plugins/android/androidconfigurations.cpp
+++ b/src/plugins/android/androidconfigurations.cpp
@@ -661,8 +661,7 @@ bool AndroidConfig::isConnected(const QString &serialNumber) const
QString AndroidConfig::getDeviceProperty(const QString &device, const QString &property)
{
// workaround for '????????????' serial numbers
- CommandLine cmd(AndroidConfigurations::currentConfig().adbToolPath(),
- AndroidDeviceInfo::adbSelector(device));
+ CommandLine cmd(androidConfig().adbToolPath(), AndroidDeviceInfo::adbSelector(device));
cmd.addArgs({"shell", "getprop", property});
Process adbProc;
@@ -736,7 +735,7 @@ QString AndroidConfig::getProductModel(const QString &device) const
QStringList AndroidConfig::getAbis(const QString &device)
{
- const FilePath adbTool = AndroidConfigurations::currentConfig().adbToolPath();
+ const FilePath adbTool = androidConfig().adbToolPath();
QStringList result;
// First try via ro.product.cpu.abilist
QStringList arguments = AndroidDeviceInfo::adbSelector(device);
@@ -1103,7 +1102,7 @@ FilePath AndroidConfig::defaultSdkPath()
AndroidConfigurations *m_instance = nullptr;
AndroidConfigurations::AndroidConfigurations()
- : m_sdkManager(new AndroidSdkManager(m_config))
+ : m_sdkManager(new AndroidSdkManager)
{
load();
connect(DeviceManager::instance(), &DeviceManager::devicesLoaded,
@@ -1115,7 +1114,7 @@ AndroidConfigurations::AndroidConfigurations()
void AndroidConfigurations::setConfig(const AndroidConfig &devConfigs)
{
emit m_instance->aboutToUpdate();
- m_instance->m_config = devConfigs;
+ androidConfig() = devConfigs;
m_instance->save();
updateAndroidDevice();
@@ -1170,12 +1169,12 @@ void AndroidConfigurations::removeUnusedDebuggers()
QVector<FilePath> uniqueNdks;
for (const QtVersion *qt : qtVersions) {
- FilePath ndkLocation = currentConfig().ndkLocation(qt);
+ FilePath ndkLocation = androidConfig().ndkLocation(qt);
if (!uniqueNdks.contains(ndkLocation))
uniqueNdks.append(ndkLocation);
}
- uniqueNdks.append(FileUtils::toFilePathList(currentConfig().getCustomNdkList()));
+ uniqueNdks.append(FileUtils::toFilePathList(androidConfig().getCustomNdkList()));
const QList<Debugger::DebuggerItem> allDebuggers = Debugger::DebuggerItemManager::debuggers();
for (const Debugger::DebuggerItem &debugger : allDebuggers) {
@@ -1239,16 +1238,15 @@ static QVariant findOrRegisterDebugger(Toolchain *tc,
const QStringList &abisList,
bool customDebugger = false)
{
- const auto &currentConfig = AndroidConfigurations::currentConfig();
const FilePath ndk = static_cast<AndroidToolchain *>(tc)->ndkLocation();
- const FilePath lldbCommand = currentConfig.lldbPathFromNdk(ndk);
+ const FilePath lldbCommand = androidConfig().lldbPathFromNdk(ndk);
const Debugger::DebuggerItem *existingLldb = existingDebugger(lldbCommand,
Debugger::LldbEngineType);
// Return existing debugger with same command - prefer lldb (limit to sdk/ndk min version?)
if (existingLldb)
return existingLldb->id();
- const FilePath gdbCommand = currentConfig.gdbPathFromNdk(tc->targetAbi(), ndk);
+ const FilePath gdbCommand = androidConfig().gdbPathFromNdk(tc->targetAbi(), ndk);
// check if the debugger is already registered, but ignoring the display name
const Debugger::DebuggerItem *existingGdb = existingDebugger(gdbCommand,
@@ -1268,7 +1266,7 @@ static QVariant findOrRegisterDebugger(Toolchain *tc,
debugger.setEngineType(Debugger::LldbEngineType);
debugger.setUnexpandedDisplayName(custom + mainName
.arg(getMultiOrSingleAbiString(allSupportedAbis()))
- .arg(AndroidConfigurations::currentConfig().ndkVersion(ndk).toString())
+ .arg(androidConfig().ndkVersion(ndk).toString())
+ ' ' + debugger.engineTypeName());
debugger.setAutoDetected(true);
debugger.reinitializeFromFile();
@@ -1287,10 +1285,10 @@ static QVariant findOrRegisterDebugger(Toolchain *tc,
debugger.setEngineType(Debugger::GdbEngineType);
// NDK 10 and older have multiple gdb versions per ABI, so check for that.
- const bool oldNdkVersion = currentConfig.ndkVersion(ndk) <= QVersionNumber{11};
+ const bool oldNdkVersion = androidConfig().ndkVersion(ndk) <= QVersionNumber{11};
debugger.setUnexpandedDisplayName(custom + mainName
.arg(getMultiOrSingleAbiString(oldNdkVersion ? abisList : allSupportedAbis()))
- .arg(AndroidConfigurations::currentConfig().ndkVersion(ndk).toString())
+ .arg(androidConfig().ndkVersion(ndk).toString())
+ ' ' + debugger.engineTypeName());
debugger.setAutoDetected(true);
debugger.reinitializeFromFile();
@@ -1303,7 +1301,7 @@ void AndroidConfigurations::registerCustomToolchainsAndDebuggers()
const Toolchains existingAndroidToolchains = ToolchainManager::toolchains(
Utils::equal(&Toolchain::typeId, Utils::Id(Constants::ANDROID_TOOLCHAIN_TYPEID)));
- const FilePaths customNdks = FileUtils::toFilePathList(currentConfig().getCustomNdkList());
+ const FilePaths customNdks = FileUtils::toFilePathList(androidConfig().getCustomNdkList());
const Toolchains customToolchains
= autodetectToolchainsFromNdks(existingAndroidToolchains, customNdks, true);
@@ -1322,8 +1320,8 @@ void AndroidConfigurations::updateAutomaticKitList()
if (DeviceTypeKitAspect::deviceTypeId(k) == Constants::ANDROID_DEVICE_TYPE) {
if (k->value(Constants::ANDROID_KIT_NDK).isNull() || k->value(Constants::ANDROID_KIT_SDK).isNull()) {
if (QtVersion *qt = QtKitAspect::qtVersion(k)) {
- k->setValueSilently(Constants::ANDROID_KIT_NDK, currentConfig().ndkLocation(qt).toString());
- k->setValue(Constants::ANDROID_KIT_SDK, currentConfig().sdkLocation().toString());
+ k->setValueSilently(Constants::ANDROID_KIT_NDK, androidConfig().ndkLocation(qt).toString());
+ k->setValue(Constants::ANDROID_KIT_SDK, androidConfig().sdkLocation().toString());
}
}
}
@@ -1363,7 +1361,7 @@ void AndroidConfigurations::updateAutomaticKitList()
for (const QtVersion *qt : qtVersionsForArch.value(tc->targetAbi())) {
FilePath tcNdk = static_cast<const AndroidToolchain *>(tc)->ndkLocation();
- if (tcNdk != currentConfig().ndkLocation(qt))
+ if (tcNdk != androidConfig().ndkLocation(qt))
continue;
const Toolchains allLanguages
@@ -1405,8 +1403,8 @@ void AndroidConfigurations::updateAutomaticKitList()
k->setUnexpandedDisplayName(Tr::tr("Android %1 Clang %2")
.arg(versionStr)
.arg(getMultiOrSingleAbiString(abis)));
- k->setValueSilently(Constants::ANDROID_KIT_NDK, currentConfig().ndkLocation(qt).toString());
- k->setValueSilently(Constants::ANDROID_KIT_SDK, currentConfig().sdkLocation().toString());
+ k->setValueSilently(Constants::ANDROID_KIT_NDK, androidConfig().ndkLocation(qt).toString());
+ k->setValueSilently(Constants::ANDROID_KIT_SDK, androidConfig().sdkLocation().toString());
};
if (existingKit) {
@@ -1434,9 +1432,10 @@ Environment AndroidConfig::toolsEnvironment() const
return env;
}
-AndroidConfig &AndroidConfigurations::currentConfig()
+AndroidConfig &androidConfig()
{
- return m_instance->m_config; // ensure that m_instance is initialized
+ static AndroidConfig theCurrentConfig;
+ return theCurrentConfig;
}
AndroidSdkManager *AndroidConfigurations::sdkManager()
@@ -1453,7 +1452,7 @@ void AndroidConfigurations::save()
{
QtcSettings *settings = Core::ICore::settings();
settings->beginGroup(SettingsGroup);
- m_config.save(*settings);
+ androidConfig().save(*settings);
settings->endGroup();
}
@@ -1540,7 +1539,7 @@ void AndroidConfigurations::load()
{
QtcSettings *settings = Core::ICore::settings();
settings->beginGroup(SettingsGroup);
- m_config.load(*settings);
+ androidConfig().load(*settings);
settings->endGroup();
}
diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h
index f0149b2299..2aeb343ff8 100644
--- a/src/plugins/android/androidconfigurations.h
+++ b/src/plugins/android/androidconfigurations.h
@@ -175,12 +175,13 @@ private:
mutable QHash<QString, QString> m_serialNumberToDeviceName;
};
+AndroidConfig &androidConfig();
+
class AndroidConfigurations : public QObject
{
Q_OBJECT
public:
- static AndroidConfig &currentConfig();
static Internal::AndroidSdkManager *sdkManager();
static void setConfig(const AndroidConfig &config);
static AndroidConfigurations *instance();
@@ -204,7 +205,6 @@ private:
void save();
static void updateAndroidDevice();
- AndroidConfig m_config;
std::unique_ptr<Internal::AndroidSdkManager> m_sdkManager;
};
diff --git a/src/plugins/android/androidcreatekeystorecertificate.cpp b/src/plugins/android/androidcreatekeystorecertificate.cpp
index ba40391610..7a6fd7cf59 100644
--- a/src/plugins/android/androidcreatekeystorecertificate.cpp
+++ b/src/plugins/android/androidcreatekeystorecertificate.cpp
@@ -262,7 +262,7 @@ void AndroidCreateKeystoreCertificate::buttonBoxAccepted()
if (!m_stateNameLineEdit->text().isEmpty())
distinguishedNames += QLatin1String(", S=") + m_stateNameLineEdit->text().replace(',', QLatin1String("\\,"));
- const CommandLine command(AndroidConfigurations::currentConfig().keytoolPath(),
+ const CommandLine command(androidConfig().keytoolPath(),
{ "-genkey", "-keyalg", "RSA",
"-keystore", m_keystoreFilePath.toString(),
"-storepass", keystorePassword(),
diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp
index f4ef4cc030..2f016eb23a 100644
--- a/src/plugins/android/androiddebugsupport.cpp
+++ b/src/plugins/android/androiddebugsupport.cpp
@@ -111,8 +111,7 @@ void AndroidDebugSupport::start()
QtSupport::QtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(kit);
if (!HostOsInfo::isWindowsHost()
&& (qtVersion
- && AndroidConfigurations::currentConfig().ndkVersion(qtVersion)
- >= QVersionNumber(11, 0, 0))) {
+ && androidConfig().ndkVersion(qtVersion) >= QVersionNumber(11, 0, 0))) {
qCDebug(androidDebugSupportLog) << "UseTargetAsync: " << true;
setUseTargetAsync(true);
}
@@ -166,8 +165,7 @@ void AndroidDebugSupport::start()
int sdkVersion = qMax(AndroidManager::minimumSDK(kit), minimumNdk);
if (qtVersion) {
- const FilePath ndkLocation =
- AndroidConfigurations::currentConfig().ndkLocation(qtVersion);
+ const FilePath ndkLocation = androidConfig().ndkLocation(qtVersion);
FilePath sysRoot = ndkLocation
/ "platforms"
/ QString("android-%1").arg(sdkVersion)
diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp
index 585d37a273..4a5f1dc97e 100644
--- a/src/plugins/android/androiddeployqtstep.cpp
+++ b/src/plugins/android/androiddeployqtstep.cpp
@@ -288,7 +288,7 @@ bool AndroidDeployQtStep::init()
m_apkPath = FilePath::fromString(node->data(Constants::AndroidApk).toString());
if (!m_apkPath.isEmpty()) {
m_manifestName = FilePath::fromString(node->data(Constants::AndroidManifest).toString());
- m_command = AndroidConfigurations::currentConfig().adbToolPath();
+ m_command = androidConfig().adbToolPath();
AndroidManager::setManifestPath(target(), m_manifestName);
} else {
QString jsonFile = AndroidQtVersion::androidDeploymentSettings(target()).toString();
@@ -326,13 +326,13 @@ bool AndroidDeployQtStep::init()
}
} else {
m_uninstallPreviousPackageRun = true;
- m_command = AndroidConfigurations::currentConfig().adbToolPath();
+ m_command = androidConfig().adbToolPath();
m_apkPath = AndroidManager::packagePath(target());
m_workingDirectory = bc ? AndroidManager::buildDirectory(target()): FilePath();
}
m_environment = bc ? bc->environment() : Environment();
- m_adbPath = AndroidConfigurations::currentConfig().adbToolPath();
+ m_adbPath = androidConfig().adbToolPath();
AndroidAvdManager avdManager;
// Start the AVD if not running.
diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp
index 6d2afc85b1..cd08216321 100644
--- a/src/plugins/android/androiddevice.cpp
+++ b/src/plugins/android/androiddevice.cpp
@@ -244,7 +244,7 @@ AndroidDeviceInfo AndroidDevice::androidDeviceInfoFromIDevice(const IDevice *dev
QString AndroidDevice::displayNameFromInfo(const AndroidDeviceInfo &info)
{
return info.type == IDevice::Hardware
- ? AndroidConfigurations::currentConfig().getProductModel(info.serialNumber)
+ ? androidConfig().getProductModel(info.serialNumber)
: info.avdName;
}
@@ -412,7 +412,7 @@ void AndroidDevice::initAvdSettings()
void AndroidDeviceManager::updateAvdsList()
{
- if (!m_avdsFutureWatcher.isRunning() && m_androidConfig.adbToolPath().exists())
+ if (!m_avdsFutureWatcher.isRunning() && androidConfig().adbToolPath().exists())
m_avdsFutureWatcher.setFuture(m_avdManager.avdList());
}
@@ -474,10 +474,9 @@ void AndroidDeviceManager::eraseAvd(const IDevice::Ptr &device, QWidget *parent)
qCDebug(androidDeviceLog) << QString("Erasing Android AVD \"%1\" from the system.").arg(name);
m_removeAvdProcess.reset(new Process);
- const AndroidConfig &config = m_avdManager.config();
- const CommandLine command(config.avdManagerToolPath(), {"delete", "avd", "-n", name});
+ const CommandLine command(androidConfig().avdManagerToolPath(), {"delete", "avd", "-n", name});
qCDebug(androidDeviceLog).noquote() << "Running command (removeAvd):" << command.toUserOutput();
- m_removeAvdProcess->setEnvironment(config.toolsEnvironment());
+ m_removeAvdProcess->setEnvironment(androidConfig().toolsEnvironment());
m_removeAvdProcess->setCommand(command);
connect(m_removeAvdProcess.get(), &Process::done, this, [this, device] {
const QString name = device->displayName();
@@ -572,7 +571,7 @@ void AndroidDeviceManager::setEmulatorArguments(QWidget *parent)
dialog.setLabelText(Tr::tr("Emulator command-line startup options "
"(<a href=\"%1\">Help Web Page</a>):")
.arg(helpUrl));
- dialog.setTextValue(m_androidConfig.emulatorArgs());
+ dialog.setTextValue(androidConfig().emulatorArgs());
if (auto label = dialog.findChild<QLabel*>()) {
label->setOpenExternalLinks(true);
@@ -582,12 +581,12 @@ void AndroidDeviceManager::setEmulatorArguments(QWidget *parent)
if (dialog.exec() != QDialog::Accepted)
return;
- m_androidConfig.setEmulatorArgs(dialog.textValue());
+ androidConfig().setEmulatorArgs(dialog.textValue());
}
QString AndroidDeviceManager::getRunningAvdsSerialNumber(const QString &name) const
{
- for (const AndroidDeviceInfo &dev : m_androidConfig.connectedDevices()) {
+ for (const AndroidDeviceInfo &dev : androidConfig().connectedDevices()) {
if (!dev.serialNumber.startsWith("emulator"))
continue;
const QString stdOut = emulatorName(dev.serialNumber);
@@ -603,7 +602,7 @@ QString AndroidDeviceManager::getRunningAvdsSerialNumber(const QString &name) co
void AndroidDeviceManager::setupDevicesWatcher()
{
- if (!m_androidConfig.adbToolPath().exists()) {
+ if (!androidConfig().adbToolPath().exists()) {
qCDebug(androidDeviceLog) << "Cannot start ADB device watcher"
<< "because adb path does not exist.";
return;
@@ -635,10 +634,10 @@ void AndroidDeviceManager::setupDevicesWatcher()
HandleDevicesListChange(output);
});
- const CommandLine command = CommandLine(m_androidConfig.adbToolPath(), {"track-devices"});
+ const CommandLine command = CommandLine(androidConfig().adbToolPath(), {"track-devices"});
m_adbDeviceWatcherProcess->setCommand(command);
m_adbDeviceWatcherProcess->setWorkingDirectory(command.executable().parentDir());
- m_adbDeviceWatcherProcess->setEnvironment(m_androidConfig.toolsEnvironment());
+ m_adbDeviceWatcherProcess->setEnvironment(androidConfig().toolsEnvironment());
m_adbDeviceWatcherProcess->start();
// Setup AVD filesystem watcher to listen for changes when an avd is created/deleted,
@@ -772,7 +771,7 @@ void AndroidDeviceManager::HandleDevicesListChange(const QString &serialNumber)
devMgr->setDeviceState(avdId, state);
} else {
const Id id = Id(Constants::ANDROID_DEVICE_ID).withSuffix(':' + serial);
- QString displayName = AndroidConfigurations::currentConfig().getProductModel(serial);
+ QString displayName = androidConfig().getProductModel(serial);
// Check if the device is connected via WiFi. A sample serial of such devices can be
// like: "192.168.1.190:5555"
static const auto ipRegex = QRegularExpression(ipRegexStr + QStringLiteral(":(\\d{1,5})"));
@@ -794,8 +793,8 @@ void AndroidDeviceManager::HandleDevicesListChange(const QString &serialNumber)
newDev->setDeviceState(state);
newDev->setExtraData(Constants::AndroidSerialNumber, serial);
- newDev->setExtraData(Constants::AndroidCpuAbi, m_androidConfig.getAbis(serial));
- newDev->setExtraData(Constants::AndroidSdk, m_androidConfig.getSDKVersion(serial));
+ newDev->setExtraData(Constants::AndroidCpuAbi, androidConfig().getAbis(serial));
+ newDev->setExtraData(Constants::AndroidSdk, androidConfig().getSDKVersion(serial));
qCDebug(androidDeviceLog, "Registering new Android device id \"%s\".",
newDev->id().toString().toUtf8().data());
@@ -812,9 +811,7 @@ AndroidDeviceManager *AndroidDeviceManager::instance()
}
AndroidDeviceManager::AndroidDeviceManager(QObject *parent)
- : QObject(parent),
- m_androidConfig(AndroidConfigurations::currentConfig()),
- m_avdManager(m_androidConfig)
+ : QObject(parent)
{
QTC_ASSERT(!s_instance, return);
s_instance = this;
@@ -833,16 +830,15 @@ class AndroidDeviceFactory final : public ProjectExplorer::IDeviceFactory
{
public:
AndroidDeviceFactory()
- : IDeviceFactory(Constants::ANDROID_DEVICE_TYPE),
- m_androidConfig(AndroidConfigurations::currentConfig())
+ : IDeviceFactory(Constants::ANDROID_DEVICE_TYPE)
{
setDisplayName(Tr::tr("Android Device"));
setCombinedIcon(":/android/images/androiddevicesmall.png",
":/android/images/androiddevice.png");
setConstructionFunction(&AndroidDevice::create);
- if (m_androidConfig.sdkToolsOk()) {
+ if (androidConfig().sdkToolsOk()) {
setCreator([this] {
- AvdDialog dialog = AvdDialog(m_androidConfig, Core::ICore::dialogParent());
+ AvdDialog dialog = AvdDialog(Core::ICore::dialogParent());
if (dialog.exec() != QDialog::Accepted)
return IDevice::Ptr();
@@ -859,9 +855,6 @@ public:
});
}
}
-
-private:
- const AndroidConfig &m_androidConfig;
};
void setupAndroidDevice()
diff --git a/src/plugins/android/androiddevice.h b/src/plugins/android/androiddevice.h
index 0c1ab9dd98..57b386dc4d 100644
--- a/src/plugins/android/androiddevice.h
+++ b/src/plugins/android/androiddevice.h
@@ -99,7 +99,6 @@ private:
std::unique_ptr<Utils::Process> m_removeAvdProcess;
QFileSystemWatcher m_avdFileSystemWatcher;
std::unique_ptr<Utils::Process> m_adbDeviceWatcherProcess;
- AndroidConfig &m_androidConfig;
AndroidAvdManager m_avdManager;
friend void setupAndroidDeviceManager(QObject *guard);
diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp
index 24bec8f07e..3f723d080b 100644
--- a/src/plugins/android/androidmanager.cpp
+++ b/src/plugins/android/androidmanager.cpp
@@ -190,17 +190,17 @@ QJsonObject deploymentSettings(const Target *target)
QJsonObject settings;
settings["_description"] = qtcSignature;
settings["qt"] = qt->prefix().toString();
- settings["ndk"] = AndroidConfigurations::currentConfig().ndkLocation(qt).toString();
- settings["sdk"] = AndroidConfigurations::currentConfig().sdkLocation().toString();
+ settings["ndk"] = androidConfig().ndkLocation(qt).toString();
+ settings["sdk"] = androidConfig().sdkLocation().toString();
if (!qt->supportsMultipleQtAbis()) {
const QStringList abis = applicationAbis(target);
QTC_ASSERT(abis.size() == 1, return {});
- settings["stdcpp-path"] = (AndroidConfigurations::currentConfig().toolchainPath(qt)
+ settings["stdcpp-path"] = (androidConfig().toolchainPath(qt)
/ "sysroot/usr/lib"
/ archTriplet(abis.first())
/ "libc++_shared.so").toString();
} else {
- settings["stdcpp-path"] = AndroidConfigurations::currentConfig()
+ settings["stdcpp-path"] = androidConfig()
.toolchainPath(qt)
.pathAppended("sysroot/usr/lib")
.toString();
@@ -208,7 +208,7 @@ QJsonObject deploymentSettings(const Target *target)
settings["toolchain-prefix"] = "llvm";
settings["tool-prefix"] = "llvm";
settings["useLLVM"] = true;
- settings["ndk-host"] = AndroidConfigurations::currentConfig().toolchainHost(qt);
+ settings["ndk-host"] = androidConfig().toolchainHost(qt);
return settings;
}
@@ -609,7 +609,7 @@ bool checkKeystorePassword(const FilePath &keystorePath, const QString &keystore
{
if (keystorePasswd.isEmpty())
return false;
- const CommandLine cmd(AndroidConfigurations::currentConfig().keytoolPath(),
+ const CommandLine cmd(androidConfig().keytoolPath(),
{"-list", "-keystore", keystorePath.toUserOutput(),
"--storepass", keystorePasswd});
Process proc;
@@ -630,7 +630,7 @@ bool checkCertificatePassword(const FilePath &keystorePath, const QString &keyst
arguments << certificatePasswd;
Process proc;
- proc.setCommand({AndroidConfigurations::currentConfig().keytoolPath(), arguments});
+ proc.setCommand({androidConfig().keytoolPath(), arguments});
proc.runBlocking(10s, EventLoopMode::On);
return proc.result() == ProcessResult::FinishedWithSuccess;
}
@@ -643,7 +643,7 @@ bool checkCertificateExists(const FilePath &keystorePath, const QString &keystor
"--storepass", keystorePasswd, "-alias", alias };
Process proc;
- proc.setCommand({AndroidConfigurations::currentConfig().keytoolPath(), arguments});
+ proc.setCommand({androidConfig().keytoolPath(), arguments});
proc.runBlocking(10s, EventLoopMode::On);
return proc.result() == ProcessResult::FinishedWithSuccess;
}
@@ -651,7 +651,7 @@ bool checkCertificateExists(const FilePath &keystorePath, const QString &keystor
Process *startAdbProcess(const QStringList &args, QString *err)
{
std::unique_ptr<Process> process(new Process);
- const FilePath adb = AndroidConfigurations::currentConfig().adbToolPath();
+ const FilePath adb = androidConfig().adbToolPath();
const CommandLine command{adb, args};
qCDebug(androidManagerLog).noquote() << "Running command (async):" << command.toUserOutput();
process->setCommand(command);
@@ -689,8 +689,7 @@ static SdkToolResult runCommand(const CommandLine &command, const QByteArray &wr
SdkToolResult runAdbCommand(const QStringList &args, const QByteArray &writeData, int timeoutS)
{
- return runCommand({AndroidConfigurations::currentConfig().adbToolPath(), args},
- writeData, timeoutS);
+ return runCommand({androidConfig().adbToolPath(), args}, writeData, timeoutS);
}
} // namespace Android::AndroidManager
diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp
index e6ad6ee025..c941f3f43f 100644
--- a/src/plugins/android/androidmanifesteditorwidget.cpp
+++ b/src/plugins/android/androidmanifesteditorwidget.cpp
@@ -592,7 +592,7 @@ void AndroidManifestEditorWidget::postSave()
const FilePath docPath = m_textEditorWidget->textDocument()->filePath();
if (Target *target = androidTarget(docPath)) {
if (BuildConfiguration *bc = target->activeBuildConfiguration()) {
- QString androidNdkPlatform = AndroidConfigurations::currentConfig().bestNdkPlatformMatch(
+ QString androidNdkPlatform = androidConfig().bestNdkPlatformMatch(
AndroidManager::minimumSDK(target),
QtSupport::QtKitAspect::qtVersion(
androidTarget(m_textEditorWidget->textDocument()->filePath())->kit()));
diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp
index 1daf1bb7f6..e1217188bb 100644
--- a/src/plugins/android/androidplugin.cpp
+++ b/src/plugins/android/androidplugin.cpp
@@ -135,7 +135,7 @@ class AndroidPlugin final : public ExtensionSystem::IPlugin
return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE);
}).isEmpty();
- if (!AndroidConfigurations::currentConfig().sdkFullyConfigured() && qtForAndroidInstalled)
+ if (!androidConfig().sdkFullyConfigured() && qtForAndroidInstalled)
askUserAboutAndroidSetup();
AndroidConfigurations::registerNewToolchains();
diff --git a/src/plugins/android/androidqmlpreviewworker.cpp b/src/plugins/android/androidqmlpreviewworker.cpp
index 98065b25ef..1bbe3a9bec 100644
--- a/src/plugins/android/androidqmlpreviewworker.cpp
+++ b/src/plugins/android/androidqmlpreviewworker.cpp
@@ -112,7 +112,6 @@ private:
Utils::FilePath createQmlrcFile(const Utils::FilePath &workFolder, const QString &basename);
RunControl *m_rc = nullptr;
- const AndroidConfig &m_androidConfig;
QString m_serialNumber;
QStringList m_avdAbis;
int m_viewerPid = -1;
@@ -193,7 +192,7 @@ void AndroidQmlPreviewWorker::startLogcat()
QString args = QString("logcat --pid=%1").arg(m_viewerPid);
if (!m_logcatStartTimeStamp.isEmpty())
args += QString(" -T '%1'").arg(m_logcatStartTimeStamp);
- CommandLine cmd(AndroidConfigurations::currentConfig().adbToolPath());
+ CommandLine cmd(androidConfig().adbToolPath());
cmd.setArguments(args);
m_logcatProcess.setCommand(cmd);
m_logcatProcess.setUseCtrlCStub(true);
@@ -218,8 +217,7 @@ void AndroidQmlPreviewWorker::filterLogcatAndAppendMessage(const QString &stdOut
AndroidQmlPreviewWorker::AndroidQmlPreviewWorker(RunControl *runControl)
: RunWorker(runControl),
- m_rc(runControl),
- m_androidConfig(AndroidConfigurations::currentConfig())
+ m_rc(runControl)
{
connect(this, &RunWorker::started, this, &AndroidQmlPreviewWorker::startPidWatcher);
connect(this, &RunWorker::stopped, &m_pidFutureWatcher, &QFutureWatcher<void>::cancel);
@@ -264,7 +262,7 @@ void AndroidQmlPreviewWorker::stop()
bool AndroidQmlPreviewWorker::ensureAvdIsRunning()
{
- AndroidAvdManager avdMananager(m_androidConfig);
+ AndroidAvdManager avdMananager;
QString devSN = AndroidManager::deviceSerialNumber(m_rc->target());
if (devSN.isEmpty())
@@ -291,7 +289,7 @@ bool AndroidQmlPreviewWorker::ensureAvdIsRunning()
appendMessage(Tr::tr("Could not start AVD."), ErrorMessageFormat);
} else {
m_serialNumber = devInfoLocal.serialNumber;
- m_avdAbis = m_androidConfig.getAbis(m_serialNumber);
+ m_avdAbis = androidConfig().getAbis(m_serialNumber);
}
return !devInfoLocal.serialNumber.isEmpty();
} else {
@@ -299,7 +297,7 @@ bool AndroidQmlPreviewWorker::ensureAvdIsRunning()
}
return false;
}
- m_avdAbis = m_androidConfig.getAbis(m_serialNumber);
+ m_avdAbis = androidConfig().getAbis(m_serialNumber);
return true;
}
diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp
index ac7bfc92d9..c3b0e3e1f8 100644
--- a/src/plugins/android/androidqtversion.cpp
+++ b/src/plugins/android/androidqtversion.cpp
@@ -61,9 +61,9 @@ QString AndroidQtVersion::invalidReason() const
{
QString tmp = QtVersion::invalidReason();
if (tmp.isEmpty()) {
- if (AndroidConfigurations::currentConfig().ndkLocation(this).isEmpty())
+ if (androidConfig().ndkLocation(this).isEmpty())
return Tr::tr("NDK is not configured in Devices > Android.");
- if (AndroidConfigurations::currentConfig().sdkLocation().isEmpty())
+ if (androidConfig().sdkLocation().isEmpty())
return Tr::tr("SDK is not configured in Devices > Android.");
if (qtAbis().isEmpty())
return Tr::tr("Failed to detect the ABIs used by the Qt version. Check the settings in "
@@ -79,7 +79,7 @@ bool AndroidQtVersion::supportsMultipleQtAbis() const
Abis AndroidQtVersion::detectQtAbis() const
{
- const bool conf = AndroidConfigurations::currentConfig().sdkFullyConfigured();
+ const bool conf = androidConfig().sdkFullyConfigured();
return conf ? Utils::transform<Abis>(androidAbis(), &AndroidManager::androidAbi2Abi) : Abis();
}
@@ -87,7 +87,7 @@ void AndroidQtVersion::addToEnvironment(const Kit *k, Utils::Environment &env) c
{
QtVersion::addToEnvironment(k, env);
- const AndroidConfig &config = AndroidConfigurations::currentConfig();
+ const AndroidConfig &config = androidConfig();
// this env vars are used by qmake mkspecs to generate makefiles (check QTDIR/mkspecs/android-g++/qmake.conf for more info)
env.set(QLatin1String("ANDROID_NDK_HOST"), config.toolchainHost(this));
env.set(QLatin1String("ANDROID_NDK_ROOT"), config.ndkLocation(this).toUserOutput());
@@ -98,7 +98,7 @@ void AndroidQtVersion::addToEnvironment(const Kit *k, Utils::Environment &env) c
void AndroidQtVersion::setupQmakeRunEnvironment(Utils::Environment &env) const
{
env.set(QLatin1String("ANDROID_NDK_ROOT"),
- AndroidConfigurations::currentConfig().ndkLocation(this).toUserOutput());
+ androidConfig().ndkLocation(this).toUserOutput());
}
QString AndroidQtVersion::description() const
diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp
index b62e556341..7aa9a28c8a 100644
--- a/src/plugins/android/androidrunner.cpp
+++ b/src/plugins/android/androidrunner.cpp
@@ -183,8 +183,7 @@ void AndroidRunner::launchAVD()
void AndroidRunner::checkAVD()
{
- const AndroidConfig &config = AndroidConfigurations::currentConfig();
- AndroidAvdManager avdManager(config);
+ AndroidAvdManager avdManager;
QString serialNumber = avdManager.findAvd(m_launchedAVDName);
if (!serialNumber.isEmpty())
return; // try again on next timer hit
@@ -193,7 +192,7 @@ void AndroidRunner::checkAVD()
m_checkAVDTimer.stop();
AndroidManager::setDeviceSerialNumber(m_target, serialNumber);
emit asyncStart();
- } else if (!config.isConnected(serialNumber)) {
+ } else if (!androidConfig().isConnected(serialNumber)) {
// device was disconnected
m_checkAVDTimer.stop();
}
diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp
index 67261e36d4..6cba25a017 100644
--- a/src/plugins/android/androidrunnerworker.cpp
+++ b/src/plugins/android/androidrunnerworker.cpp
@@ -94,7 +94,7 @@ static void findProcessPIDAndUser(QPromise<PidUserPair> &promise,
static const QString pidScriptPreNougat = QStringLiteral("for p in /proc/[0-9]*; "
"do cat <$p/cmdline && echo :${p##*/}; done");
QStringList args = {selector};
- FilePath adbPath = AndroidConfigurations::currentConfig().adbToolPath();
+ FilePath adbPath = androidConfig().adbToolPath();
args.append("shell");
args.append(preNougat ? pidScriptPreNougat : pidScript.arg(packageName));
@@ -170,7 +170,7 @@ static FilePath debugServer(bool useLldb, const Target *target)
QtSupport::QtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(target->kit());
QString preferredAbi = AndroidManager::apkDevicePreferredAbi(target);
- const AndroidConfig &config = AndroidConfigurations::currentConfig();
+ const AndroidConfig &config = androidConfig();
if (useLldb) {
// Search suitable lldb-server binary.
@@ -512,7 +512,7 @@ void Android::Internal::AndroidRunnerWorker::asyncStartLogcat()
}
const QStringList logcatArgs = selector() << "logcat" << timeArg;
- const FilePath adb = AndroidConfigurations::currentConfig().adbToolPath();
+ const FilePath adb = androidConfig().adbToolPath();
qCDebug(androidRunWorkerLog).noquote() << "Running logcat command (async):"
<< CommandLine(adb, logcatArgs).toUserOutput();
m_adbLogcatProcess->setCommand({adb, logcatArgs});
@@ -742,7 +742,7 @@ void AndroidRunnerWorker::handleJdbWaiting()
}
m_afterFinishAdbCommands.push_back(removeForward.join(' '));
- const FilePath jdbPath = AndroidConfigurations::currentConfig().openJDKLocation()
+ const FilePath jdbPath = androidConfig().openJDKLocation()
.pathAppended("bin/jdb").withExecutableSuffix();
QStringList jdbArgs("-connect");
diff --git a/src/plugins/android/androidsdkdownloader.cpp b/src/plugins/android/androidsdkdownloader.cpp
index 3a646a2a63..6ff39dc417 100644
--- a/src/plugins/android/androidsdkdownloader.cpp
+++ b/src/plugins/android/androidsdkdownloader.cpp
@@ -29,7 +29,6 @@ namespace Android::Internal {
* @brief Download Android SDK tools package from within Qt Creator.
*/
AndroidSdkDownloader::AndroidSdkDownloader()
- : m_androidConfig(AndroidConfigurations::currentConfig())
{
connect(&m_taskTreeRunner, &TaskTreeRunner::done, this, [this] { m_progressDialog.reset(); });
}
@@ -89,7 +88,7 @@ static bool verifyFileIntegrity(const FilePath fileName, const QByteArray &sha25
void AndroidSdkDownloader::downloadAndExtractSdk()
{
- if (m_androidConfig.sdkToolsUrl().isEmpty()) {
+ if (androidConfig().sdkToolsUrl().isEmpty()) {
logError(Tr::tr("The SDK Tools download URL is empty."));
return;
}
@@ -108,7 +107,7 @@ void AndroidSdkDownloader::downloadAndExtractSdk()
Storage<std::optional<FilePath>> storage;
const auto onQuerySetup = [this](NetworkQuery &query) {
- query.setRequest(QNetworkRequest(m_androidConfig.sdkToolsUrl()));
+ query.setRequest(QNetworkRequest(androidConfig().sdkToolsUrl()));
query.setNetworkAccessManager(NetworkAccessManager::instance());
NetworkQuery *queryPtr = &query;
connect(queryPtr, &NetworkQuery::started, this, [this, queryPtr] {
@@ -159,7 +158,7 @@ void AndroidSdkDownloader::downloadAndExtractSdk()
if (!*storage)
return SetupResult::StopWithError;
const FilePath sdkFileName = **storage;
- if (!verifyFileIntegrity(sdkFileName, m_androidConfig.getSdkToolsSha256())) {
+ if (!verifyFileIntegrity(sdkFileName, androidConfig().getSdkToolsSha256())) {
logError(Tr::tr("Verifying the integrity of the downloaded file has failed."));
return SetupResult::StopWithError;
}
@@ -177,7 +176,7 @@ void AndroidSdkDownloader::downloadAndExtractSdk()
logError(Tr::tr("Unarchiving error."));
return;
}
- m_androidConfig.setTemporarySdkToolsPath(
+ androidConfig().setTemporarySdkToolsPath(
(*storage)->parentDir().pathAppended(Constants::cmdlineToolsName));
QMetaObject::invokeMethod(this, [this] { emit sdkExtracted(); }, Qt::QueuedConnection);
};
diff --git a/src/plugins/android/androidsdkdownloader.h b/src/plugins/android/androidsdkdownloader.h
index f5ae1ff5a7..4ea9ebfa37 100644
--- a/src/plugins/android/androidsdkdownloader.h
+++ b/src/plugins/android/androidsdkdownloader.h
@@ -31,7 +31,6 @@ signals:
private:
void logError(const QString &error);
- AndroidConfig &m_androidConfig;
std::unique_ptr<QProgressDialog> m_progressDialog;
Tasking::TaskTreeRunner m_taskTreeRunner;
};
diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp
index bb647d0a84..c952ff9097 100644
--- a/src/plugins/android/androidsdkmanager.cpp
+++ b/src/plugins/android/androidsdkmanager.cpp
@@ -158,7 +158,7 @@ static void sdkManagerCommand(const AndroidConfig &config, const QStringList &ar
class AndroidSdkManagerPrivate
{
public:
- AndroidSdkManagerPrivate(AndroidSdkManager &sdkManager, const AndroidConfig &config);
+ AndroidSdkManagerPrivate(AndroidSdkManager &sdkManager);
~AndroidSdkManagerPrivate();
AndroidSdkPackageList filteredPackages(AndroidSdkPackage::PackageState state,
@@ -188,7 +188,6 @@ private:
AndroidSdkManager::OperationOutput &result, SdkCmdPromise &fi);
AndroidSdkManager &m_sdkManager;
- const AndroidConfig &m_config;
AndroidSdkPackageList m_allPackages;
FilePath lastSdkManagerPath;
QString m_licenseTextCache;
@@ -199,8 +198,8 @@ public:
bool m_packageListingSuccessful = false;
};
-AndroidSdkManager::AndroidSdkManager(const AndroidConfig &config):
- m_d(new AndroidSdkManagerPrivate(*this, config))
+AndroidSdkManager::AndroidSdkManager()
+ : m_d(new AndroidSdkManagerPrivate(*this))
{
}
@@ -359,13 +358,10 @@ void AndroidSdkManager::acceptSdkLicense(bool accept)
m_d->setLicenseInput(accept);
}
-AndroidSdkManagerPrivate::AndroidSdkManagerPrivate(AndroidSdkManager &sdkManager,
- const AndroidConfig &config):
+AndroidSdkManagerPrivate::AndroidSdkManagerPrivate(AndroidSdkManager &sdkManager):
m_activeOperation(nullptr, watcherDeleter),
- m_sdkManager(sdkManager),
- m_config(config)
-{
-}
+ m_sdkManager(sdkManager)
+{}
AndroidSdkManagerPrivate::~AndroidSdkManagerPrivate()
{
@@ -393,10 +389,10 @@ void AndroidSdkManagerPrivate::reloadSdkPackages()
emit m_sdkManager.packageReloadBegin();
clearPackages();
- lastSdkManagerPath = m_config.sdkManagerToolPath();
+ lastSdkManagerPath = androidConfig().sdkManagerToolPath();
m_packageListingSuccessful = false;
- if (m_config.sdkToolsVersion().isNull()) {
+ if (androidConfig().sdkToolsVersion().isNull()) {
// Configuration has invalid sdk path or corrupt installation.
emit m_sdkManager.packageReloadFinished();
return;
@@ -404,8 +400,8 @@ void AndroidSdkManagerPrivate::reloadSdkPackages()
QString packageListing;
QStringList args({"--list", "--verbose"});
- args << m_config.sdkManagerToolArgs();
- m_packageListingSuccessful = sdkManagerCommand(m_config, args, &packageListing);
+ args << androidConfig().sdkManagerToolArgs();
+ m_packageListingSuccessful = sdkManagerCommand(androidConfig(), args, &packageListing);
if (m_packageListingSuccessful) {
SdkManagerOutputParser parser(m_allPackages);
parser.parsePackageListing(packageListing);
@@ -417,7 +413,7 @@ void AndroidSdkManagerPrivate::refreshSdkPackages(bool forceReload)
{
// Sdk path changed. Updated packages.
// QTC updates the package listing only
- if (m_config.sdkManagerToolPath() != lastSdkManagerPath || forceReload)
+ if (androidConfig().sdkManagerToolPath() != lastSdkManagerPath || forceReload)
reloadSdkPackages();
}
@@ -430,9 +426,9 @@ void AndroidSdkManagerPrivate::updateInstalled(SdkCmdPromise &promise)
result.stdOutput = Tr::tr("Updating installed packages.");
promise.addResult(result);
QStringList args("--update");
- args << m_config.sdkManagerToolArgs();
+ args << androidConfig().sdkManagerToolArgs();
if (!promise.isCanceled())
- sdkManagerCommand(m_config, args, m_sdkManager, promise, result, 100);
+ sdkManagerCommand(androidConfig(), args, m_sdkManager, promise, result, 100);
else
qCDebug(sdkManagerLog) << "Update: Operation cancelled before start";
@@ -464,7 +460,7 @@ void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const QStringList &inst
if (fi.isCanceled())
qCDebug(sdkManagerLog) << args << "Update: Operation cancelled before start";
else
- sdkManagerCommand(m_config, args, m_sdkManager, fi, result, progressQuota, isInstall);
+ sdkManagerCommand(androidConfig(), args, m_sdkManager, fi, result, progressQuota, isInstall);
currentProgress += progressQuota;
fi.setProgressValue(currentProgress);
if (result.stdError.isEmpty() && !result.success)
@@ -479,7 +475,7 @@ void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const QStringList &inst
for (const QString &sdkStylePath : uninstall) {
// Uninstall operations are not interptible. We don't want to leave half uninstalled.
QStringList args;
- args << "--uninstall" << sdkStylePath << m_config.sdkManagerToolArgs();
+ args << "--uninstall" << sdkStylePath << androidConfig().sdkManagerToolArgs();
if (doOperation(sdkStylePath, args, false))
break;
}
@@ -487,7 +483,7 @@ void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const QStringList &inst
// Install packages
for (const QString &sdkStylePath : install) {
QStringList args(sdkStylePath);
- args << m_config.sdkManagerToolArgs();
+ args << androidConfig().sdkManagerToolArgs();
if (doOperation(sdkStylePath, args, true))
break;
}
@@ -500,10 +496,10 @@ void AndroidSdkManagerPrivate::checkPendingLicense(SdkCmdPromise &fi)
fi.setProgressValue(0);
AndroidSdkManager::OperationOutput result;
result.type = AndroidSdkManager::LicenseCheck;
- const QStringList args = {"--licenses", sdkRootArg(m_config)};
+ const QStringList args = {"--licenses", sdkRootArg(androidConfig())};
if (!fi.isCanceled()) {
const int timeOutS = 4; // Short timeout as workaround for QTCREATORBUG-25667
- sdkManagerCommand(m_config, args, m_sdkManager, fi, result, 100.0, true, timeOutS);
+ sdkManagerCommand(androidConfig(), args, m_sdkManager, fi, result, 100.0, true, timeOutS);
} else {
qCDebug(sdkManagerLog) << "Update: Operation cancelled before start";
}
@@ -522,9 +518,10 @@ void AndroidSdkManagerPrivate::getPendingLicense(SdkCmdPromise &fi)
Process licenseCommand;
licenseCommand.setProcessMode(ProcessMode::Writer);
- licenseCommand.setEnvironment(m_config.toolsEnvironment());
+ licenseCommand.setEnvironment(androidConfig().toolsEnvironment());
bool reviewingLicenses = false;
- licenseCommand.setCommand(CommandLine(m_config.sdkManagerToolPath(), {"--licenses", sdkRootArg(m_config)}));
+ licenseCommand.setCommand(CommandLine(androidConfig().sdkManagerToolPath(),
+ {"--licenses", sdkRootArg(androidConfig())}));
licenseCommand.setUseCtrlCStub(true);
licenseCommand.start();
QTextCodec *codec = QTextCodec::codecForLocale();
@@ -623,7 +620,7 @@ void AndroidSdkManagerPrivate::parseCommonArguments(QPromise<QString> &promise)
{
QString argumentDetails;
QString output;
- sdkManagerCommand(m_config, QStringList("--help"), &output);
+ sdkManagerCommand(androidConfig(), QStringList("--help"), &output);
bool foundTag = false;
const auto lines = output.split('\n');
for (const QString& line : lines) {
diff --git a/src/plugins/android/androidsdkmanager.h b/src/plugins/android/androidsdkmanager.h
index e98507466f..4c4d051af3 100644
--- a/src/plugins/android/androidsdkmanager.h
+++ b/src/plugins/android/androidsdkmanager.h
@@ -40,7 +40,7 @@ public:
QString stdError;
};
- explicit AndroidSdkManager(const AndroidConfig &config);
+ AndroidSdkManager();
~AndroidSdkManager() override;
SdkPlatformList installedSdkPlatforms();
diff --git a/src/plugins/android/androidsdkmanagerwidget.cpp b/src/plugins/android/androidsdkmanagerwidget.cpp
index cd3bbb8532..e5f0d27345 100644
--- a/src/plugins/android/androidsdkmanagerwidget.cpp
+++ b/src/plugins/android/androidsdkmanagerwidget.cpp
@@ -44,12 +44,10 @@ private:
QString m_searchText;
};
-AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidConfig &config,
- AndroidSdkManager *sdkManager, QWidget *parent) :
+AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidSdkManager *sdkManager, QWidget *parent) :
QDialog(parent),
- m_androidConfig(config),
m_sdkManager(sdkManager),
- m_sdkModel(new AndroidSdkModel(m_androidConfig, m_sdkManager, this))
+ m_sdkModel(new AndroidSdkModel(m_sdkManager, this))
{
QTC_CHECK(sdkManager);
@@ -224,19 +222,19 @@ AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidConfig &config,
connect(obsoleteCheckBox, &QCheckBox::stateChanged, this, [this](int state) {
const QString obsoleteArg = "--include_obsolete";
- QStringList args = m_androidConfig.sdkManagerToolArgs();
+ QStringList args = androidConfig().sdkManagerToolArgs();
if (state == Qt::Checked && !args.contains(obsoleteArg)) {
args.append(obsoleteArg);
- m_androidConfig.setSdkManagerToolArgs(args);
+ androidConfig().setSdkManagerToolArgs(args);
} else if (state == Qt::Unchecked && args.contains(obsoleteArg)) {
args.removeAll(obsoleteArg);
- m_androidConfig.setSdkManagerToolArgs(args);
+ androidConfig().setSdkManagerToolArgs(args);
}
m_sdkManager->reloadPackages(true);
});
connect(channelCheckbox, &QComboBox::currentIndexChanged, this, [this](int index) {
- QStringList args = m_androidConfig.sdkManagerToolArgs();
+ QStringList args = androidConfig().sdkManagerToolArgs();
QString existingArg;
for (int i = 0; i < 4; ++i) {
const QString arg = "--channel=" + QString::number(i);
@@ -248,17 +246,17 @@ AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidConfig &config,
if (index == 0 && !existingArg.isEmpty()) {
args.removeAll(existingArg);
- m_androidConfig.setSdkManagerToolArgs(args);
+ 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);
+ androidConfig().setSdkManagerToolArgs(args);
}
args.append(channelArg);
- m_androidConfig.setSdkManagerToolArgs(args);
+ androidConfig().setSdkManagerToolArgs(args);
}
}
m_sdkManager->reloadPackages(true);
@@ -569,11 +567,11 @@ void AndroidSdkManagerWidget::runPendingCommand()
void AndroidSdkManagerWidget::onSdkManagerOptions()
{
- OptionsDialog dlg(m_sdkManager, m_androidConfig.sdkManagerToolArgs(), this);
+ OptionsDialog dlg(m_sdkManager, androidConfig().sdkManagerToolArgs(), this);
if (dlg.exec() == QDialog::Accepted) {
QStringList arguments = dlg.sdkManagerArguments();
- if (arguments != m_androidConfig.sdkManagerToolArgs()) {
- m_androidConfig.setSdkManagerToolArgs(arguments);
+ if (arguments != androidConfig().sdkManagerToolArgs()) {
+ androidConfig().setSdkManagerToolArgs(arguments);
m_sdkManager->reloadPackages(true);
}
}
diff --git a/src/plugins/android/androidsdkmanagerwidget.h b/src/plugins/android/androidsdkmanagerwidget.h
index 718d5390d6..ab915dc615 100644
--- a/src/plugins/android/androidsdkmanagerwidget.h
+++ b/src/plugins/android/androidsdkmanagerwidget.h
@@ -67,8 +67,7 @@ class AndroidSdkManagerWidget : public QDialog
};
public:
- AndroidSdkManagerWidget(AndroidConfig &config, AndroidSdkManager *sdkManager,
- QWidget *parent = nullptr);
+ AndroidSdkManagerWidget(AndroidSdkManager *sdkManager, QWidget *parent = nullptr);
~AndroidSdkManagerWidget() override;
void installEssentials();
@@ -96,7 +95,6 @@ private:
void switchView(View view);
void runPendingCommand();
- AndroidConfig &m_androidConfig;
AndroidSdkManager::CommandType m_pendingCommand = AndroidSdkManager::None;
View m_currentView = PackageListing;
AndroidSdkManager *m_sdkManager = nullptr;
diff --git a/src/plugins/android/androidsdkmodel.cpp b/src/plugins/android/androidsdkmodel.cpp
index f470f7b908..9643b3a20a 100644
--- a/src/plugins/android/androidsdkmodel.cpp
+++ b/src/plugins/android/androidsdkmodel.cpp
@@ -22,10 +22,8 @@ namespace Internal {
const int packageColCount = 3;
-AndroidSdkModel::AndroidSdkModel(const AndroidConfig &config, AndroidSdkManager *sdkManager,
- QObject *parent)
+AndroidSdkModel::AndroidSdkModel(AndroidSdkManager *sdkManager, QObject *parent)
: QAbstractItemModel(parent),
- m_config(config),
m_sdkManager(sdkManager)
{
QTC_CHECK(m_sdkManager);
@@ -263,7 +261,7 @@ bool AndroidSdkModel::setData(const QModelIndex &index, const QVariant &value, i
void AndroidSdkModel::selectMissingEssentials()
{
resetSelection();
- QStringList pendingPkgs(m_config.allEssentials());
+ QStringList pendingPkgs(androidConfig().allEssentials());
auto addTool = [this](QList<const AndroidSdkPackage *>::const_iterator itr) {
if ((*itr)->installedLocation().isEmpty()) {
m_changeState << *itr;
diff --git a/src/plugins/android/androidsdkmodel.h b/src/plugins/android/androidsdkmodel.h
index 36dbe27b31..2033f5fa9b 100644
--- a/src/plugins/android/androidsdkmodel.h
+++ b/src/plugins/android/androidsdkmodel.h
@@ -27,8 +27,7 @@ public:
PackageStateRole
};
- explicit AndroidSdkModel(const AndroidConfig &config, AndroidSdkManager *sdkManager,
- QObject *parent = nullptr);
+ explicit AndroidSdkModel(AndroidSdkManager *sdkManager, QObject *parent = nullptr);
// QAbstractItemModel overrides.
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
@@ -52,7 +51,6 @@ private:
void clearContainers();
void refreshData();
- const AndroidConfig &m_config;
AndroidSdkManager *m_sdkManager;
QList<const SdkPlatform *> m_sdkPlatforms;
QList<const AndroidSdkPackage *> m_tools;
diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp
index d84f034984..b9eaa21b44 100644
--- a/src/plugins/android/androidsettingswidget.cpp
+++ b/src/plugins/android/androidsettingswidget.cpp
@@ -168,9 +168,8 @@ private:
void validateOpenSsl();
AndroidSdkManagerWidget *m_sdkManagerWidget = nullptr;
- AndroidConfig &m_androidConfig{AndroidConfigurations::currentConfig()};
- AndroidSdkManager m_sdkManager{m_androidConfig};
+ AndroidSdkManager m_sdkManager;
AndroidSdkDownloader m_sdkDownloader;
bool m_isInitialReloadDone = false;
@@ -252,7 +251,7 @@ AndroidSettingsWidget::AndroidSettingsWidget()
"and extracted to the selected path.\n"
"After the SDK Tools are properly set up, you are prompted to install any essential\n"
"packages required for Qt to build for Android.")
- .arg(m_androidConfig.sdkToolsUrl().toString()));
+ .arg(androidConfig().sdkToolsUrl().toString()));
auto sdkManagerToolButton = new QPushButton(Tr::tr("SDK Manager"));
@@ -277,7 +276,7 @@ AndroidSettingsWidget::AndroidSettingsWidget()
"in the system's browser for manual download."));
- m_sdkManagerWidget = new AndroidSdkManagerWidget(m_androidConfig, &m_sdkManager, this);
+ m_sdkManagerWidget = new AndroidSdkManagerWidget(&m_sdkManager, this);
const QMap<int, QString> androidValidationPoints = {
{ JavaPathExistsAndWritableRow, Tr::tr("JDK path exists and is writable.") },
@@ -310,22 +309,22 @@ AndroidSettingsWidget::AndroidSettingsWidget()
connect(m_openJdkLocationPathChooser, &PathChooser::rawPathChanged,
this, &AndroidSettingsWidget::validateJdk);
- if (m_androidConfig.openJDKLocation().isEmpty())
- m_androidConfig.setOpenJDKLocation(AndroidConfig::getJdkPath());
- m_openJdkLocationPathChooser->setFilePath(m_androidConfig.openJDKLocation());
+ if (androidConfig().openJDKLocation().isEmpty())
+ androidConfig().setOpenJDKLocation(AndroidConfig::getJdkPath());
+ m_openJdkLocationPathChooser->setFilePath(androidConfig().openJDKLocation());
m_openJdkLocationPathChooser->setPromptDialogTitle(Tr::tr("Select JDK Path"));
- if (m_androidConfig.sdkLocation().isEmpty())
- m_androidConfig.setSdkLocation(AndroidConfig::defaultSdkPath());
- m_sdkLocationPathChooser->setFilePath(m_androidConfig.sdkLocation());
+ if (androidConfig().sdkLocation().isEmpty())
+ androidConfig().setSdkLocation(AndroidConfig::defaultSdkPath());
+ m_sdkLocationPathChooser->setFilePath(androidConfig().sdkLocation());
m_sdkLocationPathChooser->setPromptDialogTitle(Tr::tr("Select Android SDK Folder"));
m_openSslPathChooser->setPromptDialogTitle(Tr::tr("Select OpenSSL Include Project File"));
- if (m_androidConfig.openSslLocation().isEmpty())
- m_androidConfig.setOpenSslLocation(m_androidConfig.sdkLocation() / ("android_openssl"));
- m_openSslPathChooser->setFilePath(m_androidConfig.openSslLocation());
+ if (androidConfig().openSslLocation().isEmpty())
+ androidConfig().setOpenSslLocation(androidConfig().sdkLocation() / ("android_openssl"));
+ m_openSslPathChooser->setFilePath(androidConfig().openSslLocation());
- m_createKitCheckBox->setChecked(m_androidConfig.automaticKitCreation());
+ m_createKitCheckBox->setChecked(androidConfig().automaticKitCreation());
downloadNdkToolButton->setIcon(downloadIcon);
@@ -384,21 +383,21 @@ AndroidSettingsWidget::AndroidSettingsWidget()
connect(m_ndkListWidget, &QListWidget::currentTextChanged,
this, [this, removeCustomNdkButton](const QString &ndk) {
updateUI();
- removeCustomNdkButton->setEnabled(m_androidConfig.getCustomNdkList().contains(ndk));
+ removeCustomNdkButton->setEnabled(androidConfig().getCustomNdkList().contains(ndk));
});
connect(addCustomNdkButton, &QPushButton::clicked, this,
&AndroidSettingsWidget::addCustomNdkItem);
connect(removeCustomNdkButton, &QPushButton::clicked, this, [this] {
if (isDefaultNdkSelected())
- m_androidConfig.setDefaultNdk({});
- m_androidConfig.removeCustomNdk(m_ndkListWidget->currentItem()->text());
+ androidConfig().setDefaultNdk({});
+ androidConfig().removeCustomNdk(m_ndkListWidget->currentItem()->text());
m_ndkListWidget->takeItem(m_ndkListWidget->currentRow());
});
connect(m_makeDefaultNdkButton, &QPushButton::clicked, this, [this] {
const FilePath defaultNdk = isDefaultNdkSelected()
? FilePath()
: FilePath::fromUserInput(m_ndkListWidget->currentItem()->text());
- m_androidConfig.setDefaultNdk(defaultNdk);
+ androidConfig().setDefaultNdk(defaultNdk);
updateUI();
});
@@ -433,7 +432,7 @@ AndroidSettingsWidget::AndroidSettingsWidget()
});
connect(&m_sdkDownloader, &AndroidSdkDownloader::sdkExtracted, this, [this] {
// Make sure the sdk path is created before installing packages
- const FilePath sdkPath = m_androidConfig.sdkLocation();
+ const FilePath sdkPath = androidConfig().sdkLocation();
if (!sdkPath.createDir()) {
QMessageBox::warning(this, AndroidSdkDownloader::dialogTitle(),
Tr::tr("Failed to create the SDK Tools path %1.")
@@ -452,7 +451,7 @@ AndroidSettingsWidget::AndroidSettingsWidget()
});
});
- setOnApply([this] { AndroidConfigurations::setConfig(m_androidConfig); });
+ setOnApply([this] { AndroidConfigurations::setConfig(androidConfig()); });
}
AndroidSettingsWidget::~AndroidSettingsWidget()
@@ -484,12 +483,12 @@ void AndroidSettingsWidget::updateNdkList()
ndk->installedLocation().toUserOutput()));
}
- const auto customNdks = m_androidConfig.getCustomNdkList();
+ const auto customNdks = androidConfig().getCustomNdkList();
for (const QString &ndk : customNdks) {
- if (m_androidConfig.isValidNdk(ndk)) {
+ if (androidConfig().isValidNdk(ndk)) {
m_ndkListWidget->addItem(new QListWidgetItem(Icons::UNLOCKED.icon(), ndk));
} else {
- m_androidConfig.removeCustomNdk(ndk);
+ androidConfig().removeCustomNdk(ndk);
}
}
@@ -504,8 +503,8 @@ void AndroidSettingsWidget::addCustomNdkItem()
.constFirst();
const QString ndkPath = QFileDialog::getExistingDirectory(this, Tr::tr("Select an NDK"), homePath);
- if (m_androidConfig.isValidNdk(ndkPath)) {
- m_androidConfig.addCustomNdk(ndkPath);
+ if (androidConfig().isValidNdk(ndkPath)) {
+ androidConfig().addCustomNdk(ndkPath);
if (m_ndkListWidget->findItems(ndkPath, Qt::MatchExactly).size() == 0) {
m_ndkListWidget->addItem(new QListWidgetItem(Icons::UNLOCKED.icon(), ndkPath));
}
@@ -523,9 +522,9 @@ void AndroidSettingsWidget::addCustomNdkItem()
bool AndroidSettingsWidget::isDefaultNdkSelected() const
{
- if (!m_androidConfig.defaultNdk().isEmpty()) {
+ if (!androidConfig().defaultNdk().isEmpty()) {
if (const QListWidgetItem *item = m_ndkListWidget->currentItem()) {
- return FilePath::fromUserInput(item->text()) == m_androidConfig.defaultNdk();
+ return FilePath::fromUserInput(item->text()) == androidConfig().defaultNdk();
}
}
return false;
@@ -533,9 +532,9 @@ bool AndroidSettingsWidget::isDefaultNdkSelected() const
void AndroidSettingsWidget::validateJdk()
{
- m_androidConfig.setOpenJDKLocation(m_openJdkLocationPathChooser->filePath());
- bool jdkPathExists = m_androidConfig.openJDKLocation().exists();
- const FilePath bin = m_androidConfig.openJDKLocation()
+ androidConfig().setOpenJDKLocation(m_openJdkLocationPathChooser->filePath());
+ bool jdkPathExists = androidConfig().openJDKLocation().exists();
+ const FilePath bin = androidConfig().openJDKLocation()
.pathAppended("bin/javac" QTC_HOST_EXE_SUFFIX);
m_androidSummary->setPointValid(JavaPathExistsAndWritableRow, jdkPathExists && bin.exists());
@@ -547,14 +546,14 @@ void AndroidSettingsWidget::validateJdk()
void AndroidSettingsWidget::validateOpenSsl()
{
- m_androidConfig.setOpenSslLocation(m_openSslPathChooser->filePath());
+ androidConfig().setOpenSslLocation(m_openSslPathChooser->filePath());
- m_openSslSummary->setPointValid(OpenSslPathExistsRow, m_androidConfig.openSslLocation().exists());
+ m_openSslSummary->setPointValid(OpenSslPathExistsRow, androidConfig().openSslLocation().exists());
- const bool priFileExists = m_androidConfig.openSslLocation().pathAppended("openssl.pri").exists();
+ const bool priFileExists = androidConfig().openSslLocation().pathAppended("openssl.pri").exists();
m_openSslSummary->setPointValid(OpenSslPriPathExists, priFileExists);
const bool cmakeListsExists
- = m_androidConfig.openSslLocation().pathAppended("CMakeLists.txt").exists();
+ = androidConfig().openSslLocation().pathAppended("CMakeLists.txt").exists();
m_openSslSummary->setPointValid(OpenSslCmakeListsPathExists, cmakeListsExists);
updateUI();
@@ -563,8 +562,8 @@ void AndroidSettingsWidget::validateOpenSsl()
void AndroidSettingsWidget::onSdkPathChanged()
{
const FilePath sdkPath = m_sdkLocationPathChooser->filePath().cleanPath();
- m_androidConfig.setSdkLocation(sdkPath);
- FilePath currentOpenSslPath = m_androidConfig.openSslLocation();
+ androidConfig().setSdkLocation(sdkPath);
+ FilePath currentOpenSslPath = androidConfig().openSslLocation();
if (currentOpenSslPath.isEmpty() || !currentOpenSslPath.exists())
currentOpenSslPath = sdkPath.pathAppended("android_openssl");
m_openSslPathChooser->setFilePath(currentOpenSslPath);
@@ -575,24 +574,24 @@ void AndroidSettingsWidget::onSdkPathChanged()
void AndroidSettingsWidget::validateSdk()
{
const FilePath sdkPath = m_sdkLocationPathChooser->filePath().cleanPath();
- m_androidConfig.setSdkLocation(sdkPath);
+ androidConfig().setSdkLocation(sdkPath);
- const FilePath path = m_androidConfig.sdkLocation();
+ const FilePath path = androidConfig().sdkLocation();
m_androidSummary->setPointValid(SdkPathExistsAndWritableRow,
path.exists() && path.isWritableDir());
m_androidSummary->setPointValid(SdkToolsInstalledRow,
- !m_androidConfig.sdkToolsVersion().isNull());
+ !androidConfig().sdkToolsVersion().isNull());
m_androidSummary->setPointValid(PlatformToolsInstalledRow,
- m_androidConfig.adbToolPath().exists());
+ androidConfig().adbToolPath().exists());
m_androidSummary->setPointValid(BuildToolsInstalledRow,
- !m_androidConfig.buildToolsVersion().isNull());
+ !androidConfig().buildToolsVersion().isNull());
m_androidSummary->setPointValid(SdkManagerSuccessfulRow, m_sdkManager.packageListingSuccessful());
// installedSdkPlatforms should not trigger a package reload as validate SDK is only called
// after AndroidSdkManager::packageReloadFinished.
m_androidSummary->setPointValid(PlatformSdkInstalledRow,
!m_sdkManager.installedSdkPlatforms().isEmpty());
m_androidSummary->setPointValid(AllEssentialsInstalledRow,
- m_androidConfig.allEssentialsInstalled(&m_sdkManager));
+ androidConfig().allEssentialsInstalled(&m_sdkManager));
const bool sdkToolsOk = m_androidSummary->rowsOk({SdkPathExistsAndWritableRow,
SdkToolsInstalledRow,
@@ -601,7 +600,7 @@ void AndroidSettingsWidget::validateSdk()
BuildToolsInstalledRow,
PlatformSdkInstalledRow,
AllEssentialsInstalledRow});
- m_androidConfig.setSdkFullyConfigured(sdkToolsOk && componentsOk);
+ androidConfig().setSdkFullyConfigured(sdkToolsOk && componentsOk);
if (sdkToolsOk && !componentsOk)
m_sdkManagerWidget->installEssentials();
@@ -712,7 +711,7 @@ void AndroidSettingsWidget::downloadOpenSslRepo(const bool silent)
void AndroidSettingsWidget::createKitToggled()
{
- m_androidConfig.setAutomaticKitCreation(m_createKitCheckBox->isChecked());
+ androidConfig().setAutomaticKitCreation(m_createKitCheckBox->isChecked());
}
void AndroidSettingsWidget::updateUI()
@@ -723,8 +722,8 @@ void AndroidSettingsWidget::updateUI()
const QListWidgetItem *currentItem = m_ndkListWidget->currentItem();
const FilePath currentNdk = FilePath::fromUserInput(currentItem ? currentItem->text() : "");
const QString infoText = Tr::tr("(SDK Version: %1, NDK Version: %2)")
- .arg(m_androidConfig.sdkToolsVersion().toString())
- .arg(currentNdk.isEmpty() ? "" : m_androidConfig.ndkVersion(currentNdk).toString());
+ .arg(androidConfig().sdkToolsVersion().toString())
+ .arg(currentNdk.isEmpty() ? "" : androidConfig().ndkVersion(currentNdk).toString());
m_androidSummary->setInfoText(androidSetupOk ? infoText : "");
m_androidSummary->setSetupOk(androidSetupOk);
@@ -738,7 +737,7 @@ void AndroidSettingsWidget::updateUI()
for (int row = 0; row < m_ndkListWidget->count(); ++row) {
QListWidgetItem *item = m_ndkListWidget->item(row);
const bool isDefaultNdk =
- FilePath::fromUserInput(item->text()) == m_androidConfig.defaultNdk();
+ FilePath::fromUserInput(item->text()) == androidConfig().defaultNdk();
item->setFont(isDefaultNdk ? markedFont : font);
}
}
@@ -749,7 +748,7 @@ void AndroidSettingsWidget::updateUI()
void AndroidSettingsWidget::downloadSdk()
{
- if (m_androidConfig.sdkToolsOk()) {
+ if (androidConfig().sdkToolsOk()) {
QMessageBox::warning(this, AndroidSdkDownloader::dialogTitle(),
Tr::tr("The selected path already has a valid SDK Tools package."));
validateSdk();
diff --git a/src/plugins/android/androidsignaloperation.cpp b/src/plugins/android/androidsignaloperation.cpp
index b6a7699dd4..9b71a07a9b 100644
--- a/src/plugins/android/androidsignaloperation.cpp
+++ b/src/plugins/android/androidsignaloperation.cpp
@@ -13,7 +13,7 @@ namespace Android {
namespace Internal {
AndroidSignalOperation::AndroidSignalOperation()
- : m_adbPath(AndroidConfigurations::currentConfig().adbToolPath())
+ : m_adbPath(androidConfig().adbToolPath())
, m_timeout(new QTimer(this))
{
m_timeout->setInterval(5000);
diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp
index a89926235c..a83a99a4d8 100644
--- a/src/plugins/android/androidtoolchain.cpp
+++ b/src/plugins/android/androidtoolchain.cpp
@@ -77,8 +77,7 @@ bool AndroidToolchain::isValid() const
}
const bool isChildofNdk = compilerCommand().isChildOf(m_ndkLocation);
- const bool isChildofSdk = compilerCommand().isChildOf(
- AndroidConfigurations::currentConfig().sdkLocation());
+ const bool isChildofSdk = compilerCommand().isChildOf(androidConfig().sdkLocation());
return GccToolchain::isValid() && typeId() == Constants::ANDROID_TOOLCHAIN_TYPEID
&& targetAbi().isValid() && (isChildofNdk || isChildofSdk)
@@ -87,7 +86,7 @@ bool AndroidToolchain::isValid() const
void AndroidToolchain::addToEnvironment(Environment &env) const
{
- const AndroidConfig &config = AndroidConfigurations::currentConfig();
+ const AndroidConfig &config = androidConfig();
env.set(QLatin1String("ANDROID_NDK_HOST"), config.toolchainHostFromNdk(m_ndkLocation));
const FilePath javaHome = config.openJDKLocation();
if (javaHome.exists()) {
@@ -119,7 +118,7 @@ QStringList AndroidToolchain::suggestedMkspecList() const
FilePath AndroidToolchain::makeCommand(const Environment &env) const
{
Q_UNUSED(env)
- FilePath makePath = AndroidConfigurations::currentConfig().makePathFromNdk(m_ndkLocation);
+ FilePath makePath = androidConfig().makePathFromNdk(m_ndkLocation);
return makePath.exists() ? makePath : FilePath("make");
}
@@ -141,8 +140,6 @@ static FilePath clangPlusPlusPath(const FilePath &clangPath)
static FilePaths uniqueNdksForCurrentQtVersions()
{
- const AndroidConfig &config = AndroidConfigurations::currentConfig();
-
auto androidQtVersions = QtSupport::QtVersionManager::versions(
[](const QtSupport::QtVersion *v) {
return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE);
@@ -150,7 +147,7 @@ static FilePaths uniqueNdksForCurrentQtVersions()
FilePaths uniqueNdks;
for (const QtSupport::QtVersion *version : androidQtVersions) {
- FilePath ndk = config.ndkLocation(version);
+ FilePath ndk = androidConfig().ndkLocation(version);
if (!uniqueNdks.contains(ndk))
uniqueNdks.append(ndk);
}
@@ -164,7 +161,7 @@ ToolchainList autodetectToolchainsFromNdks(
const bool isCustom)
{
QList<Toolchain *> result;
- const AndroidConfig config = AndroidConfigurations::currentConfig();
+ const AndroidConfig config = androidConfig();
const Id LanguageIds[] {
ProjectExplorer::Constants::CXX_LANGUAGE_ID,
diff --git a/src/plugins/android/avddialog.cpp b/src/plugins/android/avddialog.cpp
index 801a7248a0..81a5442716 100644
--- a/src/plugins/android/avddialog.cpp
+++ b/src/plugins/android/avddialog.cpp
@@ -34,12 +34,9 @@ namespace Android::Internal {
static Q_LOGGING_CATEGORY(avdDialogLog, "qtc.android.avdDialog", QtWarningMsg)
-
-AvdDialog::AvdDialog(const AndroidConfig &config, QWidget *parent)
+AvdDialog::AvdDialog(QWidget *parent)
: QDialog(parent),
- m_allowedNameChars(QLatin1String("[a-z|A-Z|0-9|._-]*")),
- m_androidConfig(config),
- m_sdkManager(m_androidConfig)
+ m_allowedNameChars(QLatin1String("[a-z|A-Z|0-9|._-]*"))
{
resize(800, 0);
setWindowTitle(Tr::tr("Create new AVD"));
@@ -129,7 +126,7 @@ int AvdDialog::exec()
result.sdcardSize = sdcardSize();
result.overwrite = m_overwriteCheckBox->isChecked();
- const AndroidAvdManager avdManager = AndroidAvdManager(m_androidConfig);
+ const AndroidAvdManager avdManager;
QFutureWatcher<CreateAvdInfo> createAvdFutureWatcher;
QEventLoop loop;
@@ -190,9 +187,9 @@ void AvdDialog::parseDeviceDefinitionsList()
{
QString output;
- if (!AndroidAvdManager::avdManagerCommand(m_androidConfig, {"list", "device"}, &output)) {
+ if (!AndroidAvdManager::avdManagerCommand({"list", "device"}, &output)) {
qCDebug(avdDialogLog) << "Avd list command failed" << output
- << m_androidConfig.sdkToolsVersion();
+ << androidConfig().sdkToolsVersion();
return;
}
diff --git a/src/plugins/android/avddialog.h b/src/plugins/android/avddialog.h
index 4cd0387044..33247807d9 100644
--- a/src/plugins/android/avddialog.h
+++ b/src/plugins/android/avddialog.h
@@ -30,7 +30,7 @@ class AndroidSdkManager;
class AvdDialog : public QDialog
{
public:
- explicit AvdDialog(const AndroidConfig &config, QWidget *parent = nullptr);
+ explicit AvdDialog(QWidget *parent = nullptr);
int exec() override;
enum DeviceType { Phone, Tablet, Automotive, TV, Wear, PhoneOrTablet };
@@ -63,7 +63,6 @@ private:
QTimer m_hideTipTimer;
QRegularExpression m_allowedNameChars;
QList<DeviceDefinitionStruct> m_deviceDefinitionsList;
- const AndroidConfig &m_androidConfig;
AndroidSdkManager m_sdkManager;
QMap<AvdDialog::DeviceType, QString> m_deviceTypeToStringMap;
diff --git a/src/plugins/android/javalanguageserver.cpp b/src/plugins/android/javalanguageserver.cpp
index 8f1da2e80c..97c3cd5027 100644
--- a/src/plugins/android/javalanguageserver.cpp
+++ b/src/plugins/android/javalanguageserver.cpp
@@ -308,7 +308,7 @@ void JLSClient::updateProjectFiles()
const QStringList classPaths = node->data(Constants::AndroidClassPaths).toStringList();
- const FilePath &sdkLocation = AndroidConfigurations::currentConfig().sdkLocation();
+ const FilePath &sdkLocation = androidConfig().sdkLocation();
const QString &targetSDK = AndroidManager::buildTargetSDK(m_currentTarget);
const FilePath androidJar = sdkLocation / QString("platforms/%2/android.jar")
.arg(targetSDK);