From bae793079f00cde6d857b55ef9c2d98ec6e091e6 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 16 Jul 2013 02:08:39 -0500 Subject: Fix network-manager backend crash on certain systems when network-manager is not available Add ability to show buttons in KSMModalDialog --- .../network-manager/network-manager.cpp | 29 ++++++++++++++-------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'tdecore') diff --git a/tdecore/networkbackends/network-manager/network-manager.cpp b/tdecore/networkbackends/network-manager/network-manager.cpp index ac07b8a1a..a7295beac 100644 --- a/tdecore/networkbackends/network-manager/network-manager.cpp +++ b/tdecore/networkbackends/network-manager/network-manager.cpp @@ -1689,19 +1689,26 @@ TDENetworkDeviceType::TDENetworkDeviceType TDENetworkConnectionManager_BackendNM return TDENetworkDeviceType::BackendOnly; } else { - // Query NM for the device type - TQT_DBusError error; - d->m_dbusDeviceString = deviceInterfaceString(m_macAddress); - DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, d->m_dbusDeviceString); - genericDevice.setConnection(TQT_DBusConnection::systemBus()); - TDENetworkDeviceType::TDENetworkDeviceType ret = nmDeviceTypeToTDEDeviceType(genericDevice.getDeviceType(error)); - if (error.isValid()) { - // Error! - PRINT_ERROR((error.name() + ": " + error.message())) - return TDENetworkDeviceType::Other; + if (d->m_dbusDeviceString != "") { + // Query NM for the device type + TQT_DBusError error; + d->m_dbusDeviceString = deviceInterfaceString(m_macAddress); + DBus::DeviceProxy genericDevice(NM_DBUS_SERVICE, d->m_dbusDeviceString); + genericDevice.setConnection(TQT_DBusConnection::systemBus()); + TDENetworkDeviceType::TDENetworkDeviceType ret = nmDeviceTypeToTDEDeviceType(genericDevice.getDeviceType(error)); + if (error.isValid()) { + // Error! + PRINT_ERROR((error.name() + ": " + error.message())) + return TDENetworkDeviceType::Other; + } + else { + return ret; + } } else { - return ret; + // Error! + PRINT_ERROR(TQString("Invalid DBUS device string '%1'").arg(d->m_dbusDeviceString)) + return TDENetworkDeviceType::Other; } } } -- cgit v1.2.1