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