#include "debuggerplugin.h"
#include "debuggerstringutils.h"
#include "stackframe.h"
+#include "debuggerconstants.h"
#include <coreplugin/coreconstants.h>
#include <coreplugin/editormanager/editormanager.h>
Core::Constants::K_DEFAULT_TEXT_EDITOR_ID,
&titlePattern));
QTC_ASSERT(d->editor, return);
- d->editor->setProperty("OpenedByDebugger", true);
- d->editor->setProperty("DisassemblerView", true);
+ d->editor->setProperty(Debugger::Constants::OPENED_BY_DEBUGGER, true);
+ d->editor->setProperty(Debugger::Constants::OPENED_WITH_DISASSEMBLY, true);
d->configureMimeType();
}
if (theDebuggerBoolSetting(CloseBuffersOnExit)) {
if (EditorManager *editorManager = EditorManager::instance()) {
QList<IEditor *> toClose;
- foreach (IEditor *editor, editorManager->openedEditors())
- if (editor->property("OpenedByDebugger").toBool())
- toClose.append(editor);
+ foreach (IEditor *editor, editorManager->openedEditors()) {
+ if (editor->property(Debugger::Constants::OPENED_BY_DEBUGGER).toBool()) {
+ // close disassembly views. close other opened files if they are not modified and not current editor
+ if (editor->property(Debugger::Constants::OPENED_WITH_DISASSEMBLY).toBool()
+ || (!editor->file()->isModified() && editor != editorManager->currentEditor())) {
+ toClose.append(editor);
+ } else {
+ editor->setProperty(Debugger::Constants::OPENED_BY_DEBUGGER, false);
+ }
+ }
+ }
editorManager->closeEditors(toClose);
}
}
if (!editor)
return;
if (newEditor)
- editor->setProperty("OpenedByDebugger", true);
+ editor->setProperty(Debugger::Constants::OPENED_BY_DEBUGGER, true);
if (setMarker)
m_locationMark.reset(new LocationMark(file, line));
}