diff options
Diffstat (limited to 'tdenetworkmanager/src/devicetraycomponent.cpp')
-rw-r--r-- | tdenetworkmanager/src/devicetraycomponent.cpp | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/tdenetworkmanager/src/devicetraycomponent.cpp b/tdenetworkmanager/src/devicetraycomponent.cpp index 2ea4e35..8bc0eef 100644 --- a/tdenetworkmanager/src/devicetraycomponent.cpp +++ b/tdenetworkmanager/src/devicetraycomponent.cpp @@ -76,10 +76,13 @@ DeviceTrayComponent::DeviceTrayComponent(TQString device, KSystemTray * parent, // Trigger an initial hardware information update TDENetworkDevice* dev = dynamic_cast<TDENetworkDevice*>(hwdevices->findByUniqueID(m_device)); - TDENetworkConnectionManager* deviceConnMan = dev->connectionManager(); + TDENetworkConnectionManager* deviceConnMan = (dev ? dev->connectionManager() : NULL); - connect(deviceConnMan, TQT_SIGNAL(networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString)), TQT_SLOT(deviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString))); - connect(deviceConnMan, TQT_SIGNAL(networkDeviceEvent(TDENetworkDeviceEventType::TDENetworkDeviceEventType, TQString)), this, TQT_SLOT(deviceEventHandler(TDENetworkDeviceEventType::TDENetworkDeviceEventType, TQString))); + if (deviceConnMan) + { + connect(deviceConnMan, TQT_SIGNAL(networkDeviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString)), TQT_SLOT(deviceStateChanged(TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString))); + connect(deviceConnMan, TQT_SIGNAL(networkDeviceEvent(TDENetworkDeviceEventType::TDENetworkDeviceEventType, TQString)), this, TQT_SLOT(deviceEventHandler(TDENetworkDeviceEventType::TDENetworkDeviceEventType, TQString))); + } m_pixmaps[TDENetworkConnectionStatus::Invalid] = "nm_no_connection"; m_pixmaps[TDENetworkConnectionStatus::UnManaged] = "nm_no_connection"; @@ -128,11 +131,15 @@ TQStringList DeviceTrayComponent::getToolTipText() TDENetworkDevice* dev = dynamic_cast<TDENetworkDevice*>(hwdevices->findByUniqueID(m_device)); TQStringList list; - TDENetworkConnectionManager* deviceConnMan = dev->connectionManager(); - TDENetworkConnectionStatus::TDENetworkConnectionStatus state = deviceConnMan->deviceStatus().statusFlags; - if (tooltipForConnState(state) != "") { - list.append(i18n("Device: %1").arg(dev->deviceNode())); - list.append(i18n("State: %1").arg(tooltipForConnState(state))); + TDENetworkConnectionManager* deviceConnMan = (dev ? dev->connectionManager() : NULL); + if (deviceConnMan) + { + TDENetworkConnectionStatus::TDENetworkConnectionStatus state = deviceConnMan->deviceStatus().statusFlags; + if (tooltipForConnState(state) != "") + { + list.append(i18n("Device: %1").arg(dev->deviceNode())); + list.append(i18n("State: %1").arg(tooltipForConnState(state))); + } } return list; } @@ -203,6 +210,10 @@ void DeviceTrayComponent::deviceStateChanged(TDENetworkConnectionStatus::TDENetw TDEGlobalNetworkManager* nm = TDEGlobal::networkManager(); TDENetworkDevice* dev = dynamic_cast<TDENetworkDevice*>(hwdevices->findByUniqueID(m_device)); + if (!dev) + { + return; + } if (dev->deviceNode() != deviceNode) { kdDebug() << k_funcinfo << "WARNING: Got networkDeviceStateChanged signal for interface '" << deviceNode << "', but my interface is '" << dev->deviceNode() << "'! Ignoring..."; return; @@ -219,7 +230,8 @@ void DeviceTrayComponent::deviceStateChanged(TDENetworkConnectionStatus::TDENetw TQTimer::singleShot(0, this, TQT_SLOT(sendGetCenterStage())); } else if (newState & TDENetworkConnectionStatus::Connected) { - if (nm->defaultNetworkDevices().contains(m_device)) { + if (nm && nm->defaultNetworkDevices().contains(m_device)) + { TQTimer::singleShot(0, this, TQT_SLOT(sendGetCenterStage())); } } |