From 5f795c0bb25aea83d00be9f19468678178937630 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Wed, 16 Mar 2022 17:14:05 +0900 Subject: tdehw lib: make sure to emit hardwareRemoved signal after removing the device from the device list. Signed-off-by: Michele Calgaro --- tdecore/tdehw/tdehardwaredevices.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'tdecore') diff --git a/tdecore/tdehw/tdehardwaredevices.cpp b/tdecore/tdehw/tdehardwaredevices.cpp index 7ac5622ba..0da216a87 100644 --- a/tdecore/tdehw/tdehardwaredevices.cpp +++ b/tdecore/tdehw/tdehardwaredevices.cpp @@ -439,8 +439,11 @@ void TDEHardwareDevices::processHotPluggedHardware() { } rescanDeviceInformation(hwdevice, dev); - emit hardwareRemoved(hwdevice); - m_deviceList.remove(hwdevice); + if (m_deviceList.find(hwdevice) != -1 && m_deviceList.take()) + { + emit hardwareRemoved(hwdevice); + delete hwdevice; + } break; } } @@ -887,7 +890,9 @@ void TDEHardwareDevices::processStatelessDevices() { // We can't use m_deviceList directly as m_deviceList can only have one iterator active against it at any given time TDEGenericHardwareList devList = listAllPhysicalDevices(); for ( hwdevice = devList.first(); hwdevice; hwdevice = devList.next() ) { - if ((hwdevice->type() == TDEGenericDeviceType::RootSystem) || (hwdevice->type() == TDEGenericDeviceType::Network) || (hwdevice->type() == TDEGenericDeviceType::OtherSensor) || (hwdevice->type() == TDEGenericDeviceType::Event) || (hwdevice->type() == TDEGenericDeviceType::Battery) || (hwdevice->type() == TDEGenericDeviceType::PowerSupply)) { + if ((hwdevice->type() == TDEGenericDeviceType::RootSystem) || (hwdevice->type() == TDEGenericDeviceType::Network) || + (hwdevice->type() == TDEGenericDeviceType::OtherSensor) || (hwdevice->type() == TDEGenericDeviceType::Event) || + (hwdevice->type() == TDEGenericDeviceType::Battery) || (hwdevice->type() == TDEGenericDeviceType::PowerSupply)) { rescanDeviceInformation(hwdevice, NULL, false); emit hardwareUpdated(hwdevice); #ifdef STATELESSPROFILING -- cgit v1.2.1