diff --git a/src/plugins/networkinformation/networkmanager/qnetworkmanagerservice.cpp b/src/plugins/networkinformation/networkmanager/qnetworkmanagerservice.cpp index 74d89d8f5db..908224673c5 100644 --- a/src/plugins/networkinformation/networkmanager/qnetworkmanagerservice.cpp +++ b/src/plugins/networkinformation/networkmanager/qnetworkmanagerservice.cpp @@ -119,20 +119,21 @@ QNetworkManagerInterface::NMConnectivityState QNetworkManagerInterface::connecti return QNetworkManagerInterface::NM_CONNECTIVITY_UNKNOWN; } -static QDBusInterface getPrimaryDevice(const QDBusObjectPath &devicePath) +static std::optional getPrimaryDevice(const QDBusObjectPath &devicePath) { const QDBusInterface connection(NM_DBUS_SERVICE, devicePath.path(), NM_CONNECTION_DBUS_INTERFACE, QDBusConnection::systemBus()); if (!connection.isValid()) - return QDBusInterface({}, {}); + return std::nullopt; const auto devicePaths = connection.property("Devices").value>(); if (devicePaths.isEmpty()) - return QDBusInterface({}, {}); + return std::nullopt; const QDBusObjectPath primaryDevicePath = devicePaths.front(); - return QDBusInterface(NM_DBUS_SERVICE, primaryDevicePath.path(), NM_DEVICE_DBUS_INTERFACE, - QDBusConnection::systemBus()); + return std::make_optional(NM_DBUS_SERVICE, primaryDevicePath.path(), + NM_DEVICE_DBUS_INTERFACE, + QDBusConnection::systemBus()); } std::optional QNetworkManagerInterface::primaryConnectionDevicePath() const @@ -160,10 +161,12 @@ auto QNetworkManagerInterface::meteredState() const -> NMMetered auto QNetworkManagerInterface::extractDeviceType(const QDBusObjectPath &devicePath) const -> NMDeviceType { - QDBusInterface primaryDevice = getPrimaryDevice(devicePath); - if (!primaryDevice.isValid()) + const auto primaryDevice = getPrimaryDevice(devicePath); + if (!primaryDevice) return NM_DEVICE_TYPE_UNKNOWN; - const QVariant deviceType = primaryDevice.property("DeviceType"); + if (!primaryDevice->isValid()) + return NM_DEVICE_TYPE_UNKNOWN; + const QVariant deviceType = primaryDevice->property("DeviceType"); if (!deviceType.isValid()) return NM_DEVICE_TYPE_UNKNOWN; return static_cast(deviceType.toUInt()); @@ -172,10 +175,12 @@ auto QNetworkManagerInterface::extractDeviceType(const QDBusObjectPath &devicePa auto QNetworkManagerInterface::extractDeviceMetered(const QDBusObjectPath &devicePath) const -> NMMetered { - QDBusInterface primaryDevice = getPrimaryDevice(devicePath); - if (!primaryDevice.isValid()) + const auto primaryDevice = getPrimaryDevice(devicePath); + if (!primaryDevice) return NM_METERED_UNKNOWN; - const QVariant metered = primaryDevice.property("Metered"); + if (!primaryDevice->isValid()) + return NM_METERED_UNKNOWN; + const QVariant metered = primaryDevice->property("Metered"); if (!metered.isValid()) return NM_METERED_UNKNOWN; return static_cast(metered.toUInt());