diff --git a/src/plugins/remotelinux/linuxdeviceconfiguration.cpp b/src/plugins/remotelinux/linuxdeviceconfiguration.cpp index 1bcb32eb914a6da79104d436df5964e3bc3724c9..ee86d4422d01c4e54ef6226e95972f80aaaa274f 100644 --- a/src/plugins/remotelinux/linuxdeviceconfiguration.cpp +++ b/src/plugins/remotelinux/linuxdeviceconfiguration.cpp @@ -59,6 +59,7 @@ const QLatin1String PasswordKey("Password"); const QLatin1String TimeoutKey("Timeout"); const QLatin1String IsDefaultKey("IsDefault"); const QLatin1String InternalIdKey("InternalId"); +const QLatin1String AttributesKey("Attributes"); const AuthType DefaultAuthType(SshConnectionParameters::AuthenticationByKey); const int DefaultTimeout(10); @@ -81,6 +82,7 @@ public: bool isDefault; LinuxDeviceConfiguration::Origin origin; LinuxDeviceConfiguration::Id internalId; + QVariantHash attributes; }; } // namespace Internal @@ -105,14 +107,15 @@ LinuxDeviceConfiguration::Ptr LinuxDeviceConfiguration::create(const ConstPtr &o LinuxDeviceConfiguration::Ptr LinuxDeviceConfiguration::create(const QString &name, const QString &osType, DeviceType deviceType, const PortList &freePorts, - const SshConnectionParameters &sshParams, Origin origin) + const SshConnectionParameters &sshParams, const QVariantHash &attributes, Origin origin) { - return Ptr(new LinuxDeviceConfiguration(name, osType, deviceType, freePorts, sshParams, origin)); + return Ptr(new LinuxDeviceConfiguration(name, osType, deviceType, freePorts, sshParams, + attributes, origin)); } LinuxDeviceConfiguration::LinuxDeviceConfiguration(const QString &name, const QString &osType, DeviceType deviceType, const PortList &freePorts, const SshConnectionParameters &sshParams, - Origin origin) + const QVariantHash &attributes, Origin origin) : d(new LinuxDeviceConfigurationPrivate(sshParams)) { d->displayName = name; @@ -121,6 +124,7 @@ LinuxDeviceConfiguration::LinuxDeviceConfiguration(const QString &name, const QS d->freePorts = freePorts; d->isDefault = false; d->origin = origin; + d->attributes = attributes; } LinuxDeviceConfiguration::LinuxDeviceConfiguration(const QSettings &settings, Id &nextId) @@ -136,6 +140,8 @@ LinuxDeviceConfiguration::LinuxDeviceConfiguration(const QSettings &settings, Id if (d->internalId == nextId) ++nextId; + d->attributes = settings.value(AttributesKey).toHash(); + // Convert from version < 2.3. if (d->osType.isEmpty()) { const int oldOsType = settings.value(OldOsVersionKey, -1).toInt(); @@ -169,6 +175,7 @@ LinuxDeviceConfiguration::LinuxDeviceConfiguration(const LinuxDeviceConfiguratio d->isDefault = other->d->isDefault; d->origin = other->d->origin; d->internalId = other->d->internalId; + d->attributes = other->d->attributes; } QString LinuxDeviceConfiguration::defaultPrivateKeyFilePath() @@ -197,6 +204,7 @@ void LinuxDeviceConfiguration::save(QSettings &settings) const settings.setValue(TimeoutKey, d->sshParameters.timeout); settings.setValue(IsDefaultKey, d->isDefault); settings.setValue(InternalIdKey, d->internalId); + settings.setValue(AttributesKey, d->attributes); } SshConnectionParameters LinuxDeviceConfiguration::sshParameters() const @@ -229,6 +237,11 @@ bool LinuxDeviceConfiguration::isAutoDetected() const return d->origin == AutoDetected; } +QVariantHash LinuxDeviceConfiguration::attributes() const +{ + return d->attributes; +} + PortList LinuxDeviceConfiguration::freePorts() const { return d->freePorts; } QString LinuxDeviceConfiguration::displayName() const { return d->displayName; } QString LinuxDeviceConfiguration::osType() const { return d->osType; } diff --git a/src/plugins/remotelinux/linuxdeviceconfiguration.h b/src/plugins/remotelinux/linuxdeviceconfiguration.h index 9283f09efdfc7690716cb9bc3bd4a3eca64f322f..02b9555cddf04317b821d404862d3d3acc46c86b 100644 --- a/src/plugins/remotelinux/linuxdeviceconfiguration.h +++ b/src/plugins/remotelinux/linuxdeviceconfiguration.h @@ -37,6 +37,7 @@ #include <QtCore/QSharedPointer> #include <QtCore/QString> #include <QtCore/QStringList> +#include <QtCore/QVariantHash> #include <QtGui/QWizard> QT_BEGIN_NAMESPACE @@ -78,6 +79,7 @@ public: Id internalId() const; bool isDefault() const; bool isAutoDetected() const; + QVariantHash attributes() const; static QString defaultPrivateKeyFilePath(); static QString defaultPublicKeyFilePath(); @@ -86,11 +88,11 @@ public: static Ptr create(const QString &name, const QString &osType, DeviceType deviceType, const PortList &freePorts, const Utils::SshConnectionParameters &sshParams, - Origin origin = ManuallyAdded); + const QVariantHash &attributes = QVariantHash(), Origin origin = ManuallyAdded); private: LinuxDeviceConfiguration(const QString &name, const QString &osType, DeviceType deviceType, const PortList &freePorts, const Utils::SshConnectionParameters &sshParams, - Origin origin); + const QVariantHash &attributes, Origin origin); LinuxDeviceConfiguration(const QSettings &settings, Id &nextId); LinuxDeviceConfiguration(const ConstPtr &other);