summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2015-07-28 16:59:06 +0200
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2015-07-28 15:40:13 +0000
commitdae0265d43084d949a6f4080750da11c60780291 (patch)
tree6370a45f6365d45c6e61098da6ba0cba3f962a3f
parent84952c5a9609e72f32dd1e291a442d1c68c9569f (diff)
downloadqt-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.cpp40
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)