diff --git a/src/qusbmoded.cpp b/src/qusbmoded.cpp index 69d9ef8..646ce7c 100644 --- a/src/qusbmoded.cpp +++ b/src/qusbmoded.cpp @@ -447,9 +447,13 @@ void QUsbModed::onUnhideModeFinished(QDBusPendingCallWatcher* aCall) void QUsbModed::onUsbStateChanged(QString aMode) { DEBUG_(aMode); - if (iPrivate->iCurrentMode != aMode) { - iPrivate->iCurrentMode = aMode; - Q_EMIT currentModeChanged(); + if (isEvent(aMode)) { + Q_EMIT eventReceived(aMode); + } else { + if (iPrivate->iCurrentMode != aMode) { + iPrivate->iCurrentMode = aMode; + Q_EMIT currentModeChanged(); + } } } diff --git a/src/qusbmoded.h b/src/qusbmoded.h index e26e697..6183e64 100644 --- a/src/qusbmoded.h +++ b/src/qusbmoded.h @@ -74,6 +74,7 @@ public Q_SLOTS: void supportedModesChanged(); void availableModesChanged(); void currentModeChanged(); + void eventReceived(QString event); void configModeChanged(); void usbStateError(QString error); void hiddenModesChanged();