forked from qt-creator/qt-creator
Maemo: Introduce logic for default device configuration.
This commit is contained in:
@@ -300,9 +300,11 @@ void MaemoDeployStep::handleDeviceConfigurationsUpdated()
|
|||||||
|
|
||||||
void MaemoDeployStep::setDeviceConfig(MaemoDeviceConfig::Id internalId)
|
void MaemoDeployStep::setDeviceConfig(MaemoDeviceConfig::Id internalId)
|
||||||
{
|
{
|
||||||
m_deviceConfig = MaemoDeviceConfigurations::instance()->find(internalId);
|
const MaemoDeviceConfigurations * const devConfs
|
||||||
if (!m_deviceConfig && MaemoDeviceConfigurations::instance()->rowCount() > 0)
|
= MaemoDeviceConfigurations::instance();
|
||||||
m_deviceConfig = MaemoDeviceConfigurations::instance()->deviceAt(0);
|
m_deviceConfig = devConfs->find(internalId);
|
||||||
|
if (!m_deviceConfig)
|
||||||
|
m_deviceConfig = devConfs->defaultDeviceConfig();
|
||||||
emit deviceConfigChanged();
|
emit deviceConfigChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ namespace {
|
|||||||
const QLatin1String KeyFileKey("KeyFile");
|
const QLatin1String KeyFileKey("KeyFile");
|
||||||
const QLatin1String PasswordKey("Password");
|
const QLatin1String PasswordKey("Password");
|
||||||
const QLatin1String TimeoutKey("Timeout");
|
const QLatin1String TimeoutKey("Timeout");
|
||||||
|
const QLatin1String IsDefaultKey("IsDefault");
|
||||||
const QLatin1String InternalIdKey("InternalId");
|
const QLatin1String InternalIdKey("InternalId");
|
||||||
const QLatin1String DefaultKeyFilePathKey("DefaultKeyFile");
|
const QLatin1String DefaultKeyFilePathKey("DefaultKeyFile");
|
||||||
|
|
||||||
@@ -178,13 +179,18 @@ private:
|
|||||||
MaemoDeviceConfig::Ptr MaemoDeviceConfig::create(const QString &name,
|
MaemoDeviceConfig::Ptr MaemoDeviceConfig::create(const QString &name,
|
||||||
DeviceType type, Id &nextId)
|
DeviceType type, Id &nextId)
|
||||||
{
|
{
|
||||||
return MaemoDeviceConfig::Ptr(new MaemoDeviceConfig(name, type, nextId));
|
return Ptr(new MaemoDeviceConfig(name, type, nextId));
|
||||||
}
|
}
|
||||||
|
|
||||||
MaemoDeviceConfig::Ptr MaemoDeviceConfig::create(const QSettings &settings,
|
MaemoDeviceConfig::Ptr MaemoDeviceConfig::create(const QSettings &settings,
|
||||||
Id &nextId)
|
Id &nextId)
|
||||||
{
|
{
|
||||||
return MaemoDeviceConfig::Ptr(new MaemoDeviceConfig(settings, nextId));
|
return Ptr(new MaemoDeviceConfig(settings, nextId));
|
||||||
|
}
|
||||||
|
|
||||||
|
MaemoDeviceConfig::Ptr MaemoDeviceConfig::create(const ConstPtr &other)
|
||||||
|
{
|
||||||
|
return Ptr(new MaemoDeviceConfig(other));
|
||||||
}
|
}
|
||||||
|
|
||||||
MaemoDeviceConfig::MaemoDeviceConfig(const QString &name, DeviceType devType,
|
MaemoDeviceConfig::MaemoDeviceConfig(const QString &name, DeviceType devType,
|
||||||
@@ -193,8 +199,8 @@ MaemoDeviceConfig::MaemoDeviceConfig(const QString &name, DeviceType devType,
|
|||||||
m_name(name),
|
m_name(name),
|
||||||
m_type(devType),
|
m_type(devType),
|
||||||
m_portsSpec(defaultPortsSpec(m_type)),
|
m_portsSpec(defaultPortsSpec(m_type)),
|
||||||
m_internalId(nextId++),
|
m_isDefault(false),
|
||||||
m_isDefault(false)
|
m_internalId(nextId++)
|
||||||
{
|
{
|
||||||
m_sshParameters.host = defaultHost(m_type);
|
m_sshParameters.host = defaultHost(m_type);
|
||||||
m_sshParameters.port = defaultSshPort(m_type);
|
m_sshParameters.port = defaultSshPort(m_type);
|
||||||
@@ -211,8 +217,8 @@ MaemoDeviceConfig::MaemoDeviceConfig(const QSettings &settings,
|
|||||||
m_name(settings.value(NameKey).toString()),
|
m_name(settings.value(NameKey).toString()),
|
||||||
m_type(static_cast<DeviceType>(settings.value(TypeKey, DefaultDeviceType).toInt())),
|
m_type(static_cast<DeviceType>(settings.value(TypeKey, DefaultDeviceType).toInt())),
|
||||||
m_portsSpec(settings.value(PortsSpecKey, defaultPortsSpec(m_type)).toString()),
|
m_portsSpec(settings.value(PortsSpecKey, defaultPortsSpec(m_type)).toString()),
|
||||||
m_internalId(settings.value(InternalIdKey, nextId).toULongLong()),
|
m_isDefault(settings.value(IsDefaultKey, false).toBool()),
|
||||||
m_isDefault(false)
|
m_internalId(settings.value(InternalIdKey, nextId).toULongLong())
|
||||||
{
|
{
|
||||||
if (m_internalId == nextId)
|
if (m_internalId == nextId)
|
||||||
++nextId;
|
++nextId;
|
||||||
@@ -227,6 +233,16 @@ MaemoDeviceConfig::MaemoDeviceConfig(const QSettings &settings,
|
|||||||
m_sshParameters.timeout = settings.value(TimeoutKey, DefaultTimeout).toInt();
|
m_sshParameters.timeout = settings.value(TimeoutKey, DefaultTimeout).toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MaemoDeviceConfig::MaemoDeviceConfig(const MaemoDeviceConfig::ConstPtr &other)
|
||||||
|
: m_sshParameters(other->m_sshParameters),
|
||||||
|
m_name(other->m_name),
|
||||||
|
m_type(other->type()),
|
||||||
|
m_portsSpec(other->m_portsSpec),
|
||||||
|
m_isDefault(other->m_isDefault),
|
||||||
|
m_internalId(other->m_internalId)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
QString MaemoDeviceConfig::portsRegExpr()
|
QString MaemoDeviceConfig::portsRegExpr()
|
||||||
{
|
{
|
||||||
const QLatin1String portExpr("(\\d)+");
|
const QLatin1String portExpr("(\\d)+");
|
||||||
@@ -266,6 +282,7 @@ void MaemoDeviceConfig::save(QSettings &settings) const
|
|||||||
settings.setValue(PasswordKey, m_sshParameters.pwd);
|
settings.setValue(PasswordKey, m_sshParameters.pwd);
|
||||||
settings.setValue(KeyFileKey, m_sshParameters.privateKeyFile);
|
settings.setValue(KeyFileKey, m_sshParameters.privateKeyFile);
|
||||||
settings.setValue(TimeoutKey, m_sshParameters.timeout);
|
settings.setValue(TimeoutKey, m_sshParameters.timeout);
|
||||||
|
settings.setValue(IsDefaultKey, m_isDefault);
|
||||||
settings.setValue(InternalIdKey, m_internalId);
|
settings.setValue(InternalIdKey, m_internalId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,7 +299,7 @@ void MaemoDeviceConfigurations::replaceInstance(const MaemoDeviceConfigurations
|
|||||||
{
|
{
|
||||||
Q_ASSERT(m_instance);
|
Q_ASSERT(m_instance);
|
||||||
m_instance->beginResetModel();
|
m_instance->beginResetModel();
|
||||||
copy(other, m_instance);
|
copy(other, m_instance, false);
|
||||||
m_instance->save();
|
m_instance->save();
|
||||||
m_instance->endResetModel();
|
m_instance->endResetModel();
|
||||||
emit m_instance->updated();
|
emit m_instance->updated();
|
||||||
@@ -291,14 +308,19 @@ void MaemoDeviceConfigurations::replaceInstance(const MaemoDeviceConfigurations
|
|||||||
MaemoDeviceConfigurations *MaemoDeviceConfigurations::cloneInstance()
|
MaemoDeviceConfigurations *MaemoDeviceConfigurations::cloneInstance()
|
||||||
{
|
{
|
||||||
MaemoDeviceConfigurations * const other = new MaemoDeviceConfigurations(0);
|
MaemoDeviceConfigurations * const other = new MaemoDeviceConfigurations(0);
|
||||||
copy(m_instance, other);
|
copy(m_instance, other, true);
|
||||||
return other;
|
return other;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaemoDeviceConfigurations::copy(const MaemoDeviceConfigurations *source,
|
void MaemoDeviceConfigurations::copy(const MaemoDeviceConfigurations *source,
|
||||||
MaemoDeviceConfigurations *target)
|
MaemoDeviceConfigurations *target, bool deep)
|
||||||
{
|
{
|
||||||
|
if (deep) {
|
||||||
|
foreach (const MaemoDeviceConfig::ConstPtr &devConf, source->m_devConfigs)
|
||||||
|
target->m_devConfigs << MaemoDeviceConfig::create(devConf);
|
||||||
|
} else {
|
||||||
target->m_devConfigs = source->m_devConfigs;
|
target->m_devConfigs = source->m_devConfigs;
|
||||||
|
}
|
||||||
target->m_defaultSshKeyFilePath = source->m_defaultSshKeyFilePath;
|
target->m_defaultSshKeyFilePath = source->m_defaultSshKeyFilePath;
|
||||||
target->m_nextId = source->m_nextId;
|
target->m_nextId = source->m_nextId;
|
||||||
target->initShadowDevConfs();
|
target->initShadowDevConfs();
|
||||||
@@ -342,6 +364,7 @@ void MaemoDeviceConfigurations::setupShadowDevConf(int i)
|
|||||||
shadowConf->m_sshParameters.pwd = devConf->m_sshParameters.pwd;
|
shadowConf->m_sshParameters.pwd = devConf->m_sshParameters.pwd;
|
||||||
shadowConf->m_sshParameters.privateKeyFile
|
shadowConf->m_sshParameters.privateKeyFile
|
||||||
= devConf->m_sshParameters.privateKeyFile;
|
= devConf->m_sshParameters.privateKeyFile;
|
||||||
|
shadowConf->m_isDefault = devConf->m_isDefault;
|
||||||
shadowConf->m_internalId = devConf->m_internalId;
|
shadowConf->m_internalId = devConf->m_internalId;
|
||||||
m_shadowDevConfigs[i] = shadowConf;
|
m_shadowDevConfigs[i] = shadowConf;
|
||||||
}
|
}
|
||||||
@@ -350,7 +373,11 @@ void MaemoDeviceConfigurations::addConfiguration(const QString &name,
|
|||||||
MaemoDeviceConfig::DeviceType type)
|
MaemoDeviceConfig::DeviceType type)
|
||||||
{
|
{
|
||||||
beginInsertRows(QModelIndex(), rowCount(), rowCount());
|
beginInsertRows(QModelIndex(), rowCount(), rowCount());
|
||||||
m_devConfigs << MaemoDeviceConfig::create(name, type, m_nextId);
|
const MaemoDeviceConfig::Ptr devConf
|
||||||
|
= MaemoDeviceConfig::create(name, type, m_nextId);
|
||||||
|
if (m_devConfigs.isEmpty())
|
||||||
|
devConf->m_isDefault = true;
|
||||||
|
m_devConfigs << devConf;
|
||||||
m_shadowDevConfigs << MaemoDeviceConfig::Ptr();
|
m_shadowDevConfigs << MaemoDeviceConfig::Ptr();
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
}
|
}
|
||||||
@@ -359,9 +386,15 @@ void MaemoDeviceConfigurations::removeConfiguration(int i)
|
|||||||
{
|
{
|
||||||
Q_ASSERT(i >= 0 && i < rowCount());
|
Q_ASSERT(i >= 0 && i < rowCount());
|
||||||
beginRemoveRows(QModelIndex(), i, i);
|
beginRemoveRows(QModelIndex(), i, i);
|
||||||
|
const bool wasDefault = deviceAt(i)->m_isDefault;
|
||||||
m_devConfigs.removeAt(i);
|
m_devConfigs.removeAt(i);
|
||||||
m_shadowDevConfigs.removeAt(i);
|
m_shadowDevConfigs.removeAt(i);
|
||||||
endRemoveRows();
|
endRemoveRows();
|
||||||
|
if (wasDefault && !m_devConfigs.isEmpty()) {
|
||||||
|
m_devConfigs.first()->m_isDefault = true;
|
||||||
|
const QModelIndex changedIndex = index(0, 0);
|
||||||
|
emit dataChanged(changedIndex, changedIndex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaemoDeviceConfigurations::setConfigurationName(int i, const QString &name)
|
void MaemoDeviceConfigurations::setConfigurationName(int i, const QString &name)
|
||||||
@@ -412,13 +445,19 @@ void MaemoDeviceConfigurations::load()
|
|||||||
m_defaultSshKeyFilePath
|
m_defaultSshKeyFilePath
|
||||||
= settings->value(DefaultKeyFilePathKey, DefaultKeyFile).toString();
|
= settings->value(DefaultKeyFilePathKey, DefaultKeyFile).toString();
|
||||||
int count = settings->beginReadArray(ConfigListKey);
|
int count = settings->beginReadArray(ConfigListKey);
|
||||||
|
bool hasDefault = false;
|
||||||
for (int i = 0; i < count; ++i) {
|
for (int i = 0; i < count; ++i) {
|
||||||
settings->setArrayIndex(i);
|
settings->setArrayIndex(i);
|
||||||
m_devConfigs.append(MaemoDeviceConfig::create(*settings, m_nextId));
|
MaemoDeviceConfig::Ptr devConf
|
||||||
|
= MaemoDeviceConfig::create(*settings, m_nextId);
|
||||||
|
hasDefault |= devConf->m_isDefault;
|
||||||
|
m_devConfigs << devConf;
|
||||||
}
|
}
|
||||||
settings->endArray();
|
settings->endArray();
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
initShadowDevConfs();
|
initShadowDevConfs();
|
||||||
|
if (!hasDefault && !m_devConfigs.isEmpty())
|
||||||
|
m_devConfigs.first()->m_isDefault = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MaemoDeviceConfig::ConstPtr MaemoDeviceConfigurations::deviceAt(int i) const
|
MaemoDeviceConfig::ConstPtr MaemoDeviceConfigurations::deviceAt(int i) const
|
||||||
@@ -441,6 +480,16 @@ MaemoDeviceConfig::ConstPtr MaemoDeviceConfigurations::find(MaemoDeviceConfig::I
|
|||||||
return index == -1 ? MaemoDeviceConfig::ConstPtr() : deviceAt(index);
|
return index == -1 ? MaemoDeviceConfig::ConstPtr() : deviceAt(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MaemoDeviceConfig::ConstPtr MaemoDeviceConfigurations::defaultDeviceConfig() const
|
||||||
|
{
|
||||||
|
foreach (const MaemoDeviceConfig::ConstPtr &devConf, m_devConfigs) {
|
||||||
|
if (devConf->m_isDefault)
|
||||||
|
return devConf;
|
||||||
|
}
|
||||||
|
Q_ASSERT(m_devConfigs.isEmpty());
|
||||||
|
return MaemoDeviceConfig::ConstPtr();
|
||||||
|
}
|
||||||
|
|
||||||
int MaemoDeviceConfigurations::indexForInternalId(MaemoDeviceConfig::Id internalId) const
|
int MaemoDeviceConfigurations::indexForInternalId(MaemoDeviceConfig::Id internalId) const
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_devConfigs.count(); ++i) {
|
for (int i = 0; i < m_devConfigs.count(); ++i) {
|
||||||
|
|||||||
@@ -114,12 +114,14 @@ private:
|
|||||||
|
|
||||||
MaemoDeviceConfig(const QString &name, DeviceType type, Id &nextId);
|
MaemoDeviceConfig(const QString &name, DeviceType type, Id &nextId);
|
||||||
MaemoDeviceConfig(const QSettings &settings, Id &nextId);
|
MaemoDeviceConfig(const QSettings &settings, Id &nextId);
|
||||||
|
MaemoDeviceConfig(const ConstPtr &other);
|
||||||
|
|
||||||
MaemoDeviceConfig(const MaemoDeviceConfig &);
|
MaemoDeviceConfig(const MaemoDeviceConfig &);
|
||||||
MaemoDeviceConfig &operator=(const MaemoDeviceConfig &);
|
MaemoDeviceConfig &operator=(const MaemoDeviceConfig &);
|
||||||
|
|
||||||
static Ptr create(const QString &name, DeviceType type, Id &nextId);
|
static Ptr create(const QString &name, DeviceType type, Id &nextId);
|
||||||
static Ptr create(const QSettings &settings, Id &nextId);
|
static Ptr create(const QSettings &settings, Id &nextId);
|
||||||
|
static Ptr create(const ConstPtr &other);
|
||||||
|
|
||||||
void save(QSettings &settings) const;
|
void save(QSettings &settings) const;
|
||||||
int defaultSshPort(DeviceType type) const;
|
int defaultSshPort(DeviceType type) const;
|
||||||
@@ -130,8 +132,8 @@ private:
|
|||||||
QString m_name;
|
QString m_name;
|
||||||
DeviceType m_type;
|
DeviceType m_type;
|
||||||
QString m_portsSpec;
|
QString m_portsSpec;
|
||||||
Id m_internalId;
|
|
||||||
bool m_isDefault;
|
bool m_isDefault;
|
||||||
|
Id m_internalId;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -147,6 +149,7 @@ public:
|
|||||||
|
|
||||||
MaemoDeviceConfig::ConstPtr deviceAt(int i) const;
|
MaemoDeviceConfig::ConstPtr deviceAt(int i) const;
|
||||||
MaemoDeviceConfig::ConstPtr find(MaemoDeviceConfig::Id id) const;
|
MaemoDeviceConfig::ConstPtr find(MaemoDeviceConfig::Id id) const;
|
||||||
|
MaemoDeviceConfig::ConstPtr defaultDeviceConfig() const;
|
||||||
bool hasConfig(const QString &name) const;
|
bool hasConfig(const QString &name) const;
|
||||||
int indexForInternalId(MaemoDeviceConfig::Id internalId) const;
|
int indexForInternalId(MaemoDeviceConfig::Id internalId) const;
|
||||||
MaemoDeviceConfig::Id internalId(MaemoDeviceConfig::ConstPtr devConf) const;
|
MaemoDeviceConfig::Id internalId(MaemoDeviceConfig::ConstPtr devConf) const;
|
||||||
@@ -175,7 +178,7 @@ private:
|
|||||||
void save();
|
void save();
|
||||||
void initShadowDevConfs();
|
void initShadowDevConfs();
|
||||||
static void copy(const MaemoDeviceConfigurations *source,
|
static void copy(const MaemoDeviceConfigurations *source,
|
||||||
MaemoDeviceConfigurations *target);
|
MaemoDeviceConfigurations *target, bool deep);
|
||||||
void setupShadowDevConf(int i);
|
void setupShadowDevConf(int i);
|
||||||
|
|
||||||
static MaemoDeviceConfigurations *m_instance;
|
static MaemoDeviceConfigurations *m_instance;
|
||||||
|
|||||||
Reference in New Issue
Block a user