ConnectionItem::ConnectionItem(RemoteActivatable *activatable, ItemType type, QObject *parent) : QObject(parent), m_activatable(activatable), m_hoverEnter(false), m_hasDefaultRoute(false), m_activationState(QLatin1String("unknown")), m_type(type), m_showMoreChecked(false), m_networkCount(0) { if (m_activatable) { RemoteInterfaceConnection *remote = interfaceConnection(); if (remote) { m_hasDefaultRoute = remote->hasDefaultRoute(); connect(remote, SIGNAL(hasDefaultRouteChanged(bool)), SLOT(handleHasDefaultRouteChanged(bool))); connect(remote, SIGNAL(activationStateChanged(Knm::InterfaceConnection::ActivationState, Knm::InterfaceConnection::ActivationState)), SLOT(activationStateChanged(Knm::InterfaceConnection::ActivationState, Knm::InterfaceConnection::ActivationState))); if (remote->activationState() == Knm::InterfaceConnection::Activated) { m_activationState = "activated"; } else if (remote->activationState() == Knm::InterfaceConnection::Activating) { m_activationState = "activating"; } } switch (m_activatable->activatableType()) { case Knm::Activatable::WirelessNetwork: connect(qobject_cast<RemoteWirelessNetwork *>(m_activatable), SIGNAL(strengthChanged(int)), this, SLOT(handlePropertiesChanges())); m_typeString = "wirelessNetwork"; break; case Knm::Activatable::WirelessInterfaceConnection: connect(qobject_cast<RemoteWirelessInterfaceConnection *>(m_activatable), SIGNAL(strengthChanged(int)), this, SLOT(handlePropertiesChanges())); m_typeString = "wireless"; break; case Knm::Activatable::InterfaceConnection: m_typeString = "wired"; break; case Knm::Activatable::VpnInterfaceConnection: m_typeString = "vpn"; break; case Knm::Activatable::GsmInterfaceConnection: connect(qobject_cast<RemoteGsmInterfaceConnection *>(m_activatable), SIGNAL(signalQualityChanged(int)), this, SLOT(handlePropertiesChanges())); connect(qobject_cast<RemoteGsmInterfaceConnection *>(m_activatable), SIGNAL(accessTechnologyChanged(int)), this, SLOT(handlePropertiesChanges())); m_typeString = "gsm"; break; /* TODO: add HiddenWirelessInterfaceConnection and UnconfiguredInterface, or just get rid of them. */ } } else if (type == ConnectionItem::HiddenNetwork)
void RemoteInterfaceConnection::icPropertiesChanged(const QVariantMap &changedProperties) { Q_D(RemoteInterfaceConnection); QStringList propKeys = changedProperties.keys(); QLatin1String connectionTypeKey("connectionType"), uuidKey("uuid"), nameKey("name"), iconNameKey("iconName"), activationStateKey("activationState"), hasDefaultRouteKey("hasDefaultRoute"); QVariantMap::const_iterator it = changedProperties.find(connectionTypeKey); if (it != changedProperties.end()) { d->connectionType = (Knm::Connection::Type)it->toUInt(); propKeys.removeOne(connectionTypeKey); } it = changedProperties.find(uuidKey); if (it != changedProperties.end()) { d->uuid = it->toString(); propKeys.removeOne(uuidKey); } it = changedProperties.find(nameKey); if (it != changedProperties.end()) { d->name = it->toString(); propKeys.removeOne(nameKey); } it = changedProperties.find(iconNameKey); if (it != changedProperties.end()) { d->iconName = it->toString(); propKeys.removeOne(iconNameKey); } it = changedProperties.find(activationStateKey); if (it != changedProperties.end()) { d->oldActivationState = d->activationState; d->activationState = (Knm::InterfaceConnection::ActivationState)it->toUInt(); emit activationStateChanged(d->oldActivationState, d->activationState); propKeys.removeOne(activationStateKey); } it = changedProperties.find(hasDefaultRouteKey); if (it != changedProperties.end()) { d->hasDefaultRoute = it->toBool(); emit hasDefaultRouteChanged(d->hasDefaultRoute); propKeys.removeOne(hasDefaultRouteKey); } /*if (propKeys.count()) { kDebug() << "Unhandled properties: " << propKeys; }*/ emit changed(); }