aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/hal/halplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/hal/halplugin.cpp')
-rw-r--r--src/plugins/General/hal/halplugin.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/plugins/General/hal/halplugin.cpp b/src/plugins/General/hal/halplugin.cpp
index ca1e0952a..092bd02fa 100644
--- a/src/plugins/General/hal/halplugin.cpp
+++ b/src/plugins/General/hal/halplugin.cpp
@@ -46,9 +46,9 @@ HalPlugin::HalPlugin(QObject *parent) : QObject(parent)
m_addTracks = false; //do not load tracks on startup
m_addFiles = false;
//find existing devices
- QStringList udis = m_manager->findDeviceByCapability("volume");
+ const QStringList udis = m_manager->findDeviceByCapability("volume");
for(const QString &udi : qAsConst(udis))
- addDevice(udi);
+ addDevice(udi);
//load remaining settings
m_addTracks = settings.value("add_tracks", false).toBool();
m_removeTracks = settings.value("remove_tracks", false).toBool();
@@ -63,16 +63,21 @@ HalPlugin::~HalPlugin()
void HalPlugin::removeDevice(const QString &udi)
{
- for(HalDevice *device : qAsConst(m_devices))
+ QList<HalDevice *>::iterator it = m_devices.begin();
+ while(it != m_devices.end())
{
- if (device->udi() == udi)
+ if((*it)->udi() == udi)
{
- m_devices.removeAll(device);
- delete device;
+ delete *it;
+ it = m_devices.erase(it);
qDebug("HalPlugin: device \"%s\" removed", qPrintable(udi));
updateActions();
break;
}
+ else
+ {
+ ++it;
+ }
}
}