Commit 3557603b authored by Eike Ziller's avatar Eike Ziller
Browse files

Editors: Don't use model index outside of model/view.



The model index is an internal detail of the model/view and shouldn't be
used outside that context.

Change-Id: I2c1f742fff427484f6ff244dd3e0d8428a7318d3
Reviewed-by: default avatarhjk <hjk121@nokiamail.com>
Reviewed-by: default avatarEike Ziller <eike.ziller@digia.com>
parent 02512e23
...@@ -212,7 +212,7 @@ public: ...@@ -212,7 +212,7 @@ public:
QAction *m_closeOtherEditorsContextAction; QAction *m_closeOtherEditorsContextAction;
QAction *m_openGraphicalShellAction; QAction *m_openGraphicalShellAction;
QAction *m_openTerminalAction; QAction *m_openTerminalAction;
QModelIndex m_contextMenuEditorIndex; OpenEditorsModel::Entry *m_contextMenuEntry;
Internal::OpenEditorsWindow *m_windowPopup; Internal::OpenEditorsWindow *m_windowPopup;
Internal::EditorClosingCoreListener *m_coreListener; Internal::EditorClosingCoreListener *m_coreListener;
...@@ -812,16 +812,16 @@ static void assignAction(QAction *self, QAction *other) ...@@ -812,16 +812,16 @@ static void assignAction(QAction *self, QAction *other)
self->setIconVisibleInMenu(other->isIconVisibleInMenu()); self->setIconVisibleInMenu(other->isIconVisibleInMenu());
} }
void EditorManager::addSaveAndCloseEditorActions(QMenu *contextMenu, const QModelIndex &editorIndex) void EditorManager::addSaveAndCloseEditorActions(QMenu *contextMenu, OpenEditorsModel::Entry *entry)
{ {
QTC_ASSERT(contextMenu, return); QTC_ASSERT(contextMenu, return);
d->m_contextMenuEditorIndex = editorIndex; d->m_contextMenuEntry = entry;
assignAction(d->m_saveCurrentEditorContextAction, ActionManager::command(Constants::SAVE)->action()); assignAction(d->m_saveCurrentEditorContextAction, ActionManager::command(Constants::SAVE)->action());
assignAction(d->m_saveAsCurrentEditorContextAction, ActionManager::command(Constants::SAVEAS)->action()); assignAction(d->m_saveAsCurrentEditorContextAction, ActionManager::command(Constants::SAVEAS)->action());
assignAction(d->m_revertToSavedCurrentEditorContextAction, ActionManager::command(Constants::REVERTTOSAVED)->action()); assignAction(d->m_revertToSavedCurrentEditorContextAction, ActionManager::command(Constants::REVERTTOSAVED)->action());
IEditor *editor = d->m_contextMenuEditorIndex.data(Qt::UserRole).value<Core::IEditor*>(); IEditor *editor = entry ? entry->editor : 0;
setupSaveActions(editor, setupSaveActions(editor,
d->m_saveCurrentEditorContextAction, d->m_saveCurrentEditorContextAction,
...@@ -835,25 +835,26 @@ void EditorManager::addSaveAndCloseEditorActions(QMenu *contextMenu, const QMode ...@@ -835,25 +835,26 @@ void EditorManager::addSaveAndCloseEditorActions(QMenu *contextMenu, const QMode
contextMenu->addSeparator(); contextMenu->addSeparator();
d->m_closeCurrentEditorContextAction->setText(editorIndex.isValid() d->m_closeCurrentEditorContextAction->setText(entry
? tr("Close \"%1\"").arg(editorIndex.data().toString()) ? tr("Close \"%1\"").arg(entry->displayName())
: tr("Close Editor")); : tr("Close Editor"));
d->m_closeOtherEditorsContextAction->setText(editorIndex.isValid() d->m_closeOtherEditorsContextAction->setText(entry
? tr("Close All Except \"%1\"").arg(editorIndex.data().toString()) ? tr("Close All Except \"%1\"").arg(entry->displayName())
: tr("Close Other Editors")); : tr("Close Other Editors"));
d->m_closeCurrentEditorContextAction->setEnabled(editorIndex.isValid()); d->m_closeCurrentEditorContextAction->setEnabled(entry != 0);
d->m_closeOtherEditorsContextAction->setEnabled(editorIndex.isValid()); d->m_closeOtherEditorsContextAction->setEnabled(entry != 0);
d->m_closeAllEditorsContextAction->setEnabled(!openedEditors().isEmpty()); d->m_closeAllEditorsContextAction->setEnabled(!openedEditors().isEmpty());
contextMenu->addAction(d->m_closeCurrentEditorContextAction); contextMenu->addAction(d->m_closeCurrentEditorContextAction);
contextMenu->addAction(d->m_closeAllEditorsContextAction); contextMenu->addAction(d->m_closeAllEditorsContextAction);
contextMenu->addAction(d->m_closeOtherEditorsContextAction); contextMenu->addAction(d->m_closeOtherEditorsContextAction);
} }
void EditorManager::addNativeDirActions(QMenu *contextMenu, const QModelIndex &editorIndex) void EditorManager::addNativeDirActions(QMenu *contextMenu, OpenEditorsModel::Entry *entry)
{ {
QTC_ASSERT(contextMenu, return); QTC_ASSERT(contextMenu, return);
d->m_openGraphicalShellAction->setEnabled(editorIndex.isValid()); bool enabled = entry && !entry->fileName().isEmpty();
d->m_openTerminalAction->setEnabled(editorIndex.isValid()); d->m_openGraphicalShellAction->setEnabled(enabled);
d->m_openTerminalAction->setEnabled(enabled);
contextMenu->addAction(d->m_openGraphicalShellAction); contextMenu->addAction(d->m_openGraphicalShellAction);
contextMenu->addAction(d->m_openTerminalAction); contextMenu->addAction(d->m_openTerminalAction);
} }
...@@ -953,45 +954,50 @@ void EditorManager::doEscapeKeyFocusMoveMagic() ...@@ -953,45 +954,50 @@ void EditorManager::doEscapeKeyFocusMoveMagic()
void EditorManager::saveDocumentFromContextMenu() void EditorManager::saveDocumentFromContextMenu()
{ {
IEditor *editor = d->m_contextMenuEditorIndex.data(Qt::UserRole).value<Core::IEditor*>(); IEditor *editor = d->m_contextMenuEntry ? d->m_contextMenuEntry->editor : 0;
if (editor) if (editor)
saveDocument(editor->document()); saveDocument(editor->document());
} }
void EditorManager::saveDocumentAsFromContextMenu() void EditorManager::saveDocumentAsFromContextMenu()
{ {
IEditor *editor = d->m_contextMenuEditorIndex.data(Qt::UserRole).value<Core::IEditor*>(); IEditor *editor = d->m_contextMenuEntry ? d->m_contextMenuEntry->editor : 0;
if (editor) if (editor)
saveDocumentAs(editor->document()); saveDocumentAs(editor->document());
} }
void EditorManager::revertToSavedFromContextMenu() void EditorManager::revertToSavedFromContextMenu()
{ {
IEditor *editor = d->m_contextMenuEditorIndex.data(Qt::UserRole).value<Core::IEditor*>(); IEditor *editor = d->m_contextMenuEntry ? d->m_contextMenuEntry->editor : 0;
if (editor) if (editor)
revertToSaved(editor); revertToSaved(editor);
} }
void EditorManager::closeEditorFromContextMenu() void EditorManager::closeEditorFromContextMenu()
{ {
closeEditor(d->m_contextMenuEditorIndex); IEditor *editor = d->m_contextMenuEntry ? d->m_contextMenuEntry->editor : 0;
if (editor)
closeEditor(editor);
} }
void EditorManager::closeOtherEditorsFromContextMenu() void EditorManager::closeOtherEditorsFromContextMenu()
{ {
closeOtherEditors(d->m_contextMenuEditorIndex.data(Qt::UserRole).value<IEditor *>()); IEditor *editor = d->m_contextMenuEntry ? d->m_contextMenuEntry->editor : 0;
closeOtherEditors(editor);
} }
void EditorManager::showInGraphicalShell() void EditorManager::showInGraphicalShell()
{ {
const QString path = d->m_contextMenuEditorIndex.data(Qt::UserRole + 1).toString(); if (!d->m_contextMenuEntry || d->m_contextMenuEntry->fileName().isEmpty())
Core::FileUtils::showInGraphicalShell(ICore::mainWindow(), path); return;
Core::FileUtils::showInGraphicalShell(ICore::mainWindow(), d->m_contextMenuEntry->fileName());
} }
void EditorManager::openTerminal() void EditorManager::openTerminal()
{ {
const QString path = QFileInfo(d->m_contextMenuEditorIndex.data(Qt::UserRole + 1).toString()).path(); if (!d->m_contextMenuEntry || d->m_contextMenuEntry->fileName().isEmpty())
Core::FileUtils::openTerminal(path); return;
Core::FileUtils::openTerminal(QFileInfo(d->m_contextMenuEntry->fileName()).path());
} }
void EditorManager::rootDestroyed(QObject *root) void EditorManager::rootDestroyed(QObject *root)
...@@ -1057,13 +1063,14 @@ void EditorManager::closeEditor(Core::IEditor *editor) ...@@ -1057,13 +1063,14 @@ void EditorManager::closeEditor(Core::IEditor *editor)
closeEditors(QList<IEditor *>() << editor); closeEditors(QList<IEditor *>() << editor);
} }
void EditorManager::closeEditor(const QModelIndex &index) void EditorManager::closeEditor(OpenEditorsModel::Entry *entry)
{ {
IEditor *editor = index.data(Qt::UserRole).value<Core::IEditor*>(); if (!entry)
if (editor) return;
closeEditor(editor); if (entry->editor)
closeEditor(entry->editor);
else else
d->m_editorModel->removeEditor(index); d->m_editorModel->removeEntry(entry);
} }
bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool askAboutModifiedEditors) bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool askAboutModifiedEditors)
...@@ -1143,20 +1150,26 @@ bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool ask ...@@ -1143,20 +1150,26 @@ bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool ask
} }
} }
bool currentViewHandled = false;
foreach (EditorView *view, closedViews) { foreach (EditorView *view, closedViews) {
OpenEditorFlags flags;
if (view == currentView)
currentViewHandled = true;
else
flags = OpenEditorFlags(DoNotChangeCurrentEditor);
IEditor *newCurrent = view->currentEditor(); IEditor *newCurrent = view->currentEditor();
if (!newCurrent) if (!newCurrent)
newCurrent = pickUnusedEditor(); newCurrent = pickUnusedEditor();
if (newCurrent) { if (newCurrent) {
activateEditor(view, newCurrent, DoNotChangeCurrentEditor); activateEditor(view, newCurrent, flags);
} else { } else {
QModelIndex idx = d->m_editorModel->firstRestoredEditor(); OpenEditorsModel::Entry *entry = d->m_editorModel->firstRestoredEditor();
if (idx.isValid()) { if (entry) {
activateEditorForIndex(view, idx, DoNotChangeCurrentEditor); activateEditorForEntry(view, entry, flags);
} else { } else {
const QList<IEditor *> editors = d->m_editorModel->editors(); const QList<IEditor *> editors = d->m_editorModel->editors();
if (!editors.isEmpty()) if (!editors.isEmpty())
activateEditor(view, editors.last(), DoNotChangeCurrentEditor); activateEditor(view, editors.last(), flags);
} }
} }
} }
...@@ -1167,7 +1180,7 @@ bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool ask ...@@ -1167,7 +1180,7 @@ bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool ask
delete editor; delete editor;
} }
if (currentView) { if (currentView && !currentViewHandled) {
if (IEditor *editor = currentView->currentEditor()) if (IEditor *editor = currentView->currentEditor())
activateEditor(currentView, editor); activateEditor(currentView, editor);
else else
...@@ -1213,9 +1226,9 @@ void EditorManager::closeDuplicate(Core::IEditor *editor) ...@@ -1213,9 +1226,9 @@ void EditorManager::closeDuplicate(Core::IEditor *editor)
if (newCurrent) { if (newCurrent) {
activateEditor(view, newCurrent, DoNotChangeCurrentEditor); activateEditor(view, newCurrent, DoNotChangeCurrentEditor);
} else { } else {
QModelIndex idx = d->m_editorModel->firstRestoredEditor(); OpenEditorsModel::Entry *entry = d->m_editorModel->firstRestoredEditor();
if (idx.isValid()) if (entry)
activateEditorForIndex(view, idx, DoNotChangeCurrentEditor); activateEditorForEntry(view, entry, DoNotChangeCurrentEditor);
} }
} }
...@@ -1237,24 +1250,23 @@ Core::IEditor *EditorManager::pickUnusedEditor() const ...@@ -1237,24 +1250,23 @@ Core::IEditor *EditorManager::pickUnusedEditor() const
return 0; return 0;
} }
void EditorManager::activateEditorForIndex(const QModelIndex &index, OpenEditorFlags flags) void EditorManager::activateEditorForEntry(OpenEditorsModel::Entry *entry, OpenEditorFlags flags)
{ {
activateEditorForIndex(currentEditorView(), index, flags); activateEditorForEntry(currentEditorView(), entry, flags);
} }
void EditorManager::activateEditorForIndex(Internal::EditorView *view, const QModelIndex &index, OpenEditorFlags flags) void EditorManager::activateEditorForEntry(Internal::EditorView *view, OpenEditorsModel::Entry *entry, OpenEditorFlags flags)
{ {
Q_ASSERT(view); QTC_ASSERT(view, return);
IEditor *editor = index.data(Qt::UserRole).value<IEditor*>(); QTC_ASSERT(entry, return);
IEditor *editor = entry->editor;
if (editor) { if (editor) {
activateEditor(view, editor, flags); activateEditor(view, editor, flags);
return; return;
} }
QString fileName = index.data(Qt::UserRole + 1).toString(); if (!openEditor(view, entry->fileName(), entry->id(), flags))
Core::Id id = index.data(Qt::UserRole + 2).value<Core::Id>(); d->m_editorModel->removeEntry(entry);
if (!openEditor(view, fileName, id, flags))
d->m_editorModel->removeEditor(index);
} }
void EditorManager::activateView(EditorView *view) void EditorManager::activateView(EditorView *view)
...@@ -2226,19 +2238,19 @@ QByteArray EditorManager::saveState() const ...@@ -2226,19 +2238,19 @@ QByteArray EditorManager::saveState() const
stream << d->m_editorStates; stream << d->m_editorStates;
QList<OpenEditorsModel::Entry> entries = d->m_editorModel->entries(); QList<OpenEditorsModel::Entry *> entries = d->m_editorModel->entries();
int entriesCount = 0; int entriesCount = 0;
foreach (const OpenEditorsModel::Entry &entry, entries) { foreach (OpenEditorsModel::Entry *entry, entries) {
// The editor may be 0 if it was not loaded yet: In that case it is not temporary // The editor may be 0 if it was not loaded yet: In that case it is not temporary
if (!entry.editor || !entry.editor->isTemporary()) if (!entry->editor || !entry->editor->isTemporary())
++entriesCount; ++entriesCount;
} }
stream << entriesCount; stream << entriesCount;
foreach (const OpenEditorsModel::Entry &entry, entries) { foreach (OpenEditorsModel::Entry *entry, entries) {
if (!entry.editor || !entry.editor->isTemporary()) if (!entry->editor || !entry->editor->isTemporary())
stream << entry.fileName() << entry.displayName() << entry.id(); stream << entry->fileName() << entry->displayName() << entry->id();
} }
stream << d->m_root.first()->saveState(); // TODO stream << d->m_root.first()->saveState(); // TODO
......
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
#include "../core_global.h" #include "../core_global.h"
#include "openeditorsmodel.h"
#include <coreplugin/id.h> #include <coreplugin/id.h>
#include <coreplugin/idocument.h> // enumerations #include <coreplugin/idocument.h> // enumerations
...@@ -40,7 +42,6 @@ ...@@ -40,7 +42,6 @@
#include <QMenu> #include <QMenu>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QModelIndex;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace Core { namespace Core {
...@@ -63,8 +64,6 @@ enum MakeWritableResult { ...@@ -63,8 +64,6 @@ enum MakeWritableResult {
Failed Failed
}; };
class OpenEditorsModel;
namespace Internal { namespace Internal {
class EditorClosingCoreListener; class EditorClosingCoreListener;
class EditorView; class EditorView;
...@@ -132,11 +131,11 @@ public: ...@@ -132,11 +131,11 @@ public:
QList<IEditor*> openedEditors() const; QList<IEditor*> openedEditors() const;
static void activateEditor(IEditor *editor, OpenEditorFlags flags = 0); static void activateEditor(IEditor *editor, OpenEditorFlags flags = 0);
void activateEditorForIndex(const QModelIndex &index, OpenEditorFlags = 0); void activateEditorForEntry(OpenEditorsModel::Entry *entry, OpenEditorFlags flags = 0);
IEditor *activateEditorForDocument(Internal::EditorView *view, IDocument *document, OpenEditorFlags flags = 0); IEditor *activateEditorForDocument(Internal::EditorView *view, IDocument *document, OpenEditorFlags flags = 0);
OpenEditorsModel *openedEditorsModel() const; OpenEditorsModel *openedEditorsModel() const;
void closeEditor(const QModelIndex &index); void closeEditor(OpenEditorsModel::Entry *entry);
void closeOtherEditors(IEditor *editor); void closeOtherEditors(IEditor *editor);
QList<IEditor*> editorsForDocuments(QList<IDocument *> documents) const; QList<IEditor*> editorsForDocuments(QList<IDocument *> documents) const;
...@@ -184,8 +183,8 @@ public: ...@@ -184,8 +183,8 @@ public:
void setWindowTitleAddition(const QString &addition); void setWindowTitleAddition(const QString &addition);
QString windowTitleAddition() const; QString windowTitleAddition() const;
void addSaveAndCloseEditorActions(QMenu *contextMenu, const QModelIndex &editorIndex); void addSaveAndCloseEditorActions(QMenu *contextMenu, OpenEditorsModel::Entry *entry);
void addNativeDirActions(QMenu *contextMenu, const QModelIndex &editorIndex); void addNativeDirActions(QMenu *contextMenu, OpenEditorsModel::Entry *entry);
signals: signals:
void currentEditorChanged(Core::IEditor *editor); void currentEditorChanged(Core::IEditor *editor);
...@@ -259,7 +258,7 @@ private: ...@@ -259,7 +258,7 @@ private:
IEditor *placeEditor(Internal::EditorView *view, IEditor *editor); IEditor *placeEditor(Internal::EditorView *view, IEditor *editor);
IEditor *duplicateEditor(IEditor *editor); IEditor *duplicateEditor(IEditor *editor);
IEditor *activateEditor(Internal::EditorView *view, IEditor *editor, OpenEditorFlags flags = 0); IEditor *activateEditor(Internal::EditorView *view, IEditor *editor, OpenEditorFlags flags = 0);
void activateEditorForIndex(Internal::EditorView *view, const QModelIndex &index, OpenEditorFlags = 0); void activateEditorForEntry(Internal::EditorView *view, OpenEditorsModel::Entry *entry, OpenEditorFlags flags = 0);
void activateView(Internal::EditorView *view); void activateView(Internal::EditorView *view);
IEditor *openEditor(Internal::EditorView *view, const QString &fileName, IEditor *openEditor(Internal::EditorView *view, const QString &fileName,
const Id &id = Id(), OpenEditorFlags flags = 0, bool *newEditor = 0); const Id &id = Id(), OpenEditorFlags flags = 0, bool *newEditor = 0);
......
...@@ -291,15 +291,15 @@ void EditorView::removeEditor(IEditor *editor) ...@@ -291,15 +291,15 @@ void EditorView::removeEditor(IEditor *editor)
IEditor *EditorView::currentEditor() const IEditor *EditorView::currentEditor() const
{ {
if (m_container->count() > 0) if (m_editors.size() > 0)
return m_widgetEditorMap.value(m_container->currentWidget()); return m_widgetEditorMap.value(m_container->currentWidget());
return 0; return 0;
} }
void EditorView::listSelectionActivated(int index) void EditorView::listSelectionActivated(int index)
{ {
QAbstractItemModel *model = EditorManager::instance()->openedEditorsModel(); OpenEditorsModel *model = EditorManager::instance()->openedEditorsModel();
EditorManager::instance()->activateEditorForIndex(this, model->index(index, 0)); EditorManager::instance()->activateEditorForEntry(this, model->entryAtRow(index));
} }
void EditorView::splitHorizontally() void EditorView::splitHorizontally()
...@@ -338,7 +338,7 @@ void EditorView::setParentSplitterOrView(SplitterOrView *splitterOrView) ...@@ -338,7 +338,7 @@ void EditorView::setParentSplitterOrView(SplitterOrView *splitterOrView)
void EditorView::setCurrentEditor(IEditor *editor) void EditorView::setCurrentEditor(IEditor *editor)
{ {
if (!editor || m_container->count() <= 0 if (!editor || m_container->count() <= 0
|| m_container->indexOf(editor->widget()) == -1) { || m_container->indexOf(editor->widget()) == -1) {
m_toolBar->updateEditorStatus(0); m_toolBar->updateEditorStatus(0);
m_infoBarDisplay->setInfoBar(0); m_infoBarDisplay->setInfoBar(0);
QTC_CHECK(m_container->count() == 0); QTC_CHECK(m_container->count() == 0);
...@@ -360,12 +360,12 @@ void EditorView::setCurrentEditor(IEditor *editor) ...@@ -360,12 +360,12 @@ void EditorView::setCurrentEditor(IEditor *editor)
int EditorView::editorCount() const int EditorView::editorCount() const
{ {
return m_container->count(); return m_editors.size();
} }
QList<IEditor *> EditorView::editors() const QList<IEditor *> EditorView::editors() const
{ {
return m_widgetEditorMap.values(); return m_editors;
} }
void EditorView::updateEditorHistory(IEditor *editor) void EditorView::updateEditorHistory(IEditor *editor)
...@@ -788,9 +788,9 @@ void SplitterOrView::restoreState(const QByteArray &state) ...@@ -788,9 +788,9 @@ void SplitterOrView::restoreState(const QByteArray &state)
| Core::EditorManager::DoNotChangeCurrentEditor); | Core::EditorManager::DoNotChangeCurrentEditor);
if (!e) { if (!e) {
QModelIndex idx = em->openedEditorsModel()->firstRestoredEditor(); OpenEditorsModel::Entry *entry = em->openedEditorsModel()->firstRestoredEditor();
if (idx.isValid()) if (entry)
em->activateEditorForIndex(view(), idx, Core::EditorManager::IgnoreNavigationHistory em->activateEditorForEntry(view(), entry, Core::EditorManager::IgnoreNavigationHistory
| Core::EditorManager::DoNotChangeCurrentEditor); | Core::EditorManager::DoNotChangeCurrentEditor);
} }
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
#include "ieditor.h" #include "ieditor.h"
#include "idocument.h" #include "idocument.h"
#include <utils/qtcassert.h>
#include <QDir> #include <QDir>
#include <QIcon> #include <QIcon>
...@@ -43,7 +45,7 @@ struct OpenEditorsModelPrivate ...@@ -43,7 +45,7 @@ struct OpenEditorsModelPrivate
const QIcon m_lockedIcon; const QIcon m_lockedIcon;
const QIcon m_unlockedIcon; const QIcon m_unlockedIcon;
QList<OpenEditorsModel::Entry> m_editors; QList<OpenEditorsModel::Entry *> m_editors;
QList<IEditor *> m_duplicateEditors; QList<IEditor *> m_duplicateEditors;
}; };
...@@ -93,8 +95,9 @@ Id OpenEditorsModel::Entry::id() const ...@@ -93,8 +95,9 @@ Id OpenEditorsModel::Entry::id() const
int OpenEditorsModel::columnCount(const QModelIndex &parent) const int OpenEditorsModel::columnCount(const QModelIndex &parent) const
{ {
Q_UNUSED(parent) if (!parent.isValid())
return 2; return 2;
return 0;
} }
int OpenEditorsModel::rowCount(const QModelIndex &parent) const int OpenEditorsModel::rowCount(const QModelIndex &parent) const
...@@ -107,9 +110,9 @@ int OpenEditorsModel::rowCount(const QModelIndex &parent) const ...@@ -107,9 +110,9 @@ int OpenEditorsModel::rowCount(const QModelIndex &parent) const
QList<IEditor *> OpenEditorsModel::editors() const QList<IEditor *> OpenEditorsModel::editors() const
{ {