From 5d1114fe52e586632882ea59f92a42f6125258e9 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 18 Dec 2018 17:52:19 +0100 Subject: [PATCH] ProjectExplorer: Drop the target argument ... from ProjectNode::targetData and setTargetData, and rename them to data and setData. It was only used in the implementation to retrieve the right node, instead move the responsibility to find the right node to the caller. Current assumption is that the functions were always called on the right node already. Change-Id: I9ae7e8a7ed5c79b924b99fd9a6a652bad56d114a Reviewed-by: Christian Kandeler --- src/plugins/android/androidbuildapkstep.cpp | 4 +-- src/plugins/android/androiddebugsupport.cpp | 8 ++--- src/plugins/android/androiddeployqtstep.cpp | 2 +- .../android/androidextralibrarylistmodel.cpp | 6 ++-- src/plugins/android/androidmanager.cpp | 4 +-- .../android/createandroidmanifestwizard.cpp | 6 ++-- src/plugins/projectexplorer/projectnodes.cpp | 6 ++-- src/plugins/projectexplorer/projectnodes.h | 5 ++- .../qmakeprojectmanager/qmakenodes.cpp | 34 +++++-------------- src/plugins/qmakeprojectmanager/qmakenodes.h | 6 ++-- 10 files changed, 29 insertions(+), 52 deletions(-) diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp index c31241a54f4..1afe920f540 100644 --- a/src/plugins/android/androidbuildapkstep.cpp +++ b/src/plugins/android/androidbuildapkstep.cpp @@ -186,7 +186,7 @@ bool AndroidBuildApkStep::init(QList &earlierSteps) RunConfiguration *rc = target()->activeRunConfiguration(); const ProjectNode *node = rc ? target()->project()->findNodeForBuildKey(rc->buildKey()) : nullptr; - QFileInfo sourceDirInfo(node ? node->targetData(Constants::AndroidPackageSourceDir, target()).toString() : QString()); + QFileInfo sourceDirInfo(node ? node->data(Constants::AndroidPackageSourceDir).toString() : QString()); parser->setSourceDirectory(Utils::FileName::fromString(sourceDirInfo.canonicalFilePath())); parser->setBuildDirectory(Utils::FileName::fromString(bc->buildDirectory().appendPath(Constants::ANDROID_BUILDDIRECTORY).toString())); setOutputParser(parser); @@ -209,7 +209,7 @@ bool AndroidBuildApkStep::init(QList &earlierSteps) QString inputFile; if (node) - inputFile = node->targetData(Constants::AndroidDeploySettingsFile, target()).toString(); + inputFile = node->data(Constants::AndroidDeploySettingsFile).toString(); if (inputFile.isEmpty()) { m_skipBuilding = true; diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index 7f1b8651ddb..3ad3ac10db4 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -100,11 +100,11 @@ static QStringList getSoLibSearchPath(const RunConfiguration *rc) return {}; QStringList res; - node->forEachProjectNode([&res, target](const ProjectNode *node) { - res.append(node->targetData(Constants::AndroidSoLibPath, target).toStringList()); + node->forEachProjectNode([&res](const ProjectNode *node) { + res.append(node->data(Constants::AndroidSoLibPath).toStringList()); }); - const QString jsonFile = node->targetData(Android::Constants::AndroidDeploySettingsFile, target).toString(); + const QString jsonFile = node->data(Android::Constants::AndroidDeploySettingsFile).toString(); QFile deploymentSettings(jsonFile); if (deploymentSettings.open(QIODevice::ReadOnly)) { QJsonParseError error; @@ -127,7 +127,7 @@ static QStringList getExtraLibs(const RunConfiguration *rc) if (!node) return {}; - return node->targetData(Android::Constants::AndroidExtraLibs, rc->target()).toStringList(); + return node->data(Android::Constants::AndroidExtraLibs).toStringList(); } static QString toNdkArch(const QString &arch) diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index 63df1abdb39..9063b7b2563 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -194,7 +194,7 @@ bool AndroidDeployQtStep::init(QList &earlierSteps) QString jsonFile; if (const ProjectNode *node = target()->project()->findNodeForBuildKey(rc->buildKey())) - jsonFile = node->targetData(Constants::AndroidDeploySettingsFile, target()).toString(); + jsonFile = node->data(Constants::AndroidDeploySettingsFile).toString(); if (jsonFile.isEmpty()) { emit addOutput(tr("Cannot find the androiddeploy Json file."), OutputFormat::Stderr); return false; diff --git a/src/plugins/android/androidextralibrarylistmodel.cpp b/src/plugins/android/androidextralibrarylistmodel.cpp index bea58d06040..b6309aa9c17 100644 --- a/src/plugins/android/androidextralibrarylistmodel.cpp +++ b/src/plugins/android/androidextralibrarylistmodel.cpp @@ -99,7 +99,7 @@ void AndroidExtraLibraryListModel::updateModel() bool enabled; beginResetModel(); if (node->validParse()) { - m_entries = node->targetData(Constants::AndroidExtraLibs, m_target).toStringList(); + m_entries = node->data(Constants::AndroidExtraLibs).toStringList(); enabled = true; } else { // parsing error @@ -125,7 +125,7 @@ void AndroidExtraLibraryListModel::addEntries(const QStringList &list) for (const QString &path : list) m_entries += "$$PWD/" + dir.relativeFilePath(path); - node->setTargetData(Constants::AndroidExtraLibs, m_entries, m_target); + node->setData(Constants::AndroidExtraLibs, m_entries); endInsertRows(); } @@ -159,7 +159,7 @@ void AndroidExtraLibraryListModel::removeEntries(QModelIndexList list) QTC_ASSERT(rc, return); const ProjectNode *node = m_target->project()->findNodeForBuildKey(rc->buildKey()); QTC_ASSERT(node, return); - node->setTargetData(Constants::AndroidExtraLibs, m_entries, m_target); + node->setData(Constants::AndroidExtraLibs, m_entries); } } // Android diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index 2f2f4368199..c76efe83c20 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -304,7 +304,7 @@ Utils::FileName AndroidManager::manifestSourcePath(ProjectExplorer::Target *targ { if (const ProjectNode *node = currentProjectNode(target)) { const QString packageSource - = node->targetData(Android::Constants::AndroidPackageSourceDir, target).toString(); + = node->data(Android::Constants::AndroidPackageSourceDir).toString(); if (!packageSource.isEmpty()) { const FileName manifest = FileName::fromUserInput(packageSource + "/AndroidManifest.xml"); if (manifest.exists()) @@ -627,7 +627,7 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target) if (!node) return false; - QFileInfo sourceDirInfo(node->targetData(Constants::AndroidPackageSourceDir, target).toString()); + QFileInfo sourceDirInfo(node->data(Constants::AndroidPackageSourceDir).toString()); FileName packageSourceDir = FileName::fromString(sourceDirInfo.canonicalFilePath()); if (!packageSourceDir.appendPath("gradlew").exists()) return false; diff --git a/src/plugins/android/createandroidmanifestwizard.cpp b/src/plugins/android/createandroidmanifestwizard.cpp index 1bb52a9e54b..079fd5bd649 100644 --- a/src/plugins/android/createandroidmanifestwizard.cpp +++ b/src/plugins/android/createandroidmanifestwizard.cpp @@ -186,7 +186,7 @@ void ChooseDirectoryPage::initializePage() QString androidPackageDir; if (const ProjectNode *node = target->project()->findNodeForBuildKey(buildKey)) - androidPackageDir = node->targetData(Android::Constants::AndroidPackageSourceDir, target).toString(); + androidPackageDir = node->data(Android::Constants::AndroidPackageSourceDir).toString(); if (androidPackageDir.isEmpty()) { m_label->setText(tr("Select the Android package source directory.\n\n" @@ -352,14 +352,14 @@ void CreateAndroidManifestWizard::createAndroidTemplateFiles() ProjectNode *node = m_target->project()->findNodeForBuildKey(m_buildKey); if (node) { node->addFiles(addedFiles); - androidPackageDir = node->targetData(Android::Constants::AndroidPackageSourceDir, m_target).toString(); + androidPackageDir = node->data(Android::Constants::AndroidPackageSourceDir).toString(); } if (androidPackageDir.isEmpty()) { // and now time for some magic const BuildTargetInfo bti = m_target->applicationTargets().buildTargetInfo(m_buildKey); const QString value = "$$PWD/" + bti.projectFilePath.toFileInfo().absoluteDir().relativeFilePath(m_directory); - bool result = node->setTargetData(Android::Constants::AndroidPackageSourceDir, value, m_target); + bool result = node->setData(Android::Constants::AndroidPackageSourceDir, value); if (!result) { QMessageBox::warning(this, tr("Project File not Updated"), diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index 46d5d083dc7..286899b1b73 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -883,17 +883,15 @@ ProjectNode *ProjectNode::projectNode(const Utils::FileName &file) const return nullptr; } -QVariant ProjectNode::targetData(Core::Id role, const Target *target) const +QVariant ProjectNode::data(Core::Id role) const { Q_UNUSED(role); - Q_UNUSED(target); return QVariant(); } -bool ProjectNode::setTargetData(Core::Id role, const QVariant &value, const Target *target) const +bool ProjectNode::setData(Core::Id role, const QVariant &value) const { Q_UNUSED(role); - Q_UNUSED(target); Q_UNUSED(value); return false; } diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h index e51d30b0f38..c96b8f8713c 100644 --- a/src/plugins/projectexplorer/projectnodes.h +++ b/src/plugins/projectexplorer/projectnodes.h @@ -43,7 +43,6 @@ namespace Utils { class MimeType; } namespace ProjectExplorer { class Project; -class Target; enum class NodeType : quint16 { File = 1, @@ -350,8 +349,8 @@ public: virtual bool parseInProgress() const { return false; } virtual bool validParse() const { return false; } - virtual QVariant targetData(Core::Id role, const Target *target) const; - virtual bool setTargetData(Core::Id role, const QVariant &value, const Target *target) const; + virtual QVariant data(Core::Id role) const; + virtual bool setData(Core::Id role, const QVariant &value) const; protected: explicit ProjectNode(const Utils::FileName &projectFilePath, const QByteArray &id = {}); diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 56971842d2f..ab518780abd 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -247,27 +247,18 @@ QStringList QmakeProFileNode::targetApplications() const return apps; } -QVariant QmakeProFileNode::targetData(Core::Id role, const Target *target) const +QVariant QmakeProFileNode::data(Core::Id role) const { - RunConfiguration *rc = target->activeRunConfiguration(); - if (!rc) - return {}; - - const FileName projectFilePath = FileName::fromString(rc->buildKey()); - const ProjectNode *projectNode = target->project()->findNodeForBuildKey(rc->buildKey()); - auto profileNode = dynamic_cast(projectNode); - QTC_ASSERT(profileNode, return {}); - if (role == Android::Constants::AndroidPackageSourceDir) - return profileNode->singleVariableValue(Variable::AndroidPackageSourceDir); + return singleVariableValue(Variable::AndroidPackageSourceDir); if (role == Android::Constants::AndroidDeploySettingsFile) - return profileNode->singleVariableValue(Variable::AndroidDeploySettingsFile); + return singleVariableValue(Variable::AndroidDeploySettingsFile); if (role == Android::Constants::AndroidExtraLibs) - return profileNode->variableValue(Variable::AndroidExtraLibs); + return variableValue(Variable::AndroidExtraLibs); if (role == Android::Constants::AndroidArch) - return profileNode->singleVariableValue(Variable::AndroidArch); + return singleVariableValue(Variable::AndroidArch); if (role == Android::Constants::AndroidSoLibPath) { - TargetInformation info = profileNode->targetInformation(); + TargetInformation info = targetInformation(); QStringList res = {info.buildDir.toString()}; Utils::FileName destDir = info.destDir; if (!destDir.isEmpty()) { @@ -283,18 +274,9 @@ QVariant QmakeProFileNode::targetData(Core::Id role, const Target *target) const return {}; } -static QmakeProFile *applicationProFile(const Target *target) +bool QmakeProFileNode::setData(Core::Id role, const QVariant &value) const { - ProjectExplorer::RunConfiguration *rc = target->activeRunConfiguration(); - if (!rc) - return nullptr; - auto project = static_cast(target->project()); - return project->rootProFile()->findProFile(FileName::fromString(rc->buildKey())); -} - -bool QmakeProFileNode::setTargetData(Core::Id role, const QVariant &value, const Target *target) const -{ - QmakeProFile *pro = applicationProFile(target); + QmakeProFile *pro = proFile(); if (!pro) return false; diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.h b/src/plugins/qmakeprojectmanager/qmakenodes.h index 8f17761bbec..0a70b7a8ea5 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.h +++ b/src/plugins/qmakeprojectmanager/qmakenodes.h @@ -98,10 +98,8 @@ public: QStringList targetApplications() const override; AddNewInformation addNewInformation(const QStringList &files, Node *context) const override; - QVariant targetData(Core::Id role, - const ProjectExplorer::Target *target) const override; - bool setTargetData(Core::Id role, const QVariant &value, - const ProjectExplorer::Target *target) const override; + QVariant data(Core::Id role) const override; + bool setData(Core::Id role, const QVariant &value) const override; QmakeProjectManager::ProjectType projectType() const; QString buildDir() const;