From 3fce8cfc4f9bd4c930b86384bcced8a1806f70db Mon Sep 17 00:00:00 2001 From: Christian Kandeler <christian.kandeler@theqtcompany.com> Date: Wed, 15 Apr 2015 15:04:55 +0200 Subject: [PATCH] QbsProjectManager: Don't offer "Add File" functionality for folders. It does not make sense to add files to anything besides products and groups. Task-number: QTCREATORBUG-14286 Change-Id: Iced8cefc4eff3857e9a1a6d3a3a9311dcbb44f11 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> --- src/plugins/qbsprojectmanager/qbsnodes.cpp | 19 ++++++++++++++++--- src/plugins/qbsprojectmanager/qbsnodes.h | 10 ++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 8e1f783806b..8b6defe2f07 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -264,6 +264,19 @@ QString QbsFileNode::displayName() const return ProjectExplorer::FileNode::displayName() + QLatin1Char(':') + QString::number(l); } + +QbsFolderNode::QbsFolderNode(const Utils::FileName &folderPath, ProjectExplorer::NodeType nodeType, + const QString &displayName) + : ProjectExplorer::FolderNode(folderPath, nodeType, displayName) +{ +} + +QList<ProjectExplorer::ProjectAction> QbsFolderNode::supportedActions(ProjectExplorer::Node *node) const +{ + Q_UNUSED(node); + return QList<ProjectExplorer::ProjectAction>(); +} + // --------------------------------------------------------------------------- // QbsBaseProjectNode: // --------------------------------------------------------------------------- @@ -547,9 +560,9 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, const qbs::Gro break; } if (!fn) { - fn = new FolderNode(Utils::FileName::fromString(c->path()), - ProjectExplorer::FolderNodeType, - displayNameFromPath(c->path(), baseDir)); + fn = new QbsFolderNode(Utils::FileName::fromString(c->path()), + ProjectExplorer::FolderNodeType, + displayNameFromPath(c->path(), baseDir)); root->addFolderNodes(QList<FolderNode *>() << fn); } else { foldersToRemove.removeOne(fn); diff --git a/src/plugins/qbsprojectmanager/qbsnodes.h b/src/plugins/qbsprojectmanager/qbsnodes.h index fe30597800d..ef10ae2a603 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.h +++ b/src/plugins/qbsprojectmanager/qbsnodes.h @@ -57,6 +57,16 @@ public: QString displayName() const; }; +class QbsFolderNode : public ProjectExplorer::FolderNode +{ +public: + QbsFolderNode(const Utils::FileName &folderPath, ProjectExplorer::NodeType nodeType, + const QString &displayName); + +private: + QList<ProjectExplorer::ProjectAction> supportedActions(ProjectExplorer::Node *node) const; +}; + // --------------------------------------------------------------------------- // QbsBaseProjectNode: // --------------------------------------------------------------------------- -- GitLab