void DeviceKitLister::DBusDeviceRemoved(const QDBusObjectPath& path) { QString id; { QMutexLocker l(&mutex_); id = FindUniqueIdByPath(path); if (id.isNull()) return; device_data_.remove(id); } emit DeviceRemoved(id); }
void DeviceKitLister::DBusDeviceChanged(const QDBusObjectPath &path) { bool already_known = false; { QMutexLocker l(&mutex_); already_known = !FindUniqueIdByPath(path).isNull(); } DeviceData data = ReadDeviceData(path); if (already_known && !data.suitable) DBusDeviceRemoved(path); else if (!already_known && data.suitable) DBusDeviceAdded(path); else if (already_known && data.suitable) { { QMutexLocker l(&mutex_); device_data_[data.unique_id()] = data; } emit DeviceChanged(data.unique_id()); } }