diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp
index d766f987ef6..f93819c6e9a 100644
--- a/src/plugins/debugger/debuggeractions.cpp
+++ b/src/plugins/debugger/debuggeractions.cpp
@@ -64,7 +64,7 @@ DebuggerSettings::~DebuggerSettings()
void DebuggerSettings::insertItem(int code, SavedAction *item)
{
- QTC_ASSERT(!m_items.contains(code), return);
+ QTC_ASSERT(!m_items.contains(code), qDebug() << code << item->toString(); return);
m_items[code] = item;
}
@@ -115,6 +115,10 @@ DebuggerSettings *theDebuggerSettings()
SavedAction *item = 0;
+ item = new SavedAction(instance);
+ instance->insertItem(SettingsDialog, item);
+ item->setText(QObject::tr("Debugger properties..."));
+
//
// View
//
@@ -141,7 +145,6 @@ DebuggerSettings *theDebuggerSettings()
item = new SavedAction(instance);
instance->insertItem(WatchExpressionInWindow, item);
item->setTextPattern(QObject::tr("Watch expression \"%1\" in separate window"));
- //item->setCheckable(true);
item = new SavedAction(instance);
instance->insertItem(AssignValue, item);
@@ -158,14 +161,29 @@ DebuggerSettings *theDebuggerSettings()
// Dumpers
//
item = new SavedAction(instance);
- instance->insertItem(SettingsDialog, item);
- item->setText(QObject::tr("Debugger properties..."));
+ instance->insertItem(UseDumpers, item);
+ item->setDefaultValue(true);
+ item->setSettingsKey("DebugMode", "UseDumpers");
+ item->setText(QObject::tr("Use data dumpers"));
+ item->setCheckable(true);
+ item->setDefaultValue(true);
+
+ item = new SavedAction(instance);
+ instance->insertItem(UseCustomDumperLocation, item);
+ item->setSettingsKey("DebugMode", "CustomDumperLocation");
+ item->setCheckable(true);
+
+ item = new SavedAction(instance);
+ instance->insertItem(CustomDumperLocation, item);
+ item->setSettingsKey("DebugMode", "CustomDumperLocation");
item = new SavedAction(instance);
instance->insertItem(DebugDumpers, item);
- item->setText(QObject::tr("Debug custom dumpers"));
+ item->setSettingsKey("DebugMode", "DebugDumpers");
+ item->setText(QObject::tr("Debug data dumpers"));
item->setCheckable(true);
+
item = new SavedAction(instance);
item->setText(QObject::tr("Recheck custom dumper availability"));
instance->insertItem(RecheckDumpers, item);
@@ -227,20 +245,6 @@ DebuggerSettings *theDebuggerSettings()
instance->insertItem(FormatNatural, item);
registerFormatGroup->addAction(item);
- //
- // Misc
- //
-
- item = new SavedAction(instance);
- instance->insertItem(SkipKnownFrames, item);
- item->setText(QObject::tr("Skip known frames"));
- item->setCheckable(true);
-
- item = new SavedAction(instance);
- instance->insertItem(UseToolTips, item);
- item->setText(QObject::tr("Use tooltips when debugging"));
- item->setCheckable(true);
-
//
// Settings
@@ -266,33 +270,9 @@ DebuggerSettings *theDebuggerSettings()
item = new SavedAction(instance);
instance->insertItem(UseToolTips, item);
item->setSettingsKey("DebugMode", "UseToolTips");
-
- item = new SavedAction(instance);
- instance->insertItem(DisplayRawData, item);
- item->setSettingsKey("DebugMode", "DisplayRawData");
- item->setText(QObject::tr("Display raw data"));
+ item->setText(QObject::tr("Use tooltips when debugging"));
item->setCheckable(true);
- item = new SavedAction(instance);
- instance->insertItem(UseDefaultDumperLocation, item);
- item->setDefaultValue(true);
- item->setSettingsKey("DebugMode", "UseDefaultDumperLocation");
- item->setCheckable(true);
-
- item = new SavedAction(instance);
- instance->insertItem(UseCustomDumperLocation, item);
- item->setSettingsKey("DebugMode", "CustomDumperLocation");
- item->setCheckable(true);
-
- item = new SavedAction(instance);
- instance->insertItem(DisplayRawData, item);
- item->setSettingsKey("DebugMode", "DisplayRawData");
- item->setCheckable(true);
-
- item = new SavedAction(instance);
- instance->insertItem(CustomDumperLocation, item);
- item->setSettingsKey("DebugMode", "CustomDumperLocation");
-
item = new SavedAction(instance);
instance->insertItem(TerminalApplication, item);
item->setDefaultValue("xterm");
@@ -307,10 +287,8 @@ DebuggerSettings *theDebuggerSettings()
item = new SavedAction(instance);
instance->insertItem(SkipKnownFrames, item);
item->setSettingsKey("DebugMode", "SkipKnownFrames");
-
- item = new SavedAction(instance);
- instance->insertItem(DebugDumpers, item);
- item->setSettingsKey("DebugMode", "DebugDumpers");
+ item->setText(QObject::tr("Skip known frames"));
+ item->setCheckable(true);
item = new SavedAction(instance);
instance->insertItem(AllPluginBreakpoints, item);
diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h
index 5e6b986820f..3972aafce2a 100644
--- a/src/plugins/debugger/debuggeractions.h
+++ b/src/plugins/debugger/debuggeractions.h
@@ -87,9 +87,8 @@ enum DebuggerActionCode
CollapseItem,
RecheckDumpers,
- DisplayRawData,
+ UseDumpers,
UseCustomDumperLocation,
- UseDefaultDumperLocation,
CustomDumperLocation,
DebugDumpers,
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 6477f969bbe..3db99a052a0 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -345,6 +345,8 @@ public:
void finish() { m_group.finish(); }
private:
+ Q_SLOT void updateState();
+
friend class DebuggerPlugin;
Ui::DumperOptionPage m_ui;
@@ -362,16 +364,16 @@ QWidget *DumperOptionPage::createPage(QWidget *parent)
m_ui.dumperLocationChooser->setInitialBrowsePathBackup(
Core::ICore::instance()->resourcePath() + "../../lib");
- connect(m_ui.radioButtonUseCustomDumperLocation, SIGNAL(toggled(bool)),
- m_ui.dumperLocationChooser, SLOT(setEnabled(bool)));
+ connect(m_ui.checkBoxUseDumpers, SIGNAL(toggled(bool)),
+ this, SLOT(updateState()));
+ connect(m_ui.checkBoxUseCustomDumperLocation, SIGNAL(toggled(bool)),
+ this, SLOT(updateState()));
m_group.clear();
- m_group.insert(theDebuggerAction(DisplayRawData),
- m_ui.radioButtonDisplayRawData);
+ m_group.insert(theDebuggerAction(UseDumpers),
+ m_ui.checkBoxUseDumpers);
m_group.insert(theDebuggerAction(UseCustomDumperLocation),
- m_ui.radioButtonUseCustomDumperLocation);
- m_group.insert(theDebuggerAction(UseDefaultDumperLocation),
- m_ui.radioButtonUseDefaultDumperLocation);
+ m_ui.checkBoxUseCustomDumperLocation);
m_group.insert(theDebuggerAction(CustomDumperLocation),
m_ui.dumperLocationChooser);
@@ -394,6 +396,15 @@ QWidget *DumperOptionPage::createPage(QWidget *parent)
return w;
}
+void DumperOptionPage::updateState()
+{
+ m_ui.checkBoxUseCustomDumperLocation->setEnabled(
+ m_ui.checkBoxUseDumpers->isChecked());
+ m_ui.dumperLocationChooser->setEnabled(
+ m_ui.checkBoxUseDumpers->isChecked()
+ && m_ui.checkBoxUseCustomDumperLocation->isChecked());
+}
+
} // namespace Internal
} // namespace Debugger
diff --git a/src/plugins/debugger/dumperoptionpage.ui b/src/plugins/debugger/dumperoptionpage.ui
index 874ff24e184..43a6a1ae818 100644
--- a/src/plugins/debugger/dumperoptionpage.ui
+++ b/src/plugins/debugger/dumperoptionpage.ui
@@ -6,81 +6,95 @@
0
0
- 398
- 426
+ 403
+ 434
Form
-
- -
-
-
- Location of data dumper helper library
+
+
-
+
+
+ This will enable nice display of Qt and Standard Library objects in the Locals&Watchers view
+
+
+ Use data dumpers
-
-
-
-
-
- This will load a dumper library
-
-
- Use dumpers from default location
-
-
-
- -
-
-
- Use dumpers from custom location
-
-
-
- -
-
-
-
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Preferred
-
-
-
- 10
- 10
-
-
-
-
- -
-
-
- Location:
-
-
-
- -
-
-
-
-
- -
-
-
- This will disable nice display of Qt and Standard Library objects in the Locals&Watchers view
-
-
- Do not use data dumpers
-
-
-
-
- -
+
-
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 10
+ 10
+
+
+
+
+ -
+
+
+ This will load a dumper library
+
+
+ Use dumpers from custom location
+
+
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 20
+ 20
+
+
+
+
+ -
+
+
+ Location:
+
+
+
+ -
+
+
+
+
+ -
+
+
+ This is an internal tool to make debugging the Custom Data Dumper code easier. Using this action is in general not needed unless you want do debug Qt Creator itself.
+
+
+ Debug custom dumpers
+
+
+
+ -
Qt::Vertical
@@ -93,17 +107,14 @@
- -
-
-
- This is an internal tool to make debugging the Custom Data Dumper code easier. Using this action is in general not needed unless you want do debug Qt Creator itself.
-
-
- Debug custom dumpers
-
-
-
+ checkBoxDebugDumpers
+ checkBoxUseDumpers
+ checkBoxUseDefaultDumperLocation
+ horizontalSpacer
+ labelDumperLocation
+ horizontalSpacer_2
+ labelDumperLocation
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index 857c220f5d8..c206831ad07 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -210,8 +210,8 @@ void GdbEngine::initializeConnections()
q, SLOT(showApplicationOutput(QString)),
Qt::QueuedConnection);
- connect(theDebuggerAction(DisplayRawData), SIGNAL(valueChanged(QVariant)),
- this, SLOT(setDisplayRawData(QVariant)));
+ connect(theDebuggerAction(UseDumpers), SIGNAL(valueChanged(QVariant)),
+ this, SLOT(setUseDumpers(QVariant)));
connect(theDebuggerAction(DebugDumpers), SIGNAL(valueChanged(QVariant)),
this, SLOT(setDebugDumpers(QVariant)));
connect(theDebuggerAction(RecheckDumpers), SIGNAL(triggered()),
@@ -2849,7 +2849,7 @@ static void setWatchDataSAddress(WatchData &data, const GdbMi &mi)
data.saddr = mi.data();
}
-void GdbEngine::setDisplayRawData(const QVariant &on)
+void GdbEngine::setUseDumpers(const QVariant &on)
{
qDebug() << "SWITCHING ON/OFF DUMPER DEBUGGING:" << on;
// FIXME: a bit too harsh, but otherwise the treeview sometimes look funny
@@ -2860,7 +2860,7 @@ void GdbEngine::setDisplayRawData(const QVariant &on)
bool GdbEngine::isCustomValueDumperAvailable(const QString &type) const
{
- if (theDebuggerBoolSetting(DisplayRawData))
+ if (!theDebuggerBoolSetting(UseDumpers))
return false;
if (q->startMode() == AttachCore) {
@@ -3991,10 +3991,7 @@ QString GdbEngine::dumperLibraryName() const
{
if (theDebuggerAction(UseCustomDumperLocation)->value().toBool())
return theDebuggerAction(CustomDumperLocation)->value().toString();
- if (theDebuggerAction(UseDefaultDumperLocation)->value().toBool())
- return q->m_dumperLib;
- QTC_ASSERT(false, /**/);
- return QString();
+ return q->m_dumperLib;
}
void GdbEngine::tryLoadCustomDumpers()
diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h
index 07d2ee195df..49b823e957b 100644
--- a/src/plugins/debugger/gdbengine.h
+++ b/src/plugins/debugger/gdbengine.h
@@ -131,7 +131,7 @@ private:
void loadAllSymbols();
Q_SLOT void setDebugDumpers(const QVariant &on);
- Q_SLOT void setDisplayRawData(const QVariant &on);
+ Q_SLOT void setUseDumpers(const QVariant &on);
//
// Own stuff
diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp
index 816274d5431..e10d39319b6 100644
--- a/src/plugins/debugger/watchwindow.cpp
+++ b/src/plugins/debugger/watchwindow.cpp
@@ -177,7 +177,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
menu.addSeparator();
menu.addAction(theDebuggerAction(RecheckDumpers));
- menu.addAction(theDebuggerAction(DisplayRawData));
+ menu.addAction(theDebuggerAction(UseDumpers));
menu.addSeparator();
menu.addAction(theDebuggerAction(SettingsDialog));