From: Alex Fiestas Date: Tue, 05 Jun 2012 16:12:28 +0000 Subject: Emit deviceRemoved/Added with the right deviceList set X-Git-Url: http://quickgit.kde.org/?p=kdelibs.git&a=commitdiff&h=19213a6c34e1b47a100815ccbfee8b5c70c3c12a --- Emit deviceRemoved/Added with the right deviceList set The problem is quite straightforward, deviceAdded is being emitted when the m_deviceList has the OLD list, so the new device is still NOT in it. If the user of the library instances a device Solid::Device(UDI) in the slot after that signal, the device will be null because it will not be found in m_deviceList. REVIEW: 105132 --- --- a/solid/solid/backends/fstab/fstabmanager.cpp +++ b/solid/solid/backends/fstab/fstabmanager.cpp @@ -116,17 +116,19 @@ void FstabManager::_k_updateDeviceList() QSet newlist = deviceList.toSet(); QSet oldlist = m_deviceList.toSet(); - foreach(const QString &device, newlist) { - if ( !oldlist.contains(device) ) - emit deviceAdded(udiPrefix() + "/" + device); - } - foreach(const QString &device, oldlist) { - if ( !newlist.contains(device) ) + if ( !newlist.contains(device) ) { emit deviceRemoved(udiPrefix() + "/" + device); + } } m_deviceList = deviceList; + + foreach(const QString &device, newlist) { + if ( !oldlist.contains(device) ) { + emit deviceAdded(udiPrefix() + "/" + device); + } + } } void FstabManager::onMtabChanged()