From 2eacd1b731d78f239a546260fc8bdf57fa266cf6 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Mon, 8 Jun 2009 19:13:46 +0200
Subject: [PATCH] Fix crash in the project mode.

Reviewed-By: con
---
 src/plugins/projectexplorer/projectwindow.cpp | 11 ++++++++---
 src/plugins/projectexplorer/projectwindow.h   |  1 +
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index 3323843b99a..a6b87c6c173 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -57,7 +57,8 @@ namespace {
 bool debug = false;
 }
 
-ProjectWindow::ProjectWindow(QWidget *parent) : QWidget(parent)
+ProjectWindow::ProjectWindow(QWidget *parent)
+    : QWidget(parent), m_currentItemChanged(false)
 {
     setWindowTitle(tr("Project Explorer"));
     setWindowIcon(QIcon(":/projectexplorer/images/projectexplorer.png"));
@@ -253,16 +254,20 @@ Project *ProjectWindow::findProject(const QString &path) const
 
 void ProjectWindow::handleCurrentItemChanged(QTreeWidgetItem *current)
 {
+    if (m_currentItemChanged)
+        return;
+    m_currentItemChanged = true;
     if (current) {
         QString path = current->data(2, Qt::UserRole).toString();
         if (Project *project = findProject(path)) {
             m_projectExplorer->setCurrentFile(project, path);
             showProperties(project, QModelIndex());
+            m_currentItemChanged = false;
             return;
         }
-    } else {
-        showProperties(0, QModelIndex());
     }
+    showProperties(0, QModelIndex());
+    m_currentItemChanged = false;
 }
 
 
diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h
index a868067bd71..7960c6a9163 100644
--- a/src/plugins/projectexplorer/projectwindow.h
+++ b/src/plugins/projectexplorer/projectwindow.h
@@ -79,6 +79,7 @@ private:
     QList<PropertiesPanel*> m_panels;
 
     Project *findProject(const QString &path) const;
+    bool m_currentItemChanged;
 };
 
 } // namespace Internal
-- 
GitLab