diff options
author | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-07-28 16:59:06 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-07-28 15:40:13 +0000 |
commit | dae0265d43084d949a6f4080750da11c60780291 (patch) | |
tree | 6370a45f6365d45c6e61098da6ba0cba3f962a3f | |
parent | 84952c5a9609e72f32dd1e291a442d1c68c9569f (diff) | |
download | qt-creator-dae0265d43084d949a6f4080750da11c60780291.tar.gz |
QbsProjectManager: Fix cases of missing "rename" and "remove" actions.
If source files were located in a separate folder from their product
(e.g. the rather common case of a subdirectory), then the "Rename"
and "Remove" actions would not be available for them in the project
tree's context menu.
Change-Id: Ieecf5372619ab3fcf275a55d7850445e3aa44a0d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsnodes.cpp | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 8b6defe2f0..5ba2661fa8 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -245,6 +245,23 @@ public: bool m_isFile; }; + +static QList<ProjectExplorer::ProjectAction> supportedNodeActions(ProjectExplorer::Node *node, + bool managesFiles) +{ + QList<ProjectExplorer::ProjectAction> actions; + const QbsProject * const project = parentQbsProjectNode(node)->project(); + if (!project->isProjectEditable()) + return actions; + if (managesFiles) + actions << ProjectExplorer::AddNewFile << ProjectExplorer::AddExistingFile; + if (node->nodeType() == ProjectExplorer::FileNodeType + && !project->qbsProject().buildSystemFiles().contains(node->path().toString())) { + actions << ProjectExplorer::RemoveFile << ProjectExplorer::Rename; + } + return actions; +} + // ---------------------------------------------------------------------- // QbsFileNode: // ---------------------------------------------------------------------- @@ -273,8 +290,7 @@ QbsFolderNode::QbsFolderNode(const Utils::FileName &folderPath, ProjectExplorer: QList<ProjectExplorer::ProjectAction> QbsFolderNode::supportedActions(ProjectExplorer::Node *node) const { - Q_UNUSED(node); - return QList<ProjectExplorer::ProjectAction>(); + return supportedNodeActions(node, false); } // --------------------------------------------------------------------------- @@ -341,22 +357,6 @@ bool QbsBaseProjectNode::renameFile(const QString &filePath, const QString &newF return false; } - -static QList<ProjectExplorer::ProjectAction> supportedNodeActions(ProjectExplorer::Node *node) -{ - QList<ProjectExplorer::ProjectAction> actions; - const QbsProject * const project = parentQbsProjectNode(node)->project(); - if (!project->isProjectEditable()) - return actions; - actions << ProjectExplorer::AddNewFile << ProjectExplorer::AddExistingFile; - if (node->nodeType() == ProjectExplorer::FileNodeType - && !project->qbsProject().buildSystemFiles().contains(node->path().toString())) { - actions << ProjectExplorer::RemoveFile; - actions << ProjectExplorer::Rename; - } - return actions; -} - // -------------------------------------------------------------------- // QbsGroupNode: // -------------------------------------------------------------------- @@ -387,7 +387,7 @@ bool QbsGroupNode::isEnabled() const QList<ProjectExplorer::ProjectAction> QbsGroupNode::supportedActions(ProjectExplorer::Node *node) const { - return supportedNodeActions(node); + return supportedNodeActions(node, true); } bool QbsGroupNode::addFiles(const QStringList &filePaths, QStringList *notAdded) @@ -634,7 +634,7 @@ bool QbsProductNode::showInSimpleTree() const QList<ProjectExplorer::ProjectAction> QbsProductNode::supportedActions(ProjectExplorer::Node *node) const { - return supportedNodeActions(node); + return supportedNodeActions(node, true); } bool QbsProductNode::addFiles(const QStringList &filePaths, QStringList *notAdded) |