Qt 5.3.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.3.0.

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.3

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

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.

****************************************************************************
*                           General                                        *
****************************************************************************

General Improvements
--------------------

 - [QTBUG-38140] Changed btchat example to use full service discovery to
   increase chance of finding remote services. Some platforms such as Android
   may not be able to find remote services via a minimal service discovery.


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

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

 - QML BluetoothDiscoveryModel:
   * Fixed inconsistent behavior whereby the QML model never reset its
   content while the underlying QBluetoothServiceDiscoveryAgent instance
   did reset. This caused the QML model to show an incomplete list of remote
   Bluetooth services during its second run.

 - QDebug helper for QBluetoothUuid became aware of QT_NO_DEBUG_STREAM
   define.

 - QBluetoothSocket:
   * Fixed duplicate emission of unconnected state in the reconnection
     case.

 - Fixed crash when calling listen() on the QML BluetoothService type.

 - Added some documentation improvements.

 - Added "classname" entry to all qmldir files enabling QML
   plug-ins when doing static builds (on iOS).


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

BlackBerry
----------

 - Converted BlackBerry backend to new Bluetooth C API which was introduced
   by OS version 10.2.1 or later.

Linux
-----

 - Fixed accidental double up of remote services entries by
   QBluetoothServiceDiscoveryAgent due to missing duplication check.

 - QBluetoothSocket:
  * Fixed internal read buffer corruption during timeouts.
  * Fixed a crash on reconnect.

 - [QTBUG-38402] Fixed incorrect detection of connected devices and their
   changes by QBluetoothLocalDevice

 - Implemented handling of <url> xml tag by QBluetoothServiceInfo. This tag is
   used by Bluez to indicate the SDP entries for DocumentationUrl,
   ClientExecutableUrl and IconUrl. So far these entries where being ignored.

 - [QTBUG-38399] Ensured correct handling of removed Bluetooth dongles by
   already instantiated QBluetoothLocalDevice objects.

