From 9e2c6fbfca99b8a1e2eccbe76a0715a2070cbf4c Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 9 Feb 2021 21:37:21 +0100 Subject: [PATCH] Android: Deduplicate string literals and use constants instead Improves findability of identical string in code (via code model). Reduces risk of typos. Change-Id: I0e9d9af8eed5cd9b66bf303cfee99c53513bf314 Reviewed-by: hjk Reviewed-by: Assam Boudjelthia --- src/plugins/android/androidconstants.h | 8 ++++++-- src/plugins/android/createandroidmanifestwizard.cpp | 3 ++- src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp | 4 ++-- .../cmakeprojectmanager/cmakeprojectnodes.cpp | 12 ++++++------ .../qmakeprojectmanager/profilecompletionassist.cpp | 10 ++++++---- src/plugins/qmakeprojectmanager/qmakenodes.cpp | 9 ++++++--- src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp | 9 +++++---- 7 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/plugins/android/androidconstants.h b/src/plugins/android/androidconstants.h index 14534979ae7..f5d8857f39a 100644 --- a/src/plugins/android/androidconstants.h +++ b/src/plugins/android/androidconstants.h @@ -62,10 +62,14 @@ const char ANDROID_BUILDDIRECTORY[] = "android-build"; const char JAVA_EDITOR_ID[] = "java.editor"; const char JAVA_MIMETYPE[] = "text/x-java"; const char ANDROID_ARCHITECTURE[] = "Android.Architecture"; -const char ANDROID_PACKAGE_SOURCE_DIR[] = "AndroidPackageSourceDir"; -const char ANDROID_EXTRA_LIBS[] = "AndroidExtraLibs"; +const char ANDROID_PACKAGE_SOURCE_DIR[] = "ANDROID_PACKAGE_SOURCE_DIR"; +const char ANDROID_EXTRA_LIBS[] = "ANDROID_EXTRA_LIBS"; +const char ANDROID_ABI[] = "ANDROID_ABI"; const char ANDROID_ABIS[] = "ANDROID_ABIS"; const char ANDROID_APPLICATION_ARGUMENTS[] = "ANDROID_APPLICATION_ARGUMENTS"; +const char QT_ANDROID_APPLICATION_ARGUMENTS[] = "QT_ANDROID_APPLICATION_ARGUMENTS"; +const char ANDROID_DEPLOYMENT_SETTINGS_FILE[] = "ANDROID_DEPLOYMENT_SETTINGS_FILE"; +const char ANDROID_SO_LIBS_PATHS[] = "ANDROID_SO_LIBS_PATHS"; const char ANDROID_PACKAGENAME[] = "Android.PackageName"; const char ANDROID_PACKAGE_INSTALLATION_STEP_ID[] diff --git a/src/plugins/android/createandroidmanifestwizard.cpp b/src/plugins/android/createandroidmanifestwizard.cpp index bc8a3ec9ef5..54e77173406 100644 --- a/src/plugins/android/createandroidmanifestwizard.cpp +++ b/src/plugins/android/createandroidmanifestwizard.cpp @@ -232,7 +232,8 @@ void ChooseDirectoryPage::initializePage() connect(m_androidPackageSourceDir, &PathChooser::rawPathChanged, this, &ChooseDirectoryPage::checkPackageSourceDir); } else { - m_label->setText(tr("The Android template files will be created in the ANDROID_PACKAGE_SOURCE_DIR set in the .pro file.")); + m_label->setText(tr("The Android template files will be created in the %1 set in the .pro " + "file.").arg(QLatin1String(Constants::ANDROID_PACKAGE_SOURCE_DIR))); m_androidPackageSourceDir->setPath(androidPackageDir); m_androidPackageSourceDir->setReadOnly(true); } diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index 318cf8db117..1f181b0972e 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -587,7 +587,7 @@ void CMakeBuildSystem::updateProjectData() } { CMakeConfigItem paths; - paths.key = "ANDROID_SO_LIBS_PATHS"; + paths.key = Android::Constants::ANDROID_SO_LIBS_PATHS; paths.values = Utils::toList(res); patchedConfig.append(paths); } @@ -607,7 +607,7 @@ void CMakeBuildSystem::updateProjectData() if (newRoot) { setRootProjectNode(std::move(newRoot)); CMakeConfigItem settingFileItem; - settingFileItem.key = "ANDROID_DEPLOYMENT_SETTINGS_FILE"; + settingFileItem.key = Android::Constants::ANDROID_DEPLOYMENT_SETTINGS_FILE; const FilePath buildDir = cmakeBuildConfiguration()->buildDirectory(); if (p->rootProjectNode()) { diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp index d75f75076d7..4fa34cba606 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectnodes.cpp @@ -129,22 +129,22 @@ QVariant CMakeTargetNode::data(Utils::Id role) const }; if (role == Android::Constants::AndroidPackageSourceDir) - return value("ANDROID_PACKAGE_SOURCE_DIR"); + return value(Android::Constants::ANDROID_PACKAGE_SOURCE_DIR); if (role == Android::Constants::AndroidDeploySettingsFile) - return value("ANDROID_DEPLOYMENT_SETTINGS_FILE"); + return value(Android::Constants::ANDROID_DEPLOYMENT_SETTINGS_FILE); if (role == Android::Constants::AndroidExtraLibs) - return value("ANDROID_EXTRA_LIBS"); + return value(Android::Constants::ANDROID_EXTRA_LIBS); if (role == Android::Constants::ANDROID_APPLICATION_ARGUMENTS) - return value("QT_ANDROID_APPLICATION_ARGUMENTS"); + return value(Android::Constants::QT_ANDROID_APPLICATION_ARGUMENTS); if (role == Android::Constants::AndroidArch) - return value("ANDROID_ABI"); + return value(Android::Constants::ANDROID_ABI); if (role == Android::Constants::AndroidSoLibPath) - return values("ANDROID_SO_LIBS_PATHS"); + return values(Android::Constants::ANDROID_SO_LIBS_PATHS); if (role == Android::Constants::AndroidTargets) return values("TARGETS_BUILD_PATH"); diff --git a/src/plugins/qmakeprojectmanager/profilecompletionassist.cpp b/src/plugins/qmakeprojectmanager/profilecompletionassist.cpp index c070f2aea6e..419b4044de5 100644 --- a/src/plugins/qmakeprojectmanager/profilecompletionassist.cpp +++ b/src/plugins/qmakeprojectmanager/profilecompletionassist.cpp @@ -27,22 +27,24 @@ #include "texteditor/codeassist/keywordscompletionassist.h" +#include + const TextEditor::Keywords &QmakeProjectManager::Internal::qmakeKeywords() { static TextEditor::Keywords keywords( QStringList{ // variables "ANDROID_ABIS", "ANDROID_API_VERSION", - "ANDROID_APPLICATION_ARGUMENTS", + QLatin1String(Android::Constants::ANDROID_APPLICATION_ARGUMENTS), "ANDROID_BUNDLED_JAR_DEPENDENCIES", "ANDROID_DEPLOYMENT_DEPENDENCIES", - "ANDROID_DEPLOYMENT_SETTINGS_FILE", - "ANDROID_EXTRA_LIBS", + QLatin1String(Android::Constants::ANDROID_DEPLOYMENT_SETTINGS_FILE), + QLatin1String(Android::Constants::ANDROID_EXTRA_LIBS), "ANDROID_EXTRA_PLUGINS", "ANDROID_FEATURES", "ANDROID_LIB_DEPENDENCIES", "ANDROID_MIN_SDK_VERSION", - "ANDROID_PACKAGE_SOURCE_DIR", + QLatin1String(Android::Constants::ANDROID_PACKAGE_SOURCE_DIR), "ANDROID_PERMISSIONS", "ANDROID_TARGET_SDK_VERSION", "ANDROID_TARGET_ARCH", diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 98b8c1ef102..6d358fe748c 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -431,11 +431,14 @@ bool QmakeProFileNode::setData(Utils::Id role, const QVariant &value) const } if (role == Android::Constants::AndroidExtraLibs) - return pro->setProVariable("ANDROID_EXTRA_LIBS", value.toStringList(), scope, flags); + return pro->setProVariable(QLatin1String(Android::Constants::ANDROID_EXTRA_LIBS), + value.toStringList(), scope, flags); if (role == Android::Constants::AndroidPackageSourceDir) - return pro->setProVariable("ANDROID_PACKAGE_SOURCE_DIR", {value.toString()}, scope, flags); + return pro->setProVariable(QLatin1String(Android::Constants::ANDROID_PACKAGE_SOURCE_DIR), + {value.toString()}, scope, flags); if (role == Android::Constants::ANDROID_APPLICATION_ARGUMENTS) - return pro->setProVariable("ANDROID_APPLICATION_ARGUMENTS", {value.toString()}, scope, flags); + return pro->setProVariable(QLatin1String(Android::Constants::ANDROID_APPLICATION_ARGUMENTS), + {value.toString()}, scope, flags); return false; } diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp index ca5f43bfc63..08235ea28ed 100644 --- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp @@ -29,6 +29,7 @@ #include "qmakeprojectmanagerconstants.h" #include "qmakebuildconfiguration.h" +#include #include #include #include @@ -1554,11 +1555,11 @@ QmakeEvalResult *QmakeProFile::evaluate(const QmakeEvalInput &input) result->newVarValues[Variable::StaticLibExtension] = exactReader->values(QLatin1String("QMAKE_EXTENSION_STATICLIB")); result->newVarValues[Variable::ShLibExtension] = exactReader->values(QLatin1String("QMAKE_EXTENSION_SHLIB")); result->newVarValues[Variable::AndroidArch] = exactReader->values(QLatin1String("ANDROID_TARGET_ARCH")); - result->newVarValues[Variable::AndroidDeploySettingsFile] = exactReader->values(QLatin1String("ANDROID_DEPLOYMENT_SETTINGS_FILE")); - result->newVarValues[Variable::AndroidPackageSourceDir] = exactReader->values(QLatin1String("ANDROID_PACKAGE_SOURCE_DIR")); + result->newVarValues[Variable::AndroidDeploySettingsFile] = exactReader->values(QLatin1String(Android::Constants::ANDROID_DEPLOYMENT_SETTINGS_FILE)); + result->newVarValues[Variable::AndroidPackageSourceDir] = exactReader->values(QLatin1String(Android::Constants::ANDROID_PACKAGE_SOURCE_DIR)); result->newVarValues[Variable::AndroidAbis] = exactReader->values(QLatin1String("ANDROID_ABIS")); - result->newVarValues[Variable::AndroidApplicationArguments] = exactReader->values(QLatin1String("ANDROID_APPLICATION_ARGUMENTS")); - result->newVarValues[Variable::AndroidExtraLibs] = exactReader->values(QLatin1String("ANDROID_EXTRA_LIBS")); + result->newVarValues[Variable::AndroidApplicationArguments] = exactReader->values(QLatin1String(Android::Constants::ANDROID_APPLICATION_ARGUMENTS)); + result->newVarValues[Variable::AndroidExtraLibs] = exactReader->values(QLatin1String(Android::Constants::ANDROID_EXTRA_LIBS)); result->newVarValues[Variable::AppmanPackageDir] = exactReader->values(QLatin1String("AM_PACKAGE_DIR")); result->newVarValues[Variable::AppmanManifest] = exactReader->values(QLatin1String("AM_MANIFEST")); result->newVarValues[Variable::IsoIcons] = exactReader->values(QLatin1String("ISO_ICONS"));