Android: Simplify code in manifest editor

Change-Id: I1a54cc1d59b9fdf03083363cc26c25f72e893006
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2019-11-15 14:16:23 +01:00
parent 349de159c9
commit 3ecf3d9575

View File

@@ -86,15 +86,15 @@ bool checkPackageName(const QString &packageName)
return QRegExp(packageNameRegExp).exactMatch(packageName); return QRegExp(packageNameRegExp).exactMatch(packageName);
} }
Project *androidProject(const Utils::FilePath &fileName) Target *androidTarget(const Utils::FilePath &fileName)
{ {
for (Project *project : SessionManager::projects()) { for (Project *project : SessionManager::projects()) {
if (!project->activeTarget()) if (Target *target = project->activeTarget()) {
continue; Kit *kit = target->kit();
Kit *kit = project->activeTarget()->kit(); if (DeviceTypeKitAspect::deviceTypeId(kit) == Android::Constants::ANDROID_DEVICE_TYPE
if (DeviceTypeKitAspect::deviceTypeId(kit) == Android::Constants::ANDROID_DEVICE_TYPE && fileName.isChildOf(project->projectDirectory()))
&& fileName.isChildOf(project->projectDirectory())) return target;
return project; }
} }
return nullptr; return nullptr;
} }
@@ -489,17 +489,13 @@ void AndroidManifestEditorWidget::focusInEvent(QFocusEvent *event)
void AndroidManifestEditorWidget::updateTargetComboBox() void AndroidManifestEditorWidget::updateTargetComboBox()
{ {
Project *project = androidProject(m_textEditorWidget->textDocument()->filePath());
QStringList items; QStringList items;
if (project) { if (Target *target = androidTarget(m_textEditorWidget->textDocument()->filePath())) {
Kit *kit = project->activeTarget()->kit(); ProjectNode *root = target->project()->rootProjectNode();
if (DeviceTypeKitAspect::deviceTypeId(kit) == Constants::ANDROID_DEVICE_TYPE) { root->forEachProjectNode([&items](const ProjectNode *projectNode) {
ProjectNode *root = project->rootProjectNode(); items << projectNode->targetApplications();
root->forEachProjectNode([&items](const ProjectNode *projectNode) { });
items << projectNode->targetApplications(); items.sort();
});
items.sort();
}
} }
// QComboBox randomly resets what the user has entered // QComboBox randomly resets what the user has entered
@@ -606,17 +602,14 @@ void AndroidManifestEditorWidget::preSave()
void AndroidManifestEditorWidget::postSave() void AndroidManifestEditorWidget::postSave()
{ {
const Utils::FilePath docPath = m_textEditorWidget->textDocument()->filePath(); const Utils::FilePath docPath = m_textEditorWidget->textDocument()->filePath();
ProjectExplorer::Project *project = androidProject(docPath); if (Target *target = androidTarget(docPath)) {
if (project) { if (BuildConfiguration *bc = target->activeBuildConfiguration()) {
if (Target *target = project->activeTarget()) { QString androidNdkPlatform = AndroidConfigurations::currentConfig()
if (BuildConfiguration *bc = target->activeBuildConfiguration()) { .bestNdkPlatformMatch(AndroidManager::minimumSDK(target));
QString androidNdkPlatform = AndroidConfigurations::currentConfig() if (m_androidNdkPlatform != androidNdkPlatform) {
.bestNdkPlatformMatch(AndroidManager::minimumSDK(target)); m_androidNdkPlatform = androidNdkPlatform;
if (m_androidNdkPlatform != androidNdkPlatform) { bc->updateCacheAndEmitEnvironmentChanged();
m_androidNdkPlatform = androidNdkPlatform; bc->regenerateBuildFiles(nullptr);
bc->updateCacheAndEmitEnvironmentChanged();
bc->regenerateBuildFiles(nullptr);
}
} }
} }
} }