QbsProjectManager: Fix soft assert.

Change-Id: Ic970642aa37d0983b41b7be6459140bcc2f6ed42
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
This commit is contained in:
Christian Kandeler
2015-11-10 17:23:29 +01:00
parent 66c2ba6076
commit 21ad1804f6
2 changed files with 13 additions and 7 deletions

View File

@@ -44,6 +44,7 @@
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <QtDebug>
#include <QDir> #include <QDir>
#include <QStyle> #include <QStyle>
@@ -141,7 +142,7 @@ public:
return new FileTreeNode(n, this, isFile); return new FileTreeNode(n, this, isFile);
} }
bool isFile() { return m_isFile; } bool isFile() const { return m_isFile; }
static FileTreeNode *moveChildrenUp(FileTreeNode *node) static FileTreeNode *moveChildrenUp(FileTreeNode *node)
{ {
@@ -228,7 +229,7 @@ public:
} }
} }
QString path() QString path() const
{ {
QString p = name; QString p = name;
FileTreeNode *node = parent; FileTreeNode *node = parent;
@@ -485,7 +486,7 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, const qbs::Gro
foreach (FileTreeNode *c, fileTree->children) { foreach (FileTreeNode *c, fileTree->children) {
Utils::FileName path = Utils::FileName::fromString(c->path()); Utils::FileName path = Utils::FileName::fromString(c->path());
const ProjectExplorer::FileType newFileType = fileType(group, c->path()); const ProjectExplorer::FileType newFileType = fileType(group, *c);
const bool isQrcFile = newFileType == ProjectExplorer::ResourceType; const bool isQrcFile = newFileType == ProjectExplorer::ResourceType;
// Handle files: // Handle files:
@@ -546,13 +547,17 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, const qbs::Gro
} }
ProjectExplorer::FileType QbsGroupNode::fileType(const qbs::GroupData &group, ProjectExplorer::FileType QbsGroupNode::fileType(const qbs::GroupData &group,
const QString &filePath) const FileTreeNode &fileNode)
{ {
if (!group.isValid()) if (!group.isValid())
return ProjectExplorer::UnknownFileType; return ProjectExplorer::UnknownFileType;
const qbs::SourceArtifact artifact = Utils::findOrDefault(group.allSourceArtifacts(), const qbs::SourceArtifact artifact = Utils::findOrDefault(group.allSourceArtifacts(),
[filePath](const qbs::SourceArtifact &sa) { return sa.filePath() == filePath; }); [&fileNode](const qbs::SourceArtifact &sa) { return sa.filePath() == fileNode.path(); });
QTC_ASSERT(artifact.isValid(), return ProjectExplorer::UnknownFileType); QTC_ASSERT(artifact.isValid() || !fileNode.isFile(),
qDebug() << fileNode.path() << group.name(); return ProjectExplorer::UnknownFileType);
if (!artifact.isValid())
return ProjectExplorer::UnknownFileType;
if (artifact.fileTags().contains(QLatin1String("c")) if (artifact.fileTags().contains(QLatin1String("c"))
|| artifact.fileTags().contains(QLatin1String("cpp")) || artifact.fileTags().contains(QLatin1String("cpp"))
|| artifact.fileTags().contains(QLatin1String("objc")) || artifact.fileTags().contains(QLatin1String("objc"))

View File

@@ -113,7 +113,8 @@ public:
private: private:
static void setupFolder(ProjectExplorer::FolderNode *folder, const qbs::GroupData &group, static void setupFolder(ProjectExplorer::FolderNode *folder, const qbs::GroupData &group,
const FileTreeNode *subFileTree, const QString &baseDir, bool updateExisting); const FileTreeNode *subFileTree, const QString &baseDir, bool updateExisting);
static ProjectExplorer::FileType fileType(const qbs::GroupData &group, const QString &filePath); static ProjectExplorer::FileType fileType(const qbs::GroupData &group,
const FileTreeNode &fileNode);
qbs::GroupData m_qbsGroupData; qbs::GroupData m_qbsGroupData;
QString m_productPath; QString m_productPath;