From a2d5cb353440d80c464c2531be8a4c2211113d03 Mon Sep 17 00:00:00 2001 From: Aurindam Jana <aurindam.jana@nokia.com> Date: Wed, 21 Dec 2011 10:22:55 +0100 Subject: [PATCH] QmlEngine: Source Files Check for open editors with same display name before creating a new editor to show the internal sources. Change-Id: I53b365fb6c29d33922936bb4eb4dfb9476d5978e Reviewed-by: Kai Koehne <kai.koehne@nokia.com> --- src/plugins/debugger/qml/qmlengine.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index fa57b738107..929b16d889e 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -348,23 +348,27 @@ void QmlEngine::gotoLocation(const Location &location) // TODO: QUrl::isLocalFile() once we depend on Qt 4.8 if (QUrl(fileName).scheme().compare(QLatin1String("file"), Qt::CaseInsensitive) == 0) { // internal file from source files -> show generated .js - QString fileName = location.fileName(); QTC_ASSERT(d->m_sourceDocuments.contains(fileName), return); const QString jsSource = d->m_sourceDocuments.value(fileName)->toPlainText(); Core::IEditor *editor = 0; Core::EditorManager *editorManager = Core::EditorManager::instance(); - QList<Core::IEditor *> editors = editorManager->editorsForFileName(location.fileName()); - if (editors.isEmpty()) { - QString titlePattern = tr("JS Source for %1").arg(fileName); + QString titlePattern = tr("JS Source for %1").arg(fileName); + //Check if there are open editors with the same title + QList<Core::IEditor *> editors = editorManager->openedEditors(); + foreach (Core::IEditor *ed, editors) { + if (ed->displayName() == titlePattern) { + editor = ed; + break; + } + } + if (!editor) { editor = editorManager->openEditorWithContents(QmlJSEditor::Constants::C_QMLJSEDITOR_ID, &titlePattern); if (editor) { editor->setProperty(Constants::OPENED_BY_DEBUGGER, true); } - } else { - editor = editors.back(); } TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor*>(editor); -- GitLab