diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index 83aea757bce..03f12e319b6 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -320,8 +320,14 @@ void SessionManager::addProjects(const QList &projects) } } - foreach (Project *pro, clearedList) + foreach (Project *pro, clearedList) { emit m_instance->projectAdded(pro); + configureEditors(pro); + connect(pro, &Project::fileListChanged, + [pro](){ + configureEditors(pro); + }); + } if (clearedList.count() == 1) emit m_instance->singleProjectAdded(clearedList.first()); @@ -611,6 +617,19 @@ void SessionManager::configureEditor(Core::IEditor *editor, const QString &fileN } } +void SessionManager::configureEditors(Project *project) +{ + foreach (IDocument *document, DocumentModel::openedDocuments()) { + if (d->projectContainsFile(project, document->filePath())) { + foreach (IEditor *editor, DocumentModel::editorsForDocument(document)) { + if (TextEditor::BaseTextEditor *textEditor = qobject_cast(editor)) { + project->editorConfiguration()->configureEditor(textEditor); + } + } + } + } +} + void SessionManager::removeProjects(QList remove) { QMap resMap; diff --git a/src/plugins/projectexplorer/session.h b/src/plugins/projectexplorer/session.h index 0f02bc1b08c..2670614d201 100644 --- a/src/plugins/projectexplorer/session.h +++ b/src/plugins/projectexplorer/session.h @@ -147,6 +147,8 @@ private slots: static void configureEditor(Core::IEditor *editor, const QString &fileName); static void markSessionFileDirty(bool makeDefaultVirginDirty = true); static void projectDisplayNameChanged(); +private: + static void configureEditors(Project *project); }; } // namespace ProjectExplorer