diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index deb3c85b2f13f24fe412374bf790080e50a89764..9056f03519ab1f6dfed817db0fb74476107346ab 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1428,7 +1428,7 @@ void EditorManager::updateActions() { QString fName; IEditor *curEditor = currentEditor(); - int openedCount = openedEditors().count() + m_d->m_editorModel->restoredEditorCount(); + int openedCount = openedEditors().count() + m_d->m_editorModel->restoredEditors().count(); if (curEditor) { if (!curEditor->file()->fileName().isEmpty()) { QFileInfo fi(curEditor->file()->fileName()); diff --git a/src/plugins/coreplugin/editormanager/openeditorsmodel.cpp b/src/plugins/coreplugin/editormanager/openeditorsmodel.cpp index 65c6f49878799df4f313d7134a167c0d0e8ea29a..28e0afe1bb658eb3af5fa92eb1120a1219258943 100644 --- a/src/plugins/coreplugin/editormanager/openeditorsmodel.cpp +++ b/src/plugins/coreplugin/editormanager/openeditorsmodel.cpp @@ -188,15 +188,15 @@ void OpenEditorsModel::removeAllRestoredEditors() } } -int OpenEditorsModel::restoredEditorCount() const +QList<OpenEditorsModel::Entry> OpenEditorsModel::restoredEditors() const { - int count = 0; + QList<Entry> result; for (int i = m_editors.count()-1; i >= 0; --i) { if (!m_editors.at(i).editor) { - ++count; + result.append(m_editors.at(i)); } } - return count; + return result; } bool OpenEditorsModel::isDuplicate(IEditor *editor) const diff --git a/src/plugins/coreplugin/editormanager/openeditorsmodel.h b/src/plugins/coreplugin/editormanager/openeditorsmodel.h index fb1e1cdb85a363ea9fba32541456cb9ada9826af..208d125e367cb2790df4da458c451771a082f916 100644 --- a/src/plugins/coreplugin/editormanager/openeditorsmodel.h +++ b/src/plugins/coreplugin/editormanager/openeditorsmodel.h @@ -72,10 +72,10 @@ public: void removeEditor(const QModelIndex &index); void removeAllRestoredEditors(); - int restoredEditorCount() const; void emitDataChanged(IEditor *editor); QList<IEditor *> editors() const; + QList<Entry> restoredEditors() const; bool isDuplicate(IEditor *editor) const; QList<IEditor *> duplicatesFor(IEditor *editor) const; IEditor *originalForDuplicate(IEditor *duplicate) const; diff --git a/src/plugins/locator/opendocumentsfilter.cpp b/src/plugins/locator/opendocumentsfilter.cpp index 096db8b7ea6cac303626c98725e047a9799052ad..42b03dab06ae43bd49bee28962ee0e427244286a 100644 --- a/src/plugins/locator/opendocumentsfilter.cpp +++ b/src/plugins/locator/opendocumentsfilter.cpp @@ -56,13 +56,13 @@ QList<FilterEntry> OpenDocumentsFilter::matchesFor(const QString &entry) const QRegExp regexp(pattern, Qt::CaseInsensitive, QRegExp::Wildcard); if (!regexp.isValid()) return value; - foreach (IEditor *editor, m_editors) { - QString fileName = editor->file()->fileName(); - if (regexp.exactMatch(editor->displayName())) { - QString visibleName; - QVariant data; + foreach (const OpenEditorsModel::Entry &entry, m_editors) { + QString fileName = entry.fileName(); + QString displayName = entry.displayName(); + if (regexp.exactMatch(displayName)) { if (fileName.isEmpty()) { - value.append(FilterEntry(this, editor->displayName(), qVariantFromValue(editor))); + if (entry.editor) + value.append(FilterEntry(this, displayName, qVariantFromValue(entry.editor))); } else { QFileInfo fi(fileName); FilterEntry entry(this, fi.fileName(), fileName); @@ -77,7 +77,13 @@ QList<FilterEntry> OpenDocumentsFilter::matchesFor(const QString &entry) void OpenDocumentsFilter::refreshInternally() { - m_editors = m_editorManager->openedEditors(); + m_editors.clear(); + foreach (IEditor *editor, m_editorManager->openedEditors()) { + OpenEditorsModel::Entry entry; + entry.editor = editor; + m_editors.append(entry); + } + m_editors += m_editorManager->openedEditorsModel()->restoredEditors(); } void OpenDocumentsFilter::refresh(QFutureInterface<void> &future) diff --git a/src/plugins/locator/opendocumentsfilter.h b/src/plugins/locator/opendocumentsfilter.h index b2f078ae391a626b7f9ce115838f7464ef60c779..7d01ebf99d2785d83f61a3359af4b4cb3cf3d5e8 100644 --- a/src/plugins/locator/opendocumentsfilter.h +++ b/src/plugins/locator/opendocumentsfilter.h @@ -39,6 +39,7 @@ #include <QtGui/QWidget> #include <coreplugin/editormanager/editormanager.h> +#include <coreplugin/editormanager/openeditorsmodel.h> #include <coreplugin/editormanager/ieditor.h> namespace Locator { @@ -63,7 +64,7 @@ public slots: private: Core::EditorManager *m_editorManager; - QList<Core::IEditor *> m_editors; + QList<Core::OpenEditorsModel::Entry> m_editors; }; } // namespace Internal diff --git a/src/plugins/qmldesigner/designmode.cpp b/src/plugins/qmldesigner/designmode.cpp index ffa1578e238985712684515f5f546156d39844d8..4b824d3e4bc3fc0a2cf372db7d48baaae2776d68 100644 --- a/src/plugins/qmldesigner/designmode.cpp +++ b/src/plugins/qmldesigner/designmode.cpp @@ -256,7 +256,7 @@ void DesignMode::updateActions() Core::IEditor *curEditor = m_currentEditor.data(); int openedCount = editorManager->openedEditors().count() - + editorManager->openedEditorsModel()->restoredEditorCount(); + + editorManager->openedEditorsModel()->restoredEditors().count(); QString fName; if (curEditor) {