diff options
author | hjk <[email protected]> | 2019-12-12 17:41:43 +0100 |
---|---|---|
committer | hjk <[email protected]> | 2020-01-16 09:44:31 +0000 |
commit | 3d7a3b4749abad409663806cadec535fb3a041b6 (patch) | |
tree | b295de8af1cf1f4d6b2ea96b5ed12164e480b4d5 /src | |
parent | 66371198ecbc47e3eae87f63997eb0c189dc83be (diff) |
BareMetal: De-virtualize IDebugServerProvider::createConfigWidget
There is no change in functionality intended.
The original version is good in principle, but Creator core has been
moving to use this 'setFoo(std::function<>)' pattern during the last
year, greatly reducing the need for boilerplate on the "user" side.
The effect isn't as significant here, but generally I don't want to
use too many different patterns being used.
Change-Id: I3ec8c677c19c1ed3f8145e0c3cba337dff7ce1cf
Reviewed-by: Christian Stenger <[email protected]>
Reviewed-by: Denis Shienkov <[email protected]>
Diffstat (limited to 'src')
10 files changed, 19 insertions, 29 deletions
diff --git a/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp b/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp index 0a6e76e0386..bce173282cc 100644 --- a/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp +++ b/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp @@ -69,6 +69,7 @@ EBlinkGdbServerProvider::EBlinkGdbServerProvider() setChannel("127.0.0.1", 2331); setSettingsKeyBase("BareMetal.EBlinkGdbServerProvider"); setTypeDisplayName(EBlinkGdbServerProviderFactory::tr("EBlink")); + setConfigurationWidgetCreator([this] { return new EBlinkGdbServerProviderConfigWidget(this); }); } QString EBlinkGdbServerProvider::defaultInitCommands() @@ -227,11 +228,6 @@ bool EBlinkGdbServerProvider::operator==(const IDebugServerProvider &other) cons && m_gdbNotUseCache == p->m_gdbNotUseCache; } -GdbServerProviderConfigWidget *EBlinkGdbServerProvider::configurationWidget() -{ - return new EBlinkGdbServerProviderConfigWidget(this); -} - // EBlinkGdbServerProviderFactory EBlinkGdbServerProviderFactory::EBlinkGdbServerProviderFactory() diff --git a/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.h b/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.h index 33a708e6200..ddc55b03255 100644 --- a/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.h +++ b/src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.h @@ -49,8 +49,6 @@ public: bool operator==(const IDebugServerProvider &other) const final; - GdbServerProviderConfigWidget *configurationWidget() final; - QString channelString() const final; Utils::CommandLine command() const final; diff --git a/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.cpp b/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.cpp index 5f289d262a4..78c94def6f2 100644 --- a/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.cpp +++ b/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.cpp @@ -65,6 +65,7 @@ JLinkGdbServerProvider::JLinkGdbServerProvider() setChannel("localhost", 2331); setSettingsKeyBase("BareMetal.JLinkGdbServerProvider"); setTypeDisplayName(JLinkGdbServerProviderFactory::tr("JLink")); + setConfigurationWidgetCreator([this] { return new JLinkGdbServerProviderConfigWidget(this); }); } QString JLinkGdbServerProvider::defaultInitCommands() @@ -179,11 +180,6 @@ bool JLinkGdbServerProvider::operator==(const IDebugServerProvider &other) const && m_additionalArguments == p->m_additionalArguments; } -GdbServerProviderConfigWidget *JLinkGdbServerProvider::configurationWidget() -{ - return new JLinkGdbServerProviderConfigWidget(this); -} - // JLinkGdbServerProviderFactory JLinkGdbServerProviderFactory::JLinkGdbServerProviderFactory() diff --git a/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.h b/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.h index c8936315b3c..ba0c86e25cc 100644 --- a/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.h +++ b/src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.h @@ -46,8 +46,6 @@ public: bool operator==(const IDebugServerProvider &other) const final; - GdbServerProviderConfigWidget *configurationWidget() final; - QString channelString() const final; Utils::CommandLine command() const final; diff --git a/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.cpp b/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.cpp index 48e2c59c2bc..1d84b6a1818 100644 --- a/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.cpp +++ b/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.cpp @@ -60,6 +60,7 @@ OpenOcdGdbServerProvider::OpenOcdGdbServerProvider() setChannel("localhost", 3333); setSettingsKeyBase("BareMetal.OpenOcdGdbServerProvider"); setTypeDisplayName(OpenOcdGdbServerProviderFactory::tr("OpenOCD")); + setConfigurationWidgetCreator([this] { return new OpenOcdGdbServerProviderConfigWidget(this); }); } QString OpenOcdGdbServerProvider::defaultInitCommands() @@ -182,11 +183,6 @@ bool OpenOcdGdbServerProvider::operator==(const IDebugServerProvider &other) con && m_additionalArguments == p->m_additionalArguments; } -GdbServerProviderConfigWidget *OpenOcdGdbServerProvider::configurationWidget() -{ - return new OpenOcdGdbServerProviderConfigWidget(this); -} - // OpenOcdGdbServerProviderFactory OpenOcdGdbServerProviderFactory::OpenOcdGdbServerProviderFactory() diff --git a/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.h b/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.h index 4ea11e1046a..6bd5a16cdc4 100644 --- a/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.h +++ b/src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.h @@ -46,8 +46,6 @@ public: bool operator==(const IDebugServerProvider &other) const final; - GdbServerProviderConfigWidget *configurationWidget() final; - QString channelString() const final; Utils::CommandLine command() const final; diff --git a/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.cpp b/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.cpp index 347f0801da4..95fa2ed1e57 100644 --- a/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.cpp +++ b/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.cpp @@ -61,6 +61,7 @@ StLinkUtilGdbServerProvider::StLinkUtilGdbServerProvider() setChannel("localhost", 4242); setSettingsKeyBase("BareMetal.StLinkUtilGdbServerProvider"); setTypeDisplayName(StLinkUtilGdbServerProviderFactory::tr("ST-LINK Utility")); + setConfigurationWidgetCreator([this] { return new StLinkUtilGdbServerProviderConfigWidget(this); }); } QString StLinkUtilGdbServerProvider::defaultInitCommands() @@ -168,11 +169,6 @@ bool StLinkUtilGdbServerProvider::operator==(const IDebugServerProvider &other) && m_transport == p->m_transport; } -GdbServerProviderConfigWidget *StLinkUtilGdbServerProvider::configurationWidget() -{ - return new StLinkUtilGdbServerProviderConfigWidget(this); -} - // StLinkUtilGdbServerProviderFactory StLinkUtilGdbServerProviderFactory::StLinkUtilGdbServerProviderFactory() diff --git a/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.h b/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.h index e48116fcc73..2215b8c9f5b 100644 --- a/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.h +++ b/src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.h @@ -49,8 +49,6 @@ public: bool operator==(const IDebugServerProvider &other) const final; - GdbServerProviderConfigWidget *configurationWidget() final; - QString channelString() const final; Utils::CommandLine command() const final; diff --git a/src/plugins/baremetal/idebugserverprovider.cpp b/src/plugins/baremetal/idebugserverprovider.cpp index 1788f8df705..b092de9049d 100644 --- a/src/plugins/baremetal/idebugserverprovider.cpp +++ b/src/plugins/baremetal/idebugserverprovider.cpp @@ -155,6 +155,12 @@ bool IDebugServerProvider::operator==(const IDebugServerProvider &other) const && m_channel == other.m_channel; } +IDebugServerProviderConfigWidget *IDebugServerProvider::configurationWidget() const +{ + QTC_ASSERT(m_configurationWidgetCreator, return nullptr); + return m_configurationWidgetCreator(); +} + QVariantMap IDebugServerProvider::toMap() const { return { @@ -197,6 +203,11 @@ bool IDebugServerProvider::fromMap(const QVariantMap &data) return true; } +void IDebugServerProvider::setConfigurationWidgetCreator(const std::function<IDebugServerProviderConfigWidget *()> &configurationWidgetCreator) +{ + m_configurationWidgetCreator = configurationWidgetCreator; +} + // IDebugServerProviderFactory QString IDebugServerProviderFactory::id() const diff --git a/src/plugins/baremetal/idebugserverprovider.h b/src/plugins/baremetal/idebugserverprovider.h index 34167772964..f52aa34699f 100644 --- a/src/plugins/baremetal/idebugserverprovider.h +++ b/src/plugins/baremetal/idebugserverprovider.h @@ -84,7 +84,9 @@ public: virtual bool operator==(const IDebugServerProvider &other) const; - virtual IDebugServerProviderConfigWidget *configurationWidget() = 0; + IDebugServerProviderConfigWidget *configurationWidget() const; + void setConfigurationWidgetCreator + (const std::function<IDebugServerProviderConfigWidget *()> &configurationWidgetCreator); virtual QVariantMap toMap() const; virtual bool fromMap(const QVariantMap &data); @@ -114,6 +116,7 @@ protected: QUrl m_channel; Debugger::DebuggerEngineType m_engineType = Debugger::NoEngineType; QSet<BareMetalDevice *> m_devices; + std::function<IDebugServerProviderConfigWidget *()> m_configurationWidgetCreator; friend class DebugServerProvidersSettingsWidget; friend class IDebugServerProviderConfigWidget; |