From 66674d3ae97515da33e7ec1d68db71a2f967938f Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Thu, 19 Mar 2009 10:54:27 +0100 Subject: [PATCH] debugger: more actions reshuffling --- src/plugins/debugger/breakwindow.cpp | 2 +- src/plugins/debugger/breakwindow.h | 2 +- src/plugins/debugger/debuggeractions.cpp | 161 ++++++++++++----------- src/plugins/debugger/debuggeractions.h | 29 ++-- src/plugins/debugger/debuggermanager.cpp | 2 +- src/plugins/debugger/debuggerplugin.cpp | 64 +++++---- src/plugins/debugger/gdbengine.cpp | 42 +++--- src/plugins/debugger/watchhandler.cpp | 6 +- src/plugins/debugger/watchwindow.cpp | 11 +- 9 files changed, 161 insertions(+), 158 deletions(-) diff --git a/src/plugins/debugger/breakwindow.cpp b/src/plugins/debugger/breakwindow.cpp index cba44315492..8f3b533f581 100644 --- a/src/plugins/debugger/breakwindow.cpp +++ b/src/plugins/debugger/breakwindow.cpp @@ -101,7 +101,7 @@ void BreakWindow::contextMenuEvent(QContextMenuEvent *ev) menu.addAction(act1); menu.addAction(act2); menu.addAction(act4); - menu.addAction(theDebuggerSettings()->action(SettingsDialog)); + menu.addAction(theDebuggerSetting(SettingsDialog)->action()); QAction *act = menu.exec(ev->globalPos()); diff --git a/src/plugins/debugger/breakwindow.h b/src/plugins/debugger/breakwindow.h index 8b8b9cdd8ba..dd0795e1911 100644 --- a/src/plugins/debugger/breakwindow.h +++ b/src/plugins/debugger/breakwindow.h @@ -30,7 +30,7 @@ #ifndef DEBUGGER_BREAKWINDOW_H #define DEBUGGER_BREAKWINDOW_H -#include <QTreeView> +#include <QtGui/QTreeView> namespace Debugger { namespace Internal { diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp index f0726d65511..94658c65833 100644 --- a/src/plugins/debugger/debuggeractions.cpp +++ b/src/plugins/debugger/debuggeractions.cpp @@ -189,9 +189,11 @@ void QtcSettingsItem::connectWidget(QWidget *widget, ApplyMode applyMode) } } -void QtcSettingsItem::applyDeferedChange() +void QtcSettingsItem::apply(QSettings *s) { setValue(m_deferedValue); + if (s) + writeSettings(s); } void QtcSettingsItem::uncheckableButtonClicked() @@ -248,85 +250,44 @@ void QtcSettingsItem::actionTriggered(bool on) ////////////////////////////////////////////////////////////////////////// // -// QtcSettings +// QtcSettingsPool // ////////////////////////////////////////////////////////////////////////// -QtcSettings::QtcSettings(QObject *parent) +QtcSettingsPool::QtcSettingsPool(QObject *parent) : QObject(parent) {} -QtcSettings::~QtcSettings() +QtcSettingsPool::~QtcSettingsPool() { qDeleteAll(m_items); } -QtcSettingsItem *QtcSettings::createItem(int code) -{ - return m_items[code] = new QtcSettingsItem; -} - -void QtcSettings::insertItem(int code, QtcSettingsItem *item) +void QtcSettingsPool::insertItem(int code, QtcSettingsItem *item) { m_items[code] = item; } -void QtcSettings::readSettings(QSettings *settings) +void QtcSettingsPool::readSettings(QSettings *settings) { foreach (QtcSettingsItem *item, m_items) item->readSettings(settings); } -void QtcSettings::writeSettings(QSettings *settings) +void QtcSettingsPool::writeSettings(QSettings *settings) { foreach (QtcSettingsItem *item, m_items) item->writeSettings(settings); } -QtcSettingsItem *QtcSettings::item(int code) +QtcSettingsItem *QtcSettingsPool::item(int code) { QTC_ASSERT(m_items.value(code, 0), return 0); return m_items.value(code, 0); } -bool QtcSettings::boolValue(int code) -{ - return item(code)->value().toBool(); -} - -QString QtcSettings::stringValue(int code) -{ - return item(code)->value().toString(); -} - -int QtcSettings::intValue(int code) -{ - return item(code)->value().toInt(); -} - -QAction *QtcSettings::action(int code) -{ - return item(code)->action(); -} - -void QtcSettings::applyDeferedChanges() -{ - foreach (QtcSettingsItem *item, m_items) - item->applyDeferedChange(); -} - -void QtcSettings::applyDeferedChange(int code) -{ - return item(code)->applyDeferedChange(); -} - -void QtcSettings::connectWidget(int code, QWidget *widget, ApplyMode applyMode) -{ - item(code)->connectWidget(widget, applyMode); -} - -QString QtcSettings::dump() +QString QtcSettingsPool::dump() { QString out; QTextStream ts(&out); @@ -338,7 +299,6 @@ QString QtcSettings::dump() - ////////////////////////////////////////////////////////////////////////// // // Debugger specific stuff @@ -368,59 +328,71 @@ QString QtcSettings::dump() #endif -QtcSettings *theDebuggerSettings() +QtcSettingsPool *theDebuggerSettings() { - static QtcSettings *instance = 0; + static QtcSettingsPool *instance = 0; if (instance) return instance; - instance = new QtcSettings; + instance = new QtcSettingsPool; QtcSettingsItem *item = 0; - item = instance->createItem(AdjustColumnWidths); + item = new QtcSettingsItem(instance); + instance->insertItem(AdjustColumnWidths, item); item->setText(QObject::tr("Adjust column widths to contents")); - item = instance->createItem(AlwaysAdjustColumnWidths); + item = new QtcSettingsItem(instance); + instance->insertItem(AlwaysAdjustColumnWidths, item); item->setText(QObject::tr("Always adjust column widths to contents")); item->action()->setCheckable(true); - item = instance->createItem(WatchExpression); + item = new QtcSettingsItem(instance); + instance->insertItem(WatchExpression, item); item->setTextPattern(QObject::tr("Watch expression \"%1\"")); - item = instance->createItem(RemoveWatchExpression); + item = new QtcSettingsItem(instance); + instance->insertItem(RemoveWatchExpression, item); item->setTextPattern(QObject::tr("Remove watch expression \"%1\"")); - item = instance->createItem(SettingsDialog); + item = new QtcSettingsItem(instance); + instance->insertItem(SettingsDialog, item); item->setText(QObject::tr("Debugger properties...")); - item = instance->createItem(DebugDumpers); + item = new QtcSettingsItem(instance); + instance->insertItem(DebugDumpers, item); item->setText(QObject::tr("Debug custom dumpers")); item->action()->setCheckable(true); - item = instance->createItem(RecheckDumpers); + item = new QtcSettingsItem(instance); + instance->insertItem(RecheckDumpers, item); item->setText(QObject::tr("Recheck custom dumper availability")); // // Breakpoints // - item = instance->createItem(SynchronizeBreakpoints); + item = new QtcSettingsItem(instance); + instance->insertItem(SynchronizeBreakpoints, item); item->setText(QObject::tr("Syncronize breakpoints")); // - item = instance->createItem(AutoQuit); + item = new QtcSettingsItem(instance); + instance->insertItem(AutoQuit, item); item->setText(QObject::tr("Automatically quit debugger")); item->action()->setCheckable(true); - item = instance->createItem(SkipKnownFrames); + item = new QtcSettingsItem(instance); + instance->insertItem(SkipKnownFrames, item); item->setText(QObject::tr("Skip known frames")); item->action()->setCheckable(true); - item = instance->createItem(UseToolTips); + item = new QtcSettingsItem(instance); + instance->insertItem(UseToolTips, item); item->setText(QObject::tr("Use tooltips when debugging")); item->action()->setCheckable(true); - item = instance->createItem(ListSourceFiles); + item = new QtcSettingsItem(instance); + instance->insertItem(ListSourceFiles, item); item->setText(QObject::tr("List source files")); item->action()->setCheckable(true); @@ -428,54 +400,83 @@ QtcSettings *theDebuggerSettings() // // Settings // - item = instance->createItem(GdbLocation); + item = new QtcSettingsItem(instance); + instance->insertItem(GdbLocation, item); item->setSettingsKey("DebugMode", "Location"); - item = instance->createItem(GdbEnvironment); + item = new QtcSettingsItem(instance); + instance->insertItem(GdbEnvironment, item); item->setSettingsKey("DebugMode", "Environment"); - item = instance->createItem(GdbScriptFile); + item = new QtcSettingsItem(instance); + instance->insertItem(GdbScriptFile, item); item->setSettingsKey("DebugMode", "ScriptFile"); - item = instance->createItem(GdbAutoQuit); + item = new QtcSettingsItem(instance); + instance->insertItem(GdbAutoQuit, item); item->setSettingsKey("DebugMode", "AutoQuit"); - item = instance->createItem(GdbAutoRun); + item = new QtcSettingsItem(instance); + instance->insertItem(GdbAutoRun, item); item->setSettingsKey("DebugMode", "AutoRun"); - item = instance->createItem(UseToolTips); + item = new QtcSettingsItem(instance); + instance->insertItem(UseToolTips, item); item->setSettingsKey("DebugMode", "UseToolTips"); - item = instance->createItem(UseDumpers); + item = new QtcSettingsItem(instance); + instance->insertItem(UseDumpers, item); item->setSettingsKey("DebugMode", "UseCustomDumpers"); item->setText(QObject::tr("Use custom dumpers")); item->action()->setCheckable(true); - item = instance->createItem(ListSourceFiles); + item = new QtcSettingsItem(instance); + instance->insertItem(ListSourceFiles, item); item->setSettingsKey("DebugMode", "ListSourceFiles"); - item = instance->createItem(SkipKnownFrames); + item = new QtcSettingsItem(instance); + instance->insertItem(SkipKnownFrames, item); item->setSettingsKey("DebugMode", "SkipKnownFrames"); - item = instance->createItem(DebugDumpers); + item = new QtcSettingsItem(instance); + instance->insertItem(DebugDumpers, item); item->setSettingsKey("DebugMode", "DebugDumpers"); - item = instance->createItem(AllPluginBreakpoints); + item = new QtcSettingsItem(instance); + instance->insertItem(AllPluginBreakpoints, item); item->setSettingsKey("DebugMode", "AllPluginBreakpoints"); - item = instance->createItem(SelectedPluginBreakpoints); + item = new QtcSettingsItem(instance); + instance->insertItem(SelectedPluginBreakpoints, item); item->setSettingsKey("DebugMode", "SelectedPluginBreakpoints"); - item = instance->createItem(NoPluginBreakpoints); + item = new QtcSettingsItem(instance); + instance->insertItem(NoPluginBreakpoints, item); item->setSettingsKey("DebugMode", "NoPluginBreakpoints"); - item = instance->createItem(SelectedPluginBreakpointsPattern); + item = new QtcSettingsItem(instance); + instance->insertItem(SelectedPluginBreakpointsPattern, item); item->setSettingsKey("DebugMode", "SelectedPluginBreakpointsPattern"); return instance; } +QtcSettingsItem *theDebuggerSetting(int code) +{ + return theDebuggerSettings()->item(code); +} + +bool theDebuggerBoolSetting(int code) +{ + return theDebuggerSettings()->item(code)->value().toBool(); +} + +QString theDebuggerStringSetting(int code) +{ + return theDebuggerSettings()->item(code)->value().toString(); +} + } // namespace Internal } // namespace Debugger diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h index 50b76b3da95..faf187f7229 100644 --- a/src/plugins/debugger/debuggeractions.h +++ b/src/plugins/debugger/debuggeractions.h @@ -33,6 +33,7 @@ #include <QtCore/QHash> #include <QtCore/QString> #include <QtCore/QVariant> +#include <QtCore/QList> QT_BEGIN_NAMESPACE class QAction; @@ -72,7 +73,7 @@ public: Q_SLOT virtual void writeSettings(QSettings *settings); virtual void connectWidget(QWidget *widget, ApplyMode applyMode = DeferedApply); - Q_SLOT virtual void applyDeferedChange(); + Q_SLOT virtual void apply(QSettings *settings); virtual QString text() const; Q_SLOT virtual void setText(const QString &value); @@ -102,29 +103,18 @@ private: QHash<QObject *, ApplyMode> m_applyModes; }; -class QtcSettings : public QObject +class QtcSettingsPool : public QObject { Q_OBJECT public: - QtcSettings(QObject *parent = 0); - ~QtcSettings(); + QtcSettingsPool(QObject *parent = 0); + ~QtcSettingsPool(); void insertItem(int code, QtcSettingsItem *item); - - QAction *action(int code); QtcSettingsItem *item(int code); - QtcSettingsItem *createItem(int code); - - // Convienience - bool boolValue(int code); - int intValue(int code); - QString stringValue(int code); - virtual QString dump(); - void connectWidget(int code, QWidget *, ApplyMode applyMode = DeferedApply); - void applyDeferedChange(int code); - void applyDeferedChanges(); + QString dump(); public slots: void readSettings(QSettings *settings); @@ -179,7 +169,12 @@ enum DebuggerSettingsCode }; // singleton access -QtcSettings *theDebuggerSettings(); +QtcSettingsPool *theDebuggerSettings(); +QtcSettingsItem *theDebuggerSetting(int code); + +// convienience +bool theDebuggerBoolSetting(int code); +QString theDebuggerStringSetting(int code); } // namespace Internal } // namespace Debugger diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 28cfaf27450..8369eb33111 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -1092,7 +1092,7 @@ void DebuggerManager::addToWatchWindow() if (!editor) return; QTextCursor tc = editor->textCursor(); - theDebuggerSettings()->item(WatchExpression)->setValue(tc.selectedText()); + theDebuggerSetting(WatchExpression)->setValue(tc.selectedText()); } void DebuggerManager::setBreakpoint(const QString &fileName, int lineNumber) diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 6fab94119cb..e37bea38a1d 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -264,34 +264,33 @@ QWidget *GdbOptionPage::createPage(QWidget *parent) { QWidget *w = new QWidget(parent); m_ui.setupUi(w); - QtcSettings *s = theDebuggerSettings(); m_ui.gdbLocationChooser->setExpectedKind(Core::Utils::PathChooser::Command); m_ui.gdbLocationChooser->setPromptDialogTitle(tr("Choose Gdb Location")); m_ui.scriptFileChooser->setExpectedKind(Core::Utils::PathChooser::File); m_ui.scriptFileChooser->setPromptDialogTitle(tr("Choose Location of Startup Script File")); - s->connectWidget(GdbLocation, m_ui.gdbLocationChooser); - s->connectWidget(GdbScriptFile, m_ui.scriptFileChooser); - s->connectWidget(GdbEnvironment, m_ui.environmentEdit); - - s->connectWidget(AllPluginBreakpoints, - m_ui.radioButtonAllPluginBreakpoints); - s->connectWidget(SelectedPluginBreakpoints, - m_ui.radioButtonSelectedPluginBreakpoints); - s->connectWidget(NoPluginBreakpoints, - m_ui.radioButtonNoPluginBreakpoints); - s->connectWidget(SelectedPluginBreakpointsPattern, - m_ui.lineEditSelectedPluginBreakpointsPattern); - - s->connectWidget(UseDumpers, m_ui.checkBoxUseDumpers); - s->connectWidget(SkipKnownFrames, m_ui.checkBoxSkipKnownFrames); - s->connectWidget(UseToolTips, m_ui.checkBoxUseToolTips); - s->connectWidget(DebugDumpers, m_ui.checkBoxDebugDumpers); - s->connectWidget(SelectedPluginBreakpointsPattern, - m_ui.lineEditSelectedPluginBreakpointsPattern); + theDebuggerSetting(GdbLocation)->connectWidget(m_ui.gdbLocationChooser); + theDebuggerSetting(GdbScriptFile)->connectWidget(m_ui.scriptFileChooser); + theDebuggerSetting(GdbEnvironment)->connectWidget(m_ui.environmentEdit); + + theDebuggerSetting(AllPluginBreakpoints) + ->connectWidget(m_ui.radioButtonAllPluginBreakpoints); + theDebuggerSetting(SelectedPluginBreakpoints) + ->connectWidget(m_ui.radioButtonSelectedPluginBreakpoints); + theDebuggerSetting(NoPluginBreakpoints) + ->connectWidget(m_ui.radioButtonNoPluginBreakpoints); + theDebuggerSetting(SelectedPluginBreakpointsPattern) + ->connectWidget(m_ui.lineEditSelectedPluginBreakpointsPattern); + + theDebuggerSetting(UseDumpers)->connectWidget(m_ui.checkBoxUseDumpers); + theDebuggerSetting(SkipKnownFrames)->connectWidget(m_ui.checkBoxSkipKnownFrames); + theDebuggerSetting(UseToolTips)->connectWidget(m_ui.checkBoxUseToolTips); + theDebuggerSetting(DebugDumpers)->connectWidget(m_ui.checkBoxDebugDumpers); + theDebuggerSetting(SelectedPluginBreakpointsPattern) + ->connectWidget(m_ui.lineEditSelectedPluginBreakpointsPattern); m_ui.lineEditSelectedPluginBreakpointsPattern-> - setEnabled(s->boolValue(SelectedPluginBreakpoints)); + setEnabled(theDebuggerSetting(SelectedPluginBreakpoints)->value().toBool()); connect(m_ui.radioButtonSelectedPluginBreakpoints, SIGNAL(toggled(bool)), m_ui.lineEditSelectedPluginBreakpointsPattern, SLOT(setEnabled(bool))); @@ -317,9 +316,22 @@ QWidget *GdbOptionPage::createPage(QWidget *parent) void GdbOptionPage::apply() { - QtcSettings *s = theDebuggerSettings(); - s->applyDeferedChanges(); - s->writeSettings(ICore::instance()->settings()); + QSettings *s = ICore::instance()->settings(); + + theDebuggerSetting(GdbLocation)->apply(s); + theDebuggerSetting(GdbScriptFile)->apply(s); + theDebuggerSetting(GdbEnvironment)->apply(s); + + theDebuggerSetting(AllPluginBreakpoints)->apply(s); + theDebuggerSetting(SelectedPluginBreakpoints)->apply(s); + theDebuggerSetting(NoPluginBreakpoints)->apply(s); + theDebuggerSetting(SelectedPluginBreakpointsPattern)->apply(s); + + theDebuggerSetting(UseDumpers)->apply(s); + theDebuggerSetting(SkipKnownFrames)->apply(s); + theDebuggerSetting(UseToolTips)->apply(s); + theDebuggerSetting(DebugDumpers)->apply(s); + theDebuggerSetting(SelectedPluginBreakpointsPattern)->apply(s); } } // namespace Internal @@ -696,7 +708,7 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess connect(m_manager, SIGNAL(debugModeRequested()), this, SLOT(activateDebugMode())); - connect(theDebuggerSettings()->action(SettingsDialog), SIGNAL(triggered()), + connect(theDebuggerSetting(SettingsDialog)->action(), SIGNAL(triggered()), this, SLOT(showSettingsDialog())); return true; @@ -790,7 +802,7 @@ void DebuggerPlugin::requestMark(TextEditor::ITextEditor *editor, int lineNumber void DebuggerPlugin::showToolTip(TextEditor::ITextEditor *editor, const QPoint &point, int pos) { - if (!theDebuggerSettings()->boolValue(UseToolTips)) + if (!theDebuggerSetting(UseToolTips)->value().toBool()) return; QPlainTextEdit *plaintext = qobject_cast<QPlainTextEdit*>(editor->widget()); diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index fcad2395c35..917f84376cc 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -285,12 +285,11 @@ void GdbEngine::initializeConnections() q, SLOT(showApplicationOutput(QString)), Qt::QueuedConnection); - QtcSettings *s = theDebuggerSettings(); - connect(s->item(UseDumpers), SIGNAL(boolValueChanged(bool)), + connect(theDebuggerSetting(UseDumpers), SIGNAL(boolValueChanged(bool)), this, SLOT(setUseDumpers(bool))); - connect(s->item(DebugDumpers), SIGNAL(boolValueChanged(bool)), + connect(theDebuggerSetting(DebugDumpers), SIGNAL(boolValueChanged(bool)), this, SLOT(setDebugDumpers(bool))); - connect(s->action(RecheckDumpers), SIGNAL(triggered()), + connect(theDebuggerSetting(RecheckDumpers)->action(), SIGNAL(triggered()), this, SLOT(recheckCustomDumperAvailability())); } @@ -321,7 +320,7 @@ void GdbEngine::gdbProcError(QProcess::ProcessError error) msg = QString(tr("The Gdb process failed to start. Either the " "invoked program '%1' is missing, or you may have insufficient " "permissions to invoke the program.")) - .arg(theDebuggerSettings()->stringValue(GdbLocation)); + .arg(theDebuggerSetting(GdbLocation)->value().toString()); break; case QProcess::Crashed: msg = tr("The Gdb process crashed some time after starting " @@ -1146,24 +1145,23 @@ void GdbEngine::handleAqcuiredInferior() #if defined(Q_OS_MAC) sendCommand("info pid", GdbInfoProc, QVariant(), NeedsStop); #endif - if (theDebuggerSettings()->boolValue(UseDumpers)) + if (theDebuggerBoolSetting(UseDumpers)) reloadSourceFiles(); tryLoadCustomDumpers(); #ifndef Q_OS_MAC // intentionally after tryLoadCustomDumpers(), // otherwise we'd interupt solib loading. - QtcSettings *s = theDebuggerSettings(); - if (s->boolValue(AllPluginBreakpoints)) { + if (theDebuggerBoolSetting(AllPluginBreakpoints)) { sendCommand("set auto-solib-add on"); sendCommand("set stop-on-solib-events 0"); sendCommand("sharedlibrary .*"); - } else if (s->boolValue(SelectedPluginBreakpoints)) { + } else if (theDebuggerBoolSetting(SelectedPluginBreakpoints)) { sendCommand("set auto-solib-add on"); sendCommand("set stop-on-solib-events 1"); sendCommand("sharedlibrary " - + s->stringValue(SelectedPluginBreakpointsPattern)); - } else if (s->boolValue(NoPluginBreakpoints)) { + + theDebuggerStringSetting(SelectedPluginBreakpointsPattern)); + } else if (theDebuggerBoolSetting(NoPluginBreakpoints)) { // should be like that already sendCommand("set auto-solib-add off"); sendCommand("set stop-on-solib-events 0"); @@ -1236,11 +1234,11 @@ void GdbEngine::handleAsyncOutput(const GdbMi &data) } QString msg = data.findChild("consolestreamoutput").data(); - QtcSettings *s = theDebuggerSettings(); if (msg.contains("Stopped due to shared library event") || reason.isEmpty()) { - if (s->boolValue(SelectedPluginBreakpoints)) { + if (theDebuggerSetting(SelectedPluginBreakpoints)->value().toBool()) { debugMessage("SHARED LIBRARY EVENT: " + data.toString()); - QString pattern = s->stringValue(SelectedPluginBreakpointsPattern); + QString pattern = theDebuggerSetting(SelectedPluginBreakpointsPattern) + ->value().toString(); debugMessage("PATTERN: " + pattern); sendCommand("sharedlibrary " + pattern); continueInferior(); @@ -1266,7 +1264,7 @@ void GdbEngine::handleAsyncOutput(const GdbMi &data) // jump over well-known frames static int stepCounter = 0; - if (s->boolValue(SkipKnownFrames)) { + if (theDebuggerBoolSetting(SkipKnownFrames)) { if (reason == "end-stepping-range" || reason == "function-finished") { GdbMi frame = data.findChild("frame"); //debugMessage(frame.toString()); @@ -1308,7 +1306,7 @@ void GdbEngine::handleAsyncOutput(const GdbMi &data) frame.findChild("func").data() + '%'; QApplication::alert(q->mainWindow(), 3000); - if (s->boolValue(ListSourceFiles)) + if (theDebuggerSetting(ListSourceFiles)->value().toBool()) reloadSourceFiles(); sendCommand("-break-list", BreakList); QVariant var = QVariant::fromValue<GdbMi>(data); @@ -1614,7 +1612,7 @@ bool GdbEngine::startDebugger() qDebug() << "ExeFile: " << q->m_executable; #endif - QString loc = theDebuggerSettings()->stringValue(GdbLocation); + QString loc = theDebuggerStringSetting(GdbLocation); q->showStatusMessage(tr("Starting Debugger: ") + loc + ' ' + gdbArgs.join(" ")); m_gdbProc.start(loc, gdbArgs); if (!m_gdbProc.waitForStarted()) { @@ -1690,7 +1688,7 @@ bool GdbEngine::startDebugger() "dyld \".*CarbonDataFormatters.*\" all"); #endif - QString scriptFileName = theDebuggerSettings()->stringValue(GdbScriptFile); + QString scriptFileName = theDebuggerStringSetting(GdbScriptFile); if (!scriptFileName.isEmpty()) { QFile scriptFile(scriptFileName); if (scriptFile.open(QIODevice::ReadOnly)) { @@ -2766,7 +2764,7 @@ void GdbEngine::setToolTipExpression(const QPoint &pos, const QString &exp0) return; } - if (theDebuggerSettings()->boolValue(DebugDumpers)) { + if (theDebuggerBoolSetting(DebugDumpers)) { // minimize interference return; } @@ -3100,7 +3098,7 @@ void GdbEngine::setUseDumpers(bool on) bool GdbEngine::isCustomValueDumperAvailable(const QString &type) const { - if (!theDebuggerSettings()->boolValue(UseDumpers)) + if (!theDebuggerBoolSetting(UseDumpers)) return false; if (q->startMode() == AttachCore) { @@ -3109,7 +3107,7 @@ bool GdbEngine::isCustomValueDumperAvailable(const QString &type) const || type == "QStringList" || type.endsWith("::QStringList"); } - if (theDebuggerSettings()->boolValue(DebugDumpers) + if (theDebuggerBoolSetting(DebugDumpers) && qq->stackHandler()->isDebuggingDumpers()) return false; @@ -3704,7 +3702,7 @@ void GdbEngine::handleDumpCustomValue1(const GdbResultRecord &record, //qDebug() << "CUSTOM DUMPER ERROR MESSAGE: " << msg; #ifdef QT_DEBUG // Make debugging of dumpers easier - if (theDebuggerSettings()->boolValue(DebugDumpers) + if (theDebuggerBoolSetting(DebugDumpers) && msg.startsWith("The program being debugged stopped while") && msg.contains("qDumpObjectData440")) { // Fake full stop diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 053ae00e5f2..bfd89262dac 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -368,12 +368,10 @@ WatchHandler::WatchHandler() m_incompleteSet.clear(); m_displaySet = m_completeSet; - QtcSettings *s = theDebuggerSettings(); - - connect(s->item(WatchExpression), SIGNAL(stringValueChanged(QString)), + connect(theDebuggerSetting(WatchExpression), SIGNAL(stringValueChanged(QString)), this, SLOT(watchExpression(QString))); - connect(s->item(RemoveWatchExpression), SIGNAL(stringValueChanged(QString)), + connect(theDebuggerSetting(RemoveWatchExpression), SIGNAL(stringValueChanged(QString)), this, SLOT(removeWatchExpression(QString))); } diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp index 56f1b1773a2..30060e17198 100644 --- a/src/plugins/debugger/watchwindow.cpp +++ b/src/plugins/debugger/watchwindow.cpp @@ -92,14 +92,13 @@ void WatchWindow::keyPressEvent(QKeyEvent *ev) QModelIndex idx = currentIndex(); QModelIndex idx1 = idx.sibling(idx.row(), 0); QString exp = model()->data(idx1).toString(); - theDebuggerSettings()->item(RemoveWatchExpression)->setValue(exp); + theDebuggerSetting(RemoveWatchExpression)->setValue(exp); } QTreeView::keyPressEvent(ev); } void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) { - QtcSettings *s = theDebuggerSettings(); QMenu menu; QAction *act1 = new QAction("Adjust column widths to contents", &menu); QAction *act2 = new QAction("Always adjust column widths to contents", &menu); @@ -119,7 +118,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) if (idx.isValid()) { menu.addSeparator(); int type = (m_type == LocalsType) ? WatchExpression : RemoveWatchExpression; - QAction *act3 = s->action(type); + QAction *act3 = theDebuggerSetting(type)->action(); act3->setText(exp); menu.addAction(act3); @@ -130,10 +129,10 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) // FIXME: menu.addAction(act4); } menu.addSeparator(); - menu.addAction(s->action(RecheckDumpers)); - menu.addAction(s->action(UseDumpers)); + menu.addAction(theDebuggerSetting(RecheckDumpers)->action()); + menu.addAction(theDebuggerSetting(UseDumpers)->action()); menu.addSeparator(); - menu.addAction(s->action(SettingsDialog)); + menu.addAction(theDebuggerSetting(SettingsDialog)->action()); QAction *act = menu.exec(ev->globalPos()); -- GitLab