aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhjk <[email protected]>2019-12-12 17:41:43 +0100
committerhjk <[email protected]>2020-01-16 09:44:31 +0000
commit3d7a3b4749abad409663806cadec535fb3a041b6 (patch)
treeb295de8af1cf1f4d6b2ea96b5ed12164e480b4d5 /src
parent66371198ecbc47e3eae87f63997eb0c189dc83be (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')
-rw-r--r--src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.cpp6
-rw-r--r--src/plugins/baremetal/debugservers/gdb/eblinkgdbserverprovider.h2
-rw-r--r--src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.cpp6
-rw-r--r--src/plugins/baremetal/debugservers/gdb/jlinkgdbserverprovider.h2
-rw-r--r--src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.cpp6
-rw-r--r--src/plugins/baremetal/debugservers/gdb/openocdgdbserverprovider.h2
-rw-r--r--src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.cpp6
-rw-r--r--src/plugins/baremetal/debugservers/gdb/stlinkutilgdbserverprovider.h2
-rw-r--r--src/plugins/baremetal/idebugserverprovider.cpp11
-rw-r--r--src/plugins/baremetal/idebugserverprovider.h5
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;