summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/doc/qt6-changes.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/doc/qt6-changes.qdoc')
-rw-r--r--src/bluetooth/doc/qt6-changes.qdoc141
1 files changed, 141 insertions, 0 deletions
diff --git a/src/bluetooth/doc/qt6-changes.qdoc b/src/bluetooth/doc/qt6-changes.qdoc
new file mode 100644
index 00000000..c22105e8
--- /dev/null
+++ b/src/bluetooth/doc/qt6-changes.qdoc
@@ -0,0 +1,141 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \page qtbluetooth-changes-qt6.html
+ \title Changes to Qt Bluetooth
+ \ingroup changes-qt-5-to-6
+ \brief Migrate QtBluetooth to Qt 6.
+
+ Qt 6 is a result of the conscious effort to make the framework more
+ efficient and easy to use.
+
+ We try to maintain binary and source compatibility for all the public
+ APIs in each release. But some changes were inevitable in an effort to
+ make Qt a better framework.
+
+ In this topic we summarize those changes in QtBluetooth, and provide guidance
+ to handle them.
+
+ \section1 General
+
+ \list
+ \li qbluetoothglobal.h was removed. qtbluetoothglobal.h is the official header with the same purpose.
+
+ \li Every usage of QVector has been replaced by QList.
+
+ \li Win32 backend has been removed. There will not be a working Bluetooth backend when Qt is built with mingw.
+
+ \li Since there is now only one Windows backend, the logging category qt.bluetooth.winrt was removed.
+ The corresponding log messages are now in qt.bluetooth.windows.
+ \endlist
+
+ \section1 QBluetooth namespace
+
+ The enums QBluetooth::Security and QBluetooth::AttAccessConstraint have been changed
+ to a scoped enums for improved type safety.
+
+ \section1 QBluetoothDeviceDiscoveryAgent
+
+ QBluetoothDeviceDiscoveryAgent::inquiryType property and related setter/getter & enum were removed.
+ The API element was never implemented and/or supported.
+
+ \section1 QBluetoothDeviceInfo
+
+ \list
+ \li manufacturerData() returns a QMultiHash rather than QHash. Since Qt 6
+ QMultiHash is no longer derived from QHash.
+
+ \li DataCompleteness was removed without replacement as the related API elements
+ no longer served a purpose
+
+ \li setServiceUuids(const QList<QBluetoothUuid>, DataCompleteness) was replaced by
+ setServiceUuids(const QList<QBluetoothUuid> &uuids)
+
+ \li DataCompleteness serviceUuidsCompleteness() const was removed without replacement.
+
+ \li QList<QBluetoothUuid> serviceUuids(DataCompleteness *completeness = nullptr) const was replaced by
+ QList<QBluetoothUuid> serviceUuids() const.
+ \endlist
+
+ \section1 QBluetoothLocalDevice
+
+ The pairing agent related API was removed without replacement. This includes pairingConfirmation(bool),
+ pairingDisplayPinCode(..) & pairingDisplayConfirmation(..). Except for Android and BlueZ 4 there was
+ never an implementation for it. Bluez 4 support was removed in Qt 6 and Android's implementation
+ required unobtainable BLUETOOTH_PRIVILEGED for at least parts of the code.
+
+ \section1 QLowEnergyService
+
+ Renamed ServiceState enum values:
+ \list
+ \li \l{QLowEnergyService::DiscoveryRequired}{DiscoveryRequired} becomes \l{QLowEnergyService::RemoteService}{RemoteService}
+ \li \l{QLowEnergyService::DiscoveringService}{DiscoveringService} becomes \l{QLowEnergyService::RemoteServiceDiscovering}{RemoteServiceDiscovering}
+ \li \l{QLowEnergyService::ServiceDiscovered}{ServiceDiscovered} becomes \l{QLowEnergyService::RemoteServiceDiscovered}{RemoteServiceDiscovered}
+ \endlist
+ This change happens in anticipation that service discovery might become an optional
+ step in the future.
+
+ \section1 QBluetoothUuid
+
+ enums \l{QBluetoothUuid::ProtocolUuid}{ProtocolUuid},
+ \l{QBluetoothUuid::ServiceClassUuid}{ServiceClassUuid},
+ \l{QBluetoothUuid::CharacteristicType}{CharacteristicType}, and
+ \l{QBluetoothUuid::DescriptorType}{DescriptorType} are now scoped enums.
+ The usage of enum items has to be adapted in user code.
+
+ \section1 QLowEnergyController
+
+ \list
+ \li Existing ctors and create*() functions with remote QBluetoothAddress parameters have been removed. QBluetoothAddress
+ is not sufficient to indicate remote devices on Apple systems. It requires UUIDs to "name" devices. This can only
+ be satisfied by QBluetoothDeviceInfo.
+
+ \li Remaining QLowEnergyController ctors have been made private. The createPeripheral() and createCentral() functions
+ should be used to obtain QLowEnergyController instances.
+ \endlist
+
+ \section1 QLowEnergyCharacteristic
+
+ \list
+ \li The new method clientCharacteristicConfiguration() has been introduced to conveniently obtain the
+ Client Characteristic Configuration Descriptor.
+ \li The constants
+ \l{QLowEnergyCharacteristic::CCCDDisable}{CCCDDisable},
+ \l{QLowEnergyCharacteristic::CCCDEnableNotification}{CCCDEnableNotification}, and
+ \l{QLowEnergyCharacteristic::CCCDEnableIndication}{CCCDEnableIndication} have been introduced
+ which hold the possible values for the Client Characteristic Configuration Descriptor.
+ \li The handle() method is no longer part of the public Bluetooth LE interfaces. It's purpose as identifier
+ for characteristics was replaced. The QLowEnergyCharacteristic instances itself serve as identifier.
+ \endlist
+
+ \section1 QLowEnergyDescriptor
+
+ The handle() method is no longer part of the public Bluetooth LE interfaces. It's purpose as identifier
+ for descriptors was replaced. The QLowEnergyDescriptor instances itself serve as identifier.
+
+ \section1 QBluetoothTransferManager
+
+ QBluetoothTransferManager, QBluetoothTransferRequest, and QBluetoothTransferReply have been removed
+ without replacement.
+
+ \section1 QBluetoothSocket
+
+ QBluetoothSocket::SocketState and QBluetoothSocket::SocketError are now scoped enums. The usage of enum
+ items has to be adapted in user code.
+
+ \section1 QML Interface
+
+ The QML interface has been removed because socket programming via QML is not advisable.
+ QDeclarativeBluetoothService, QDeclarativeBluetoothSocket, and QDeclarativeBluetoothDiscoveryModel
+ (in QML: BluetoothService, BluetoothSocket, and BluetoothDiscoveryModel)
+ have been removed without replacement.
+
+ \section1 "error" signals
+
+ The "error" signals in QBluetoothDeviceDiscoveryAgent, QBluetoothLocalDevice, QBluetoothServer,
+ QBluetoothServiceDiscoveryAgent, QBluetoothSocket, QLowEnergyController, and QLowEnergyService
+ have been renamed to "errorOccurred" to remove ambiguities between the "error" signal and the
+ "error" getter.
+
+*/