From 6062ff2e8f2c4a76625d69848d86f9394d94a50a Mon Sep 17 00:00:00 2001 From: con <qtc-committer@nokia.com> Date: Wed, 3 Feb 2010 16:45:55 +0100 Subject: [PATCH] Fixes: "Save as" does not update window title --- src/plugins/projectexplorer/session.cpp | 17 +++++++++++++++-- src/plugins/projectexplorer/session.h | 3 +++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index f7051cae8ad..9033363b297 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -368,7 +368,8 @@ SessionManager::SessionManager(QObject *parent) : QObject(parent), m_core(Core::ICore::instance()), m_file(new SessionFile), - m_sessionNode(new Internal::SessionNodeImpl(this)) + m_sessionNode(new Internal::SessionNodeImpl(this)), + m_currentEditor(0) { // Create qtcreator dir if it doesn't yet exist QString configDir = QFileInfo(m_core->settings()->fileName()).path(); @@ -394,7 +395,7 @@ SessionManager::SessionManager(QObject *parent) connect(ProjectExplorerPlugin::instance(), SIGNAL(currentProjectChanged(ProjectExplorer::Project *)), this, SLOT(updateWindowTitle())); connect(m_core->editorManager(), SIGNAL(currentEditorChanged(Core::IEditor*)), - this, SLOT(updateWindowTitle())); + this, SLOT(handleCurrentEditorChange(Core::IEditor*))); } SessionManager::~SessionManager() @@ -876,6 +877,18 @@ Core::IFile *SessionManager::file() const return m_file; } +void SessionManager::handleCurrentEditorChange(Core::IEditor *editor) +{ + if (editor != m_currentEditor) { + if (m_currentEditor) + disconnect(m_currentEditor, SIGNAL(changed()), this, SLOT(updateWindowTitle())); + if (editor) + connect(editor, SIGNAL(changed()), this, SLOT(updateWindowTitle())); + m_currentEditor = editor; + } + updateWindowTitle(); +} + void SessionManager::updateWindowTitle() { QString windowTitle = tr("Qt Creator"); diff --git a/src/plugins/projectexplorer/session.h b/src/plugins/projectexplorer/session.h index eb9f027b368..f158a04e3a8 100644 --- a/src/plugins/projectexplorer/session.h +++ b/src/plugins/projectexplorer/session.h @@ -37,6 +37,7 @@ #include <QtCore/QList> #include <QtCore/QString> #include <QtCore/QStringList> +#include <QtCore/QPointer> QT_BEGIN_NAMESPACE class QAbstractItemModel; @@ -169,6 +170,7 @@ private slots: void saveActiveMode(Core::IMode *mode); void clearProjectFileCache(); void setEditorCodec(Core::IEditor *editor, const QString &fileName); + void handleCurrentEditorChange(Core::IEditor *editor); void updateWindowTitle(); private: @@ -188,6 +190,7 @@ private: Internal::SessionFile *m_file; Internal::SessionNodeImpl *m_sessionNode; + QPointer<Core::IEditor> m_currentEditor; QString m_displayName; QString m_sessionName; -- GitLab