Qt 5.4 introduces many new features and improvements as well as bugfixes
over the 5.3.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:

  http://qt-project.org/doc/qt-5.4

The Qt version 5.4 series is binary compatible with the 5.3.x series.
Applications compiled for 5.3 will continue to run with 5.4.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

  http://bugreports.qt-project.org/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                          Library                                         *
****************************************************************************

QtBluetooth
-----------

 - Bluetooth Low Energy Support added:
   * Connect/disconnect to peripherals supported.
   * Services on Peripheral can be discovered and interacted with.
   * BlueZ on Linux is the only currently supported platform.
     Minimal requirement are a Linux kernel v 3.5+ and BlueZ version 4.101+.
     More platforms will be added by future Qt releases.
   * The feature/API remains in Tech Preview stage throughout the Qt 5.4
     release. Some API elements may still change in future releases.

 - Fixed documentation throughout all classes.

 - General:
   * Bluetooth Low Energy scanner example has been added.
   * Heart Listener Bluetooth Low Energy Heart Belt example has been added.

 - QBluetoothAddress:
   * QDebug streaming operator added.

 - QBluetoothDeviceInfo:
   * QBluetooth::CoreConfiguration enum added.
   * CoreConfiguration attribute added.

 - QBluetoothServiceDiscoveryAgent:
   * Fixed cases where Bluez doesn't provide service names for given
     Bluetooth service class uuid.

 - QBLuetoothSocket:
   * [QTBUG-32704] Fixed behavior of isReadable()/isOpen()/isWritable().
     So far, these functions returned wrong values.

 - QBluetoothTransferReply:
   * QBluetoothTransferReply::error() signal added.
   * QBluetoothTransferReply::SessionError value added to TransferError enum.
   * QBluetoothTransferReply::TransferError enum declared as as meta type.
   * Fixed a memory leak on Bluez and QNX.
   * Fixed segmentation fault if passed QIODevice was 0.

 - QBluetoothUuid:
   * Added QBluetoothUuid::protocolToString(QBluetoothUuid::ProtocolUuid)
     which returns a human-readable string for the given protocol uuid.
   * Various Bluetooth Low Energy related API elements added. This includes
     two new constructors, the DescriptorType and CharacteristicType enum,
     various values for ServiceClassUuid enum and helper functions to
     handle the extended range of new enums.

QtNfc
-----

 - General:
   * Fixed reference error bug in NFC poster example


****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************

Android
-------

 - Fixed broken QBluetoothServer::isListening(). It returned false right
   after a successful call to listen().

Bluez/Linux
-----------

 - API ported to Bluez 5.x.

 - Fixed license issue.

 - QBluetoothDeviceDiscoveryAgent:
   * Add support to enable detection of Bluetooth Low Energy devices.

 - QBluetoothSocket:
   * Fixed case where port L2CP port number was not converted to little-endian.
     This bug affected big-endian platforms.
