summaryrefslogtreecommitdiffstats
path: root/tdenetworkmanager/src/devicetraycomponent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdenetworkmanager/src/devicetraycomponent.cpp')
-rw-r--r--tdenetworkmanager/src/devicetraycomponent.cpp30
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()));
}
}