From e2fd350f023aeb26e32cba0eeb7c97940cff624f Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sun, 26 Apr 2015 13:06:25 +0300 Subject: [PATCH] BareMetal: Support seamless 3.3 -> 3.4 upgrade Change-Id: I49caf77ee5e9f08fdede9d6881a4da717c5da057 Reviewed-by: Tobias Hunger Reviewed-by: Eike Ziller Reviewed-by: hjk --- src/plugins/baremetal/baremetaldevice.cpp | 18 ++++++++++++++++-- .../baremetal/defaultgdbserverprovider.h | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/plugins/baremetal/baremetaldevice.cpp b/src/plugins/baremetal/baremetaldevice.cpp index 2df60b0546b..daa93d5eb39 100644 --- a/src/plugins/baremetal/baremetaldevice.cpp +++ b/src/plugins/baremetal/baremetaldevice.cpp @@ -31,11 +31,15 @@ #include "baremetaldevice.h" #include "baremetaldeviceconfigurationwidget.h" - +#include "defaultgdbserverprovider.h" +#include "gdbserverprovidermanager.h" #include "gdbserverproviderprocess.h" #include + +#include #include + #include using namespace ProjectExplorer; @@ -73,7 +77,17 @@ void BareMetalDevice::setGdbServerProviderId(const QString &id) void BareMetalDevice::fromMap(const QVariantMap &map) { IDevice::fromMap(map); - setGdbServerProviderId(map.value(QLatin1String(gdbServerProviderIdKeyC)).toString()); + QString gdbServerProvider = map.value(QLatin1String(gdbServerProviderIdKeyC)).toString(); + if (gdbServerProvider.isEmpty()) { + const QSsh::SshConnectionParameters sshParams = sshParameters(); + DefaultGdbServerProvider *newProvider = new DefaultGdbServerProvider; + newProvider->setDisplayName(displayName()); + newProvider->m_host = sshParams.host; + newProvider->m_port = sshParams.port; + GdbServerProviderManager::instance()->registerProvider(newProvider); + gdbServerProvider = newProvider->id(); + } + setGdbServerProviderId(gdbServerProvider); } QVariantMap BareMetalDevice::toMap() const diff --git a/src/plugins/baremetal/defaultgdbserverprovider.h b/src/plugins/baremetal/defaultgdbserverprovider.h index c9390f39814..53379d4409b 100644 --- a/src/plugins/baremetal/defaultgdbserverprovider.h +++ b/src/plugins/baremetal/defaultgdbserverprovider.h @@ -65,6 +65,7 @@ private: friend class DefaultGdbServerProviderConfigWidget; friend class DefaultGdbServerProviderFactory; + friend class BareMetalDevice; }; class DefaultGdbServerProviderFactory : public GdbServerProviderFactory