Skip to content
Snippets Groups Projects
Commit e8c57c98 authored by Tim Jenssen's avatar Tim Jenssen
Browse files

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: default avatarTobias Hunger <tobias.hunger@qt.io>
parent 73c7cb19
No related branches found
No related tags found
No related merge requests found
...@@ -131,8 +131,13 @@ void ProjectTree::nodeChanged(ProjectTreeWidget *widget) ...@@ -131,8 +131,13 @@ void ProjectTree::nodeChanged(ProjectTreeWidget *widget)
void ProjectTree::update() void ProjectTree::update()
{ {
ProjectTreeWidget *focus = m_focusForContextMenu; ProjectTreeWidget *focus = m_focusForContextMenu;
if (!focus) static QPointer<ProjectTreeWidget> lastFocusedProjectTreeWidget;
if (!focus) {
focus = Utils::findOrDefault(m_projectTreeWidgets, &ProjectTree::hasFocus); focus = Utils::findOrDefault(m_projectTreeWidgets, &ProjectTree::hasFocus);
lastFocusedProjectTreeWidget = focus;
}
if (!focus)
focus = lastFocusedProjectTreeWidget;
if (focus) if (focus)
updateFromProjectTreeWidget(focus); updateFromProjectTreeWidget(focus);
...@@ -150,16 +155,12 @@ void ProjectTree::updateFromProjectTreeWidget(ProjectTreeWidget *widget) ...@@ -150,16 +155,12 @@ void ProjectTree::updateFromProjectTreeWidget(ProjectTreeWidget *widget)
void ProjectTree::updateFromDocumentManager() void ProjectTree::updateFromDocumentManager()
{ {
Core::IDocument *document = Core::EditorManager::currentDocument(); if (Core::IDocument *document = Core::EditorManager::currentDocument()) {
const FileName fileName = document ? document->filePath() : FileName(); const FileName fileName = document->filePath();
updateFromNode(ProjectTreeWidget::nodeForFile(fileName));
Node *currentNode = nullptr; } else {
if (m_currentNode && m_currentNode->filePath() == fileName) updateFromNode(nullptr);
currentNode = m_currentNode; }
else
currentNode = ProjectTreeWidget::nodeForFile(fileName);
updateFromNode(currentNode);
} }
void ProjectTree::updateFromNode(Node *node) void ProjectTree::updateFromNode(Node *node)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment