forked from qt-creator/qt-creator
Debugger: Paddle back on multiple inheritance for settings
This is fairly close to the new "standard" pattern for an individual page but still allows flat access using the same 'settings().' stanza. Change-Id: I1edbbd64a857a3d3936fb2c21fdc7e3c8ae7a44c Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include "debuggericons.h"
|
||||
#include "debuggerinternalconstants.h"
|
||||
#include "debuggertr.h"
|
||||
#include "gdb/gdbsettings.h"
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include "registerpostmortemaction.h"
|
||||
@@ -39,7 +40,28 @@ DebuggerSettings &settings()
|
||||
return settings;
|
||||
}
|
||||
|
||||
DebuggerSettings::DebuggerSettings()
|
||||
DebuggerSettings::DebuggerSettings() :
|
||||
gdbWatchdogTimeout{gdbSettings().gdbWatchdogTimeout},
|
||||
skipKnownFrames{gdbSettings().skipKnownFrames},
|
||||
useMessageBoxForSignals{gdbSettings().useMessageBoxForSignals},
|
||||
adjustBreakpointLocations{gdbSettings().adjustBreakpointLocations},
|
||||
useDynamicType{gdbSettings().useDynamicType},
|
||||
loadGdbInit{gdbSettings().loadGdbInit},
|
||||
loadGdbDumpers{gdbSettings().loadGdbDumpers},
|
||||
intelFlavor{gdbSettings().intelFlavor},
|
||||
usePseudoTracepoints{gdbSettings().usePseudoTracepoints},
|
||||
useIndexCache{gdbSettings().useIndexCache},
|
||||
gdbStartupCommands{gdbSettings().gdbStartupCommands},
|
||||
gdbPostAttachCommands{gdbSettings().gdbPostAttachCommands},
|
||||
targetAsync{gdbSettings().targetAsync},
|
||||
autoEnrichParameters{gdbSettings().autoEnrichParameters},
|
||||
breakOnThrow{gdbSettings().breakOnThrow},
|
||||
breakOnCatch{gdbSettings().breakOnCatch},
|
||||
breakOnWarning{gdbSettings().breakOnWarning},
|
||||
breakOnFatal{gdbSettings().breakOnFatal},
|
||||
breakOnAbort{gdbSettings().breakOnAbort},
|
||||
enableReverseDebugging{gdbSettings().enableReverseDebugging},
|
||||
multiInferior{gdbSettings().multiInferior}
|
||||
{
|
||||
const QString debugModeGroup(debugModeSettingsGroupC);
|
||||
const QString cdbSettingsGroup(cdbSettingsGroupC);
|
||||
@@ -467,13 +489,11 @@ DebuggerSettings::~DebuggerSettings()
|
||||
void DebuggerSettings::readSettings()
|
||||
{
|
||||
all.readSettings();
|
||||
GdbSettings::readSettings();
|
||||
}
|
||||
|
||||
void DebuggerSettings::writeSettings() const
|
||||
{
|
||||
all.writeSettings();
|
||||
GdbSettings::writeSettings();
|
||||
}
|
||||
|
||||
QString DebuggerSettings::dump()
|
||||
|
||||
@@ -3,12 +3,11 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "gdb/gdbsettings.h"
|
||||
#include <utils/aspects.h>
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QHash>
|
||||
#include <QMap>
|
||||
#include <QVector>
|
||||
|
||||
namespace Debugger::Internal {
|
||||
|
||||
@@ -48,7 +47,7 @@ class GeneralSettings
|
||||
~GeneralSettings();
|
||||
};
|
||||
|
||||
class DebuggerSettings : public GdbSettings
|
||||
class DebuggerSettings
|
||||
{
|
||||
public:
|
||||
explicit DebuggerSettings();
|
||||
@@ -56,6 +55,29 @@ public:
|
||||
|
||||
static QString dump();
|
||||
|
||||
Utils::IntegerAspect &gdbWatchdogTimeout;
|
||||
Utils::BoolAspect &skipKnownFrames;
|
||||
Utils::BoolAspect &useMessageBoxForSignals;
|
||||
Utils::BoolAspect &adjustBreakpointLocations;
|
||||
Utils::BoolAspect &useDynamicType;
|
||||
Utils::BoolAspect &loadGdbInit;
|
||||
Utils::BoolAspect &loadGdbDumpers;
|
||||
Utils::BoolAspect &intelFlavor;
|
||||
Utils::BoolAspect &usePseudoTracepoints;
|
||||
Utils::BoolAspect &useIndexCache;
|
||||
Utils::StringAspect &gdbStartupCommands;
|
||||
Utils::StringAspect &gdbPostAttachCommands;
|
||||
|
||||
Utils::BoolAspect &targetAsync;
|
||||
Utils::BoolAspect &autoEnrichParameters;
|
||||
Utils::BoolAspect &breakOnThrow;
|
||||
Utils::BoolAspect &breakOnCatch;
|
||||
Utils::BoolAspect &breakOnWarning;
|
||||
Utils::BoolAspect &breakOnFatal;
|
||||
Utils::BoolAspect &breakOnAbort;
|
||||
Utils::BoolAspect &enableReverseDebugging;
|
||||
Utils::BoolAspect &multiInferior;
|
||||
|
||||
// Page 1: General
|
||||
Utils::BoolAspect useAlternatingRowColors;
|
||||
Utils::BoolAspect useAnnotationsInMainEditor;
|
||||
|
||||
@@ -20,12 +20,10 @@
|
||||
#include <texteditor/textdocument.h>
|
||||
#include <texteditor/texteditor.h>
|
||||
|
||||
#include <utils/aspects.h>
|
||||
#include <utils/mimeutils.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QTextBlock>
|
||||
#include <QDir>
|
||||
|
||||
using namespace Core;
|
||||
using namespace TextEditor;
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
#include "gdbsettings.h"
|
||||
|
||||
#include <coreplugin/dialogs/ioptionspage.h>
|
||||
|
||||
#include <debugger/commonoptionspage.h>
|
||||
#include <debugger/debuggeractions.h>
|
||||
#include <debugger/debuggerconstants.h>
|
||||
@@ -18,11 +20,15 @@ using namespace Utils;
|
||||
|
||||
namespace Debugger::Internal {
|
||||
|
||||
GdbSettings &gdbSettings()
|
||||
{
|
||||
static GdbSettings settings;
|
||||
return settings;
|
||||
}
|
||||
|
||||
GdbSettings::GdbSettings()
|
||||
{
|
||||
setId("M.Gdb");
|
||||
setDisplayName(Tr::tr("GDB"));
|
||||
setCategory(Constants::DEBUGGER_SETTINGS_CATEGORY);
|
||||
setAutoApply(false);
|
||||
setSettingsGroup("DebugMode");
|
||||
|
||||
useMessageBoxForSignals.setSettingsKey("UseMessageBoxForSignals");
|
||||
@@ -250,4 +256,20 @@ GdbSettings::GdbSettings()
|
||||
readSettings();
|
||||
}
|
||||
|
||||
// GdbSettingsPage
|
||||
|
||||
class GdbSettingsPage final : public Core::IOptionsPage
|
||||
{
|
||||
public:
|
||||
GdbSettingsPage()
|
||||
{
|
||||
setId("M.Gdb");
|
||||
setDisplayName(Tr::tr("GDB"));
|
||||
setCategory(Constants::DEBUGGER_SETTINGS_CATEGORY);
|
||||
setSettingsProvider([] { return &gdbSettings(); });
|
||||
}
|
||||
};
|
||||
|
||||
const GdbSettingsPage settingsPage;
|
||||
|
||||
} // Debugger::Internal
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <coreplugin/dialogs/ioptionspage.h>
|
||||
#include <utils/aspects.h>
|
||||
|
||||
namespace Debugger::Internal {
|
||||
|
||||
class GdbSettings : public Core::PagedSettings
|
||||
class GdbSettings : public Utils::AspectContainer
|
||||
{
|
||||
public:
|
||||
GdbSettings();
|
||||
@@ -36,4 +36,6 @@ public:
|
||||
Utils::BoolAspect multiInferior{this};
|
||||
};
|
||||
|
||||
GdbSettings &gdbSettings();
|
||||
|
||||
} // Debugger::Internal
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#include <QApplication>
|
||||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QTimer>
|
||||
#include <QToolTip>
|
||||
|
||||
Reference in New Issue
Block a user