From 848b8c0f447dbe388d2aca8eb40ba2ee3984ba5c Mon Sep 17 00:00:00 2001
From: Joerg Bornemann <joerg.bornemann@qt.io>
Date: Fri, 31 Mar 2017 11:32:39 +0200
Subject: [PATCH] Update qbs submodule
To HEAD of 1.8 branch, and adapt to changed API.
Change-Id: Ie180b114726134a06dfefe9dc3a6dc27997f246c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
---
src/plugins/qbsprojectmanager/qbsnodes.cpp | 8 +++++++-
.../qbsprojectmanager/qbsnodetreebuilder.cpp | 13 ++++++++++---
src/plugins/qbsprojectmanager/qbsproject.cpp | 10 +++++++++-
src/shared/qbs | 2 +-
4 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp
index 730c63ef7f2..45c7dcf1113 100644
--- a/src/plugins/qbsprojectmanager/qbsnodes.cpp
+++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp
@@ -232,8 +232,14 @@ static QList<ProjectExplorer::ProjectAction> supportedNodeActions(ProjectExplore
return actions;
if (managesFiles)
actions << ProjectExplorer::AddNewFile << ProjectExplorer::AddExistingFile;
+
+ auto equalsNodeFilePath = [node](const QString &str)
+ {
+ return str == node->filePath().toString();
+ };
+
if (node->nodeType() == ProjectExplorer::NodeType::File
- && !project->qbsProject().buildSystemFiles().contains(node->filePath().toString())) {
+ && !Utils::contains(project->qbsProject().buildSystemFiles(), equalsNodeFilePath)) {
actions << ProjectExplorer::RemoveFile << ProjectExplorer::Rename;
}
return actions;
diff --git a/src/plugins/qbsprojectmanager/qbsnodetreebuilder.cpp b/src/plugins/qbsprojectmanager/qbsnodetreebuilder.cpp
index 1f2d1dc445b..46d68e707b6 100644
--- a/src/plugins/qbsprojectmanager/qbsnodetreebuilder.cpp
+++ b/src/plugins/qbsprojectmanager/qbsnodetreebuilder.cpp
@@ -169,9 +169,16 @@ QSet<QString> referencedBuildSystemFiles(const qbs::ProjectData &data)
QStringList unreferencedBuildSystemFiles(const qbs::Project &p)
{
- return p.isValid()
- ? p.buildSystemFiles().subtract(referencedBuildSystemFiles(p.projectData())).toList()
- : QStringList();
+ QStringList result;
+ if (!p.isValid())
+ return result;
+
+ const std::set<QString> &available = p.buildSystemFiles();
+ const QSet<QString> &referenced = referencedBuildSystemFiles(p.projectData());
+ std::set_difference(available.begin(), available.end(), referenced.begin(), referenced.end(),
+ std::back_inserter(result));
+
+ return result;
}
} // namespace
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index 5e1abd4c3a1..198a77ff019 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -411,12 +411,20 @@ bool QbsProject::checkCancelStatus()
return true;
}
+static QSet<QString> toQStringSet(const std::set<QString> &src)
+{
+ QSet<QString> result;
+ result.reserve(src.size());
+ std::copy(src.begin(), src.end(), Utils::inserter(result));
+ return result;
+}
+
void QbsProject::updateAfterParse()
{
qCDebug(qbsPmLog) << "Updating data after parse";
OpTimer opTimer("updateAfterParse");
updateProjectNodes();
- updateDocuments(m_qbsProject.buildSystemFiles());
+ updateDocuments(toQStringSet(m_qbsProject.buildSystemFiles()));
updateBuildTargetData();
updateCppCodeModel();
updateQmlJsCodeModel();
diff --git a/src/shared/qbs b/src/shared/qbs
index 28f803d359c..24000d556fe 160000
--- a/src/shared/qbs
+++ b/src/shared/qbs
@@ -1 +1 @@
-Subproject commit 28f803d359c5f3102514d7817478cb4927114102
+Subproject commit 24000d556fefdb3dcd4103d3d1679429434e6f58
--
GitLab