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

For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

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

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.

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

 - Improved documentation.
 - Fixed compilation with QT_DISABLE_DEPRECATED_BEFORE=0x050300.

 - QSerialPortInfo:
   * Improved detection of serial numbers of the USB CDC serial ports on Windows.
   * Now the OSX code is in its own separate module.
   * Rewrote OSX code to wrap CFTypeRef and CFStringRef, which are defined in
     qcore_mac_p.h.
   * Optimized searching of the names of serial ports on Windows. The algorithm
     now returns early if a serial port name is found.
   * [QTBUG-39748][QTBUG-41415] Fixed error caused by calling fromWCharArray()
     with incorrect arguments on Windows.

 - QSerialPort:
   * [QTBUG-36727] Fixed entering a busy-loop on Linux/OSX when connected device
     disappears for the system (e.g. the USB converter was pulled from the PC).
   * [QTBUG-35829] Fixed the error message "QSocketNotifier::Exception is not
     supported on iOS".
   * [QTBUG-32020] Improved the ResourceError handling on Windows when a
     USB/Serial converter is pulled from PC.
   * Immediately returns from the waitForReadyRead() on Linux when there is an
     error.
   * Refactored error handling on Windows.
   * [QTBUG-40344] Fixed the loopback I/O on Windows when waitForBytesWritten()
     is used.
   * [QTBUG-40414] Fixed leak of a descriptor after unsuccessful opening.
   * Made the QSerialPort::flush() non-blocking according to the documentation.
   * [QTBUG-40793] Now the waitForReadyRead() also starts writing on Windows.
