diff options
author | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-01-13 15:50:37 +0100 |
---|---|---|
committer | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-01-15 16:06:45 +0100 |
commit | 27fd8d4eb57f3156b7c1d384013965b4e2d376fa (patch) | |
tree | 70c8de22c2a87bcca58979cda8f9bc9c38c5d64e /src/plugins/projectexplorer/projecttree.h | |
parent | 7e522c8a3719b8f65f8f45ff46635011714fad09 (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.h | 9 |
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; }; } |