From 38924e38636e63678d8fb6d2f0af3552670c1eb1 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Thu, 7 Jan 2010 20:35:23 +0100
Subject: [PATCH] On loading a project, select it in the project tree view

This fixes the issue that when loading a project in a big session the
newly loaded project is hard to find. The solution is a bit of a hack.
Reviewed-by: mae <qt-info@nokia.com>
---
 src/plugins/projectexplorer/projecttreewidget.cpp | 9 ++++++++-
 src/plugins/projectexplorer/projecttreewidget.h   | 2 +-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index 72a5561dc7a..bd9e0b658f8 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -120,7 +120,8 @@ ProjectTreeWidget::ProjectTreeWidget(QWidget *parent)
           m_view(0),
           m_model(0),
           m_filterProjectsAction(0),
-          m_autoSync(false)
+          m_autoSync(false),
+          m_currentItemLocked(false)
 {
     m_model = new FlatModel(m_explorer->session()->sessionNode(), this);
     NodesWatcher *watcher = new NodesWatcher(this);
@@ -249,6 +250,10 @@ void ProjectTreeWidget::setCurrentItem(Node *node, Project *project)
     if (debug)
         qDebug() << "ProjectTreeWidget::setCurrentItem(" << (project ? project->displayName() : "0")
                  << ", " <<  (node ? node->path() : "0") << ")";
+    if (m_currentItemLocked) {
+        m_currentItemLocked = false;
+        return;
+    }
     if (!project) {
         return;
     }
@@ -288,6 +293,8 @@ void ProjectTreeWidget::handleProjectAdded(ProjectExplorer::Project *project)
     Node *node = project->rootProjectNode();
     QModelIndex idx = m_model->indexForNode(node);
     m_view->setExpanded(idx, true);
+    m_view->setCurrentIndex(idx);
+    m_currentItemLocked = true;
 }
 
 void ProjectTreeWidget::startupProjectChanged(ProjectExplorer::Project *project)
diff --git a/src/plugins/projectexplorer/projecttreewidget.h b/src/plugins/projectexplorer/projecttreewidget.h
index 732035f4c4e..2413bd95497 100644
--- a/src/plugins/projectexplorer/projecttreewidget.h
+++ b/src/plugins/projectexplorer/projecttreewidget.h
@@ -89,7 +89,7 @@ private:
     QModelIndex m_subIndex;
     QString m_modelId;
     bool m_autoSync;
-
+    bool m_currentItemLocked;
     friend class ProjectTreeWidgetFactory;
 };
 
-- 
GitLab