diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 94b56e6c317..f013e2d6c37 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -770,6 +770,8 @@ bool EditorManager::closeEditors(const QList editorsToClose, bool askA setCurrentView(m_d->m_splitter->findView(currentView)); if (IEditor *e = currentView->currentEditor()) activateEditor(currentView, e); + else + emit currentEditorChanged(0); } return !closingFailed; diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index e73fe6e6e40..79ba761d1cb 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -393,6 +393,8 @@ SessionManager::SessionManager(QObject *parent) this, SLOT(setEditorCodec(Core::IEditor *, QString))); connect(ProjectExplorerPlugin::instance(), SIGNAL(currentProjectChanged(ProjectExplorer::Project *)), this, SLOT(updateWindowTitle())); + connect(m_core->editorManager(), SIGNAL(currentEditorChanged(Core::IEditor*)), + this, SLOT(updateWindowTitle())); } SessionManager::~SessionManager() @@ -921,6 +923,13 @@ void SessionManager::updateWindowTitle() if (Project *currentProject = ProjectExplorerPlugin::instance()->currentProject()) windowTitle.prepend(currentProject->name() + " - "); } + if (m_core->editorManager()->currentEditor()) { + QFileInfo fi(m_core->editorManager()->currentEditor()->file()->fileName()); + windowTitle.prepend(fi.fileName() + " - "); + m_core->mainWindow()->setWindowFilePath(fi.absoluteFilePath()); + } else { + m_core->mainWindow()->setWindowFilePath(QString()); + } m_core->mainWindow()->setWindowTitle(windowTitle); }