aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2018-11-28 18:52:19 +0100
committerhjk <hjk@qt.io>2018-12-14 12:08:39 +0000
commitc58da42babe5052e28a28a5ad79497b7d6f34de3 (patch)
tree2a6126ed993a970dd7eabfd2d711243eebf3f69c
parentd6b1e5653bb53a7dd245017ba11dddb6112fc179 (diff)
QmakeProjectManager et al: Reduce use of qmake specific logic
Change-Id: I8f7e5d822ccb27e3ec241b814ec67aed7fe7539f Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
-rw-r--r--src/plugins/ios/iosrunconfiguration.cpp23
-rw-r--r--src/plugins/qmakeandroidsupport/qmakeandroidsupport.cpp6
-rw-r--r--src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp6
-rw-r--r--src/plugins/qmakeprojectmanager/qmakenodes.cpp12
-rw-r--r--src/plugins/qmakeprojectmanager/qmakenodes.h1
5 files changed, 10 insertions, 38 deletions
diff --git a/src/plugins/ios/iosrunconfiguration.cpp b/src/plugins/ios/iosrunconfiguration.cpp
index 5d085c1bc7..0d26ba7e8f 100644
--- a/src/plugins/ios/iosrunconfiguration.cpp
+++ b/src/plugins/ios/iosrunconfiguration.cpp
@@ -159,27 +159,13 @@ void IosRunConfiguration::updateEnabledState()
bool IosRunConfiguration::canRunForNode(const Node *node) const
{
- return node->filePath() == profilePath();
-}
-
-FileName IosRunConfiguration::profilePath() const
-{
- return FileName::fromString(buildKey());
-}
-
-static QmakeProFile *proFile(const IosRunConfiguration *rc)
-{
- auto pro = qobject_cast<const QmakeProject *>(rc->target()->project());
- QmakeProFile *proFile = pro ? pro->rootProFile() : nullptr;
- if (proFile)
- proFile = proFile->findProFile(rc->profilePath());
- return proFile;
+ return node->filePath().toString() == buildKey();
}
QString IosRunConfiguration::applicationName() const
{
- QmakeProFile *pro = proFile(this);
- if (pro) {
+ Project *project = target()->project();
+ if (auto pro = dynamic_cast<const QmakeProFileNode *>(project->findNodeForBuildKey(buildKey()))) {
TargetInformation ti = pro->targetInformation();
if (ti.valid)
return ti.target;
@@ -197,7 +183,8 @@ FileName IosRunConfiguration::bundleDirectory() const
return res;
}
if (BuildConfiguration *bc = target()->activeBuildConfiguration()) {
- const QmakeProFile *pro = proFile(this);
+ Project *project = target()->project();
+ auto pro = dynamic_cast<const QmakeProFileNode *>(project->findNodeForBuildKey(buildKey()));
if (pro) {
TargetInformation ti = pro->targetInformation();
if (ti.valid)
diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidsupport.cpp b/src/plugins/qmakeandroidsupport/qmakeandroidsupport.cpp
index 7972d62ce6..13bf221ea8 100644
--- a/src/plugins/qmakeandroidsupport/qmakeandroidsupport.cpp
+++ b/src/plugins/qmakeandroidsupport/qmakeandroidsupport.cpp
@@ -61,10 +61,8 @@ QVariant QmakeAndroidSupport::targetData(Core::Id role, const Target *target) co
return {};
const FileName projectFilePath = FileName::fromString(rc->buildKey());
- const QmakeProject *pro = qobject_cast<QmakeProject *>(target->project());
- QTC_ASSERT(pro, return {});
- QTC_ASSERT(pro->rootProjectNode(), return {});
- const QmakeProFileNode *profileNode = pro->rootProjectNode()->findProFileFor(projectFilePath);
+ const ProjectNode *projectNode = target->project()->findNodeForBuildKey(rc->buildKey());
+ auto profileNode = dynamic_cast<const QmakeProFileNode *>(projectNode);
QTC_ASSERT(profileNode, return {});
if (role == Android::Constants::AndroidPackageSourceDir)
diff --git a/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp b/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp
index 5e7ba07673..0f0830b58e 100644
--- a/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp
+++ b/src/plugins/qmakeprojectmanager/librarydetailscontroller.cpp
@@ -864,12 +864,12 @@ bool PackageLibraryDetailsController::isLinkPackageGenerated() const
if (!project)
return false;
- const auto *rootProject = dynamic_cast<const QmakeProFileNode *>(project->rootProjectNode());
- if (!rootProject)
+ const ProjectNode *projectNode = project->findNodeForBuildKey(proFile());
+ if (!projectNode)
return false;
const QmakeProFileNode *currentProject =
- rootProject->findProFileFor(Utils::FileName::fromString(proFile()));
+ dynamic_cast<const QmakeProFileNode *>(projectNode);
if (!currentProject)
return false;
diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp
index 9f093e6020..fa94ca5eaa 100644
--- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp
@@ -198,18 +198,6 @@ FolderNode::AddNewInformation QmakePriFileNode::addNewInformation(const QStringL
return FolderNode::AddNewInformation(filePath().fileName(), context && context->parentProjectNode() == this ? 120 : 90);
}
-QmakeProFileNode *QmakeProFileNode::findProFileFor(const FileName &fileName) const
-{
- if (fileName == filePath())
- return const_cast<QmakeProFileNode *>(this);
- for (Node *node : nodes()) {
- if (auto *qmakeProFileNode = dynamic_cast<QmakeProFileNode *>(node))
- if (QmakeProFileNode *result = qmakeProFileNode->findProFileFor(fileName))
- return result;
- }
- return nullptr;
-}
-
/*!
\class QmakeProFileNode
Implements abstract ProjectNode class
diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.h b/src/plugins/qmakeprojectmanager/qmakenodes.h
index 31eb5871ef..79c3c3e95d 100644
--- a/src/plugins/qmakeprojectmanager/qmakenodes.h
+++ b/src/plugins/qmakeprojectmanager/qmakenodes.h
@@ -102,7 +102,6 @@ public:
QStringList variableValue(const Variable var) const;
QString singleVariableValue(const Variable var) const;
- QmakeProFileNode *findProFileFor(const Utils::FileName &string) const;
TargetInformation targetInformation() const;
bool showInSimpleTree(ProjectType projectType) const;