--- trunk/KDE/kdemultimedia/kmix/backends/mixer_pulse.cpp 2011/07/12 18:58:53 1241345
+++ trunk/KDE/kdemultimedia/kmix/backends/mixer_pulse.cpp 2011/07/12 19:01:32 1241346
@@ -754,7 +754,12 @@
return;
}
addDevice((*map)[index]);
- emit controlsReconfigured(_mixer->id());
+ // Do not emit directly to ensure all connected slots are executed
+ // in their own event loop.
+ QMetaObject::invokeMethod(this,
+ "controlsReconfigured",
+ Qt::QueuedConnection,
+ Q_ARG(QString, _mixer->id()));
}
void Mixer_PULSE::removeWidget(int index)
@@ -778,7 +783,12 @@
{
delete *iter;
m_mixDevices.erase(iter);
- emit controlsReconfigured(_mixer->id());
+ // Do not emit directly to ensure all connected slots are executed
+ // in their own event loop.
+ QMetaObject::invokeMethod(this,
+ "controlsReconfigured",
+ Qt::QueuedConnection,
+ Q_ARG(QString, _mixer->id()));
return;
}
}
@@ -799,7 +809,12 @@
delete *iter;
m_mixDevices.erase(iter);
}
- emit controlsReconfigured(_mixer->id());
+ // Do not emit directly to ensure all connected slots are executed
+ // in their own event loop.
+ QMetaObject::invokeMethod(this,
+ "controlsReconfigured",
+ Qt::QueuedConnection,
+ Q_ARG(QString, _mixer->id()));
}
void Mixer_PULSE::addDevice(devinfo& dev)
@@ -990,7 +1005,7 @@
kDebug(67100) << "Using PulseAudio for mixer: " << m_mixerName;
m_isOpen = true;
}
-
+
return 0;
}