diff --git a/src/adapter_p.cpp b/src/adapter_p.cpp --- a/src/adapter_p.cpp +++ b/src/adapter_p.cpp @@ -75,21 +75,21 @@ for (auto it = interfaces.cbegin(); it != interfaces.cend(); ++it) { if (it.key() == Strings::orgBluezMedia1()) { m_media = MediaPtr(new Media(path)); - Q_EMIT q.data()->mediaChanged(m_media); + Q_EMIT q.lock()->mediaChanged(m_media); changed = true; } else if (it.key() == Strings::orgBluezLEAdvertisingManager1()) { m_leAdvertisingManager = LEAdvertisingManagerPtr(new LEAdvertisingManager(path)); - Q_EMIT q.data()->leAdvertisingManagerChanged(m_leAdvertisingManager); + Q_EMIT q.lock()->leAdvertisingManagerChanged(m_leAdvertisingManager); changed = true; } else if (it.key() == Strings::orgBluezGattManager1()) { m_gattManager = GattManagerPtr(new GattManager(path)); - Q_EMIT q.data()->gattManagerChanged(m_gattManager); + Q_EMIT q.lock()->gattManagerChanged(m_gattManager); changed = true; } } if (changed) { - Q_EMIT q.data()->adapterChanged(q.toStrongRef()); + Q_EMIT q.lock()->adapterChanged(q.toStrongRef()); } } @@ -100,35 +100,35 @@ for (const QString &interface : interfaces) { if (interface == Strings::orgBluezMedia1() && m_media && m_media->d->m_path == path) { m_media.clear(); - Q_EMIT q.data()->mediaChanged(m_media); + Q_EMIT q.lock()->mediaChanged(m_media); changed = true; } else if (interface == Strings::orgBluezLEAdvertisingManager1() && m_leAdvertisingManager && m_leAdvertisingManager->d->m_path == path) { m_leAdvertisingManager.clear(); - Q_EMIT q.data()->leAdvertisingManagerChanged(m_leAdvertisingManager); + Q_EMIT q.lock()->leAdvertisingManagerChanged(m_leAdvertisingManager); changed = true; } } if (changed) { - Q_EMIT q.data()->adapterChanged(q.toStrongRef()); + Q_EMIT q.lock()->adapterChanged(q.toStrongRef()); } } void AdapterPrivate::addDevice(const DevicePtr &device) { m_devices.append(device); - Q_EMIT q.data()->deviceAdded(device); + Q_EMIT q.lock()->deviceAdded(device); - connect(device.data(), &Device::deviceChanged, q.data(), &Adapter::deviceChanged); + connect(device.data(), &Device::deviceChanged, q.lock().data(), &Adapter::deviceChanged); } void AdapterPrivate::removeDevice(const DevicePtr &device) { m_devices.removeOne(device); Q_EMIT device->deviceRemoved(device); - Q_EMIT q.data()->deviceRemoved(device); + Q_EMIT q.lock()->deviceRemoved(device); - disconnect(device.data(), &Device::deviceChanged, q.data(), &Adapter::deviceChanged); + disconnect(device.data(), &Device::deviceChanged, q.lock().data(), &Adapter::deviceChanged); } QDBusPendingReply<> AdapterPrivate::setDBusProperty(const QString &name, const QVariant &value) @@ -178,7 +178,7 @@ } } - Q_EMIT q.data()->adapterChanged(q.toStrongRef()); + Q_EMIT q.lock()->adapterChanged(q.toStrongRef()); } } // namespace BluezQt diff --git a/src/device_p.cpp b/src/device_p.cpp --- a/src/device_p.cpp +++ b/src/device_p.cpp @@ -90,23 +90,23 @@ if (it.key() == Strings::orgBluezInput1()) { m_input = InputPtr(new Input(path, it.value())); m_input->d->q = m_input.toWeakRef(); - Q_EMIT q.data()->inputChanged(m_input); + Q_EMIT q.lock()->inputChanged(m_input); changed = true; } else if (it.key() == Strings::orgBluezMediaPlayer1()) { m_mediaPlayer = MediaPlayerPtr(new MediaPlayer(path, it.value())); m_mediaPlayer->d->q = m_mediaPlayer.toWeakRef(); - Q_EMIT q.data()->mediaPlayerChanged(m_mediaPlayer); + Q_EMIT q.lock()->mediaPlayerChanged(m_mediaPlayer); changed = true; } else if (it.key() == Strings::orgBluezMediaTransport1()) { m_mediaTransport = MediaTransportPtr(new MediaTransport(path, it.value())); m_mediaTransport->d->q = m_mediaTransport.toWeakRef(); - Q_EMIT q.data()->mediaTransportChanged(m_mediaTransport); + Q_EMIT q.lock()->mediaTransportChanged(m_mediaTransport); changed = true; } } if (changed) { - Q_EMIT q.data()->deviceChanged(q.toStrongRef()); + Q_EMIT q.lock()->deviceChanged(q.toStrongRef()); } } @@ -117,21 +117,21 @@ for (const QString &interface : interfaces) { if (interface == Strings::orgBluezInput1() && m_input && m_input->d->m_path == path) { m_input.clear(); - Q_EMIT q.data()->inputChanged(m_input); + Q_EMIT q.lock()->inputChanged(m_input); changed = true; } else if (interface == Strings::orgBluezMediaPlayer1() && m_mediaPlayer && m_mediaPlayer->d->m_path == path) { m_mediaPlayer.clear(); - Q_EMIT q.data()->mediaPlayerChanged(m_mediaPlayer); + Q_EMIT q.lock()->mediaPlayerChanged(m_mediaPlayer); changed = true; } else if (interface == Strings::orgBluezMediaTransport1() && m_mediaTransport && m_mediaTransport->d->m_path == path) { m_mediaTransport.clear(); - Q_EMIT q.data()->mediaTransportChanged(m_mediaTransport); + Q_EMIT q.lock()->mediaTransportChanged(m_mediaTransport); changed = true; } } if (changed) { - Q_EMIT q.data()->deviceChanged(q.toStrongRef()); + Q_EMIT q.lock()->deviceChanged(q.toStrongRef()); } } @@ -204,41 +204,41 @@ } } - Q_EMIT q.data()->deviceChanged(q.toStrongRef()); + Q_EMIT q.lock()->deviceChanged(q.toStrongRef()); } void DevicePrivate::namePropertyChanged(const QString &value) { if (m_name != value) { m_name = value; - Q_EMIT q.data()->remoteNameChanged(m_name); - Q_EMIT q.data()->friendlyNameChanged(q.data()->friendlyName()); + Q_EMIT q.lock()->remoteNameChanged(m_name); + Q_EMIT q.lock()->friendlyNameChanged(q.lock()->friendlyName()); } } void DevicePrivate::addressPropertyChanged(const QString &value) { if (m_address != value) { m_address = value; - Q_EMIT q.data()->addressChanged(m_address); + Q_EMIT q.lock()->addressChanged(m_address); } } void DevicePrivate::aliasPropertyChanged(const QString &value) { if (m_alias != value) { m_alias = value; - Q_EMIT q.data()->nameChanged(m_alias); - Q_EMIT q.data()->friendlyNameChanged(q.data()->friendlyName()); + Q_EMIT q.lock()->nameChanged(m_alias); + Q_EMIT q.lock()->friendlyNameChanged(q.lock()->friendlyName()); } } void DevicePrivate::classPropertyChanged(quint32 value) { if (m_deviceClass != value) { m_deviceClass = value; - Q_EMIT q.data()->deviceClassChanged(m_deviceClass); - Q_EMIT q.data()->typeChanged(q.data()->type()); + Q_EMIT q.lock()->deviceClassChanged(m_deviceClass); + Q_EMIT q.lock()->typeChanged(q.lock()->type()); } } diff --git a/src/macros.h b/src/macros.h --- a/src/macros.h +++ b/src/macros.h @@ -27,21 +27,21 @@ #define PROPERTY_CHANGED(var, type_cast, signal) \ if (var != value.type_cast()) { \ var = value.type_cast(); \ - Q_EMIT q.data()->signal(var); \ + Q_EMIT q.lock()->signal(var); \ } #define PROPERTY_CHANGED2(var, value, signal) \ const auto &val = value; \ if (var != val) { \ var = val; \ - Q_EMIT q.data()->signal(var); \ + Q_EMIT q.lock()->signal(var); \ } // Clears property value and emit propertyChanged signal #define PROPERTY_INVALIDATED(var, empty, signal) \ if (var != empty) { \ var = empty; \ - Q_EMIT q.data()->signal(var); \ + Q_EMIT q.lock()->signal(var); \ } #endif // BLUEZQT_MACROS_H diff --git a/src/mediaplayer_p.cpp b/src/mediaplayer_p.cpp --- a/src/mediaplayer_p.cpp +++ b/src/mediaplayer_p.cpp @@ -133,7 +133,7 @@ PROPERTY_CHANGED(m_position, toUInt, positionChanged); } else if (property == QLatin1String("Track")) { m_track = variantToTrack(value); - Q_EMIT q.data()->trackChanged(m_track); + Q_EMIT q.lock()->trackChanged(m_track); } } @@ -152,7 +152,7 @@ PROPERTY_INVALIDATED(m_position, 0, positionChanged); } else if (property == QLatin1String("Track")) { m_track = variantToTrack(QVariant()); - Q_EMIT q.data()->trackChanged(m_track); + Q_EMIT q.lock()->trackChanged(m_track); } } } diff --git a/src/mediatransport_p.cpp b/src/mediatransport_p.cpp --- a/src/mediatransport_p.cpp +++ b/src/mediatransport_p.cpp @@ -139,17 +139,17 @@ if (key == QLatin1String("Volume")) { m_volume = value.toUInt(); - Q_EMIT q.data()->volumeChanged(m_volume); + Q_EMIT q.lock()->volumeChanged(m_volume); } else if (key == QLatin1String("State")) { m_state = stringToState(value.toString()); - Q_EMIT q.data()->stateChanged(m_state); + Q_EMIT q.lock()->stateChanged(m_state); } } for (const QString &property : invalidated) { if (property == QLatin1String("Volume")) { m_volume = 0; - Q_EMIT q.data()->volumeChanged(m_volume); + Q_EMIT q.lock()->volumeChanged(m_volume); } else if (property == QLatin1String("State")) { PROPERTY_INVALIDATED(m_state, MediaTransport::State::Idle, stateChanged); } diff --git a/src/obextransfer.cpp b/src/obextransfer.cpp --- a/src/obextransfer.cpp +++ b/src/obextransfer.cpp @@ -115,7 +115,7 @@ // Change status to Error if org.bluez.obex crashes if (m_status != ObexTransfer::Complete && m_status != ObexTransfer::Error) { m_status = ObexTransfer::Error; - Q_EMIT q.data()->statusChanged(m_status); + Q_EMIT q.lock()->statusChanged(m_status); } }