summaryrefslogtreecommitdiff
path: root/src/plugins/debugger
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2010-10-08 17:44:11 +0200
committerhjk <qtc-committer@nokia.com>2010-10-08 17:45:42 +0200
commit8ae109b8ac3fbee534c47bcc5e757b2446746db2 (patch)
tree3ed20364af8bf2b99534d0784297f5862225b9c6 /src/plugins/debugger
parent903eaf34d3f80fa7f77ac2f881a1f56f03ff2d84 (diff)
downloadqt-creator-8ae109b8ac3fbee534c47bcc5e757b2446746db2.tar.gz
debugger: make "clever" behaviour on debugger exit optional
It hurts me. Reviewed-by: Alessandro Portale Task-number: QTCREATORBUG-808
Diffstat (limited to 'src/plugins/debugger')
-rw-r--r--src/plugins/debugger/commonoptionspage.ui24
-rw-r--r--src/plugins/debugger/debuggeractions.cpp12
-rw-r--r--src/plugins/debugger/debuggeractions.h4
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp23
4 files changed, 52 insertions, 11 deletions
diff --git a/src/plugins/debugger/commonoptionspage.ui b/src/plugins/debugger/commonoptionspage.ui
index 6d55c88a9e..7440d0bbdf 100644
--- a/src/plugins/debugger/commonoptionspage.ui
+++ b/src/plugins/debugger/commonoptionspage.ui
@@ -51,7 +51,27 @@
</property>
</widget>
</item>
- <item row="4" column="0">
+ <item row="4" column="0" colspan="2">
+ <widget class="QCheckBox" name="checkBoxCloseBuffersOnExit">
+ <property name="toolTip">
+ <string>Close temporary buffers on debugger exit.</string>
+ </property>
+ <property name="text">
+ <string>Close temporary buffers on debugger exit</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2">
+ <widget class="QCheckBox" name="checkBoxSwitchModeOnExit">
+ <property name="toolTip">
+ <string>Switch to previous mode on debugger exit.</string>
+ </property>
+ <property name="text">
+ <string>Switch to previous mode on debugger exit.</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
<widget class="QLabel" name="labelMaximalStackDepth">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
@@ -64,7 +84,7 @@
</property>
</widget>
</item>
- <item row="4" column="1">
+ <item row="6" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QSpinBox" name="spinBoxMaximalStackDepth">
diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp
index 424abcd4c1..3774c37793 100644
--- a/src/plugins/debugger/debuggeractions.cpp
+++ b/src/plugins/debugger/debuggeractions.cpp
@@ -370,6 +370,18 @@ DebuggerSettings *DebuggerSettings::instance()
instance->insertItem(GdbScriptFile, item);
item = new SavedAction(instance);
+ item->setSettingsKey(debugModeGroup, QLatin1String("CloseBuffersOnExit"));
+ item->setCheckable(true);
+ item->setDefaultValue(false);
+ instance->insertItem(CloseBuffersOnExit, item);
+
+ item = new SavedAction(instance);
+ item->setSettingsKey(debugModeGroup, QLatin1String("SwitchModeOnExit"));
+ item->setCheckable(true);
+ item->setDefaultValue(false);
+ instance->insertItem(SwitchModeOnExit, item);
+
+ item = new SavedAction(instance);
item->setSettingsKey(debugModeGroup, QLatin1String("AutoQuit"));
item->setText(tr("Automatically Quit Debugger"));
item->setCheckable(true);
diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h
index bf8f54a71e..72845ec2db 100644
--- a/src/plugins/debugger/debuggeractions.h
+++ b/src/plugins/debugger/debuggeractions.h
@@ -92,7 +92,8 @@ enum DebuggerActionCode
LogTimeStamps,
VerboseLog,
OperateByInstruction,
- AutoDerefPointers,
+ CloseBuffersOnExit,
+ SwitchModeOnExit,
UseDebuggingHelpers,
UseCustomDebuggingHelperLocation,
@@ -125,6 +126,7 @@ enum DebuggerActionCode
ShowStdNamespace,
ShowQtNamespace,
SortStructMembers,
+ AutoDerefPointers,
// Source List
ListSourceFiles,
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index c3ffb668f3..f00f908a79 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -561,6 +561,10 @@ QWidget *CommonOptionsPage::createPage(QWidget *parent)
m_ui.checkBoxUseAlternatingRowColors);
m_group.insert(theDebuggerAction(UseToolTipsInMainEditor),
m_ui.checkBoxUseToolTipsInMainEditor);
+ m_group.insert(theDebuggerAction(CloseBuffersOnExit),
+ m_ui.checkBoxCloseBuffersOnExit);
+ m_group.insert(theDebuggerAction(SwitchModeOnExit),
+ m_ui.checkBoxSwitchModeOnExit);
m_group.insert(theDebuggerAction(AutoDerefPointers), 0);
m_group.insert(theDebuggerAction(UseToolTipsInLocalsView), 0);
m_group.insert(theDebuggerAction(UseToolTipsInBreakpointsView), 0);
@@ -2127,12 +2131,14 @@ void DebuggerPluginPrivate::cleanupViews()
//if (d->m_engine)
// d->m_engine->cleanup();
- if (EditorManager *editorManager = EditorManager::instance()) {
- QList<IEditor *> toClose;
- foreach (IEditor *editor, editorManager->openedEditors())
- if (editor->property("OpenedByDebugger").toBool())
- toClose.append(editor);
- editorManager->closeEditors(toClose);
+ if (theDebuggerBoolSetting(CloseBuffersOnExit)) {
+ if (EditorManager *editorManager = EditorManager::instance()) {
+ QList<IEditor *> toClose;
+ foreach (IEditor *editor, editorManager->openedEditors())
+ if (editor->property("OpenedByDebugger").toBool())
+ toClose.append(editor);
+ editorManager->closeEditors(toClose);
+ }
}
}
@@ -2834,8 +2840,9 @@ void DebuggerPlugin::runControlFinished(DebuggerRunControl *runControl)
Q_UNUSED(runControl);
d->m_snapshotHandler->removeSnapshot(runControl);
d->disconnectEngine();
- if (d->m_snapshotHandler->size() == 0)
- d->activatePreviousMode();
+ if (theDebuggerBoolSetting(SwitchModeOnExit))
+ if (d->m_snapshotHandler->size() == 0)
+ d->activatePreviousMode();
}
DebuggerLanguages DebuggerPlugin::activeLanguages() const