diff options
author | Tim Jenssen <tim.jenssen@qt.io> | 2017-07-28 14:09:52 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2017-07-31 12:31:16 +0000 |
commit | e8c57c98d6f6af1abb70c98ad886f0af79103c0c (patch) | |
tree | f435f62b52385fa95a18db1c6e13c7a9fb6c7701 /src/plugins/projectexplorer/projecttree.cpp | |
parent | 73c7cb19cf463deb78b769177f31207a701303d5 (diff) |
ProjectTree: keep lastFocusedProjectTreeWidget to get currentNode
Also remove currentNode checks from updateFromDocumentManager()
We already checked for focus in the update() method.
Change-Id: Id1bc28ce442b5b56597a675516ceea4fbc1801de
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/projecttree.cpp')
-rw-r--r-- | src/plugins/projectexplorer/projecttree.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/plugins/projectexplorer/projecttree.cpp b/src/plugins/projectexplorer/projecttree.cpp index ab3c95da9c8..4d6c596377a 100644 --- a/src/plugins/projectexplorer/projecttree.cpp +++ b/src/plugins/projectexplorer/projecttree.cpp @@ -131,8 +131,13 @@ void ProjectTree::nodeChanged(ProjectTreeWidget *widget) void ProjectTree::update() { ProjectTreeWidget *focus = m_focusForContextMenu; - if (!focus) + static QPointer<ProjectTreeWidget> lastFocusedProjectTreeWidget; + if (!focus) { focus = Utils::findOrDefault(m_projectTreeWidgets, &ProjectTree::hasFocus); + lastFocusedProjectTreeWidget = focus; + } + if (!focus) + focus = lastFocusedProjectTreeWidget; if (focus) updateFromProjectTreeWidget(focus); @@ -150,16 +155,12 @@ void ProjectTree::updateFromProjectTreeWidget(ProjectTreeWidget *widget) void ProjectTree::updateFromDocumentManager() { - Core::IDocument *document = Core::EditorManager::currentDocument(); - const FileName fileName = document ? document->filePath() : FileName(); - - Node *currentNode = nullptr; - if (m_currentNode && m_currentNode->filePath() == fileName) - currentNode = m_currentNode; - else - currentNode = ProjectTreeWidget::nodeForFile(fileName); - - updateFromNode(currentNode); + if (Core::IDocument *document = Core::EditorManager::currentDocument()) { + const FileName fileName = document->filePath(); + updateFromNode(ProjectTreeWidget::nodeForFile(fileName)); + } else { + updateFromNode(nullptr); + } } void ProjectTree::updateFromNode(Node *node) |