aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/projecttree.h
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@theqtcompany.com>2015-01-13 15:50:37 +0100
committerDaniel Teske <daniel.teske@theqtcompany.com>2015-01-15 16:06:45 +0100
commit27fd8d4eb57f3156b7c1d384013965b4e2d376fa (patch)
tree70c8de22c2a87bcca58979cda8f9bc9c38c5d64e /src/plugins/projectexplorer/projecttree.h
parent7e522c8a3719b8f65f8f45ff46635011714fad09 (diff)
ProjectTree: Fix context menu actions
Opening the context menu would move the focus, which then would reset the current node/project to come from the DocumentManager. So move the context menu handling code to the ProjectTree class and ensure that while it is open, the corresponding ProjectTree is considered the focused widget. Task-number: QTCREATORBUG-13684 Change-Id: I8b3dc410f5f5bc5e9a2dd663421b22cf3f147190 Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Diffstat (limited to 'src/plugins/projectexplorer/projecttree.h')
-rw-r--r--src/plugins/projectexplorer/projecttree.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/projectexplorer/projecttree.h b/src/plugins/projectexplorer/projecttree.h
index 2e6b6a5e27..fbaef27bd4 100644
--- a/src/plugins/projectexplorer/projecttree.h
+++ b/src/plugins/projectexplorer/projecttree.h
@@ -63,6 +63,9 @@ public:
static Project *projectForNode(Node *node);
static void aboutToShutDown();
+
+ static void showContextMenu(Internal::ProjectTreeWidget *focus, const QPoint &globalPos, Node *node);
+
signals:
void currentProjectChanged(ProjectExplorer::Project *project);
void currentNodeChanged(ProjectExplorer::Node *node, ProjectExplorer::Project *project);
@@ -94,6 +97,9 @@ signals:
void nodeSortKeyAboutToChange(Node *node);
void nodeSortKeyChanged();
+ void aboutToShowContextMenu(ProjectExplorer::Project *project,
+ ProjectExplorer::Node *node);
+
public: // for nodes to emit signals, do not call unless you are a node
void emitNodeUpdated(ProjectExplorer::Node *node);
@@ -121,6 +127,8 @@ public: // for nodes to emit signals, do not call unless you are a node
void emitNodeSortKeyAboutToChange(Node *node);
void emitNodeSortKeyChanged(Node *node);
+ void collapseAll();
+
private:
void focusChanged();
void updateFromProjectTreeWidget(Internal::ProjectTreeWidget *widget);
@@ -144,6 +152,7 @@ private:
bool m_resetCurrentNodeFolder;
bool m_resetCurrentNodeFile;
bool m_resetCurrentNodeProject;
+ Internal::ProjectTreeWidget *m_focusForContextMenu;
Core::Context m_lastProjectContext;
};
}