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

  https://doc.qt.io/

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

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

  http://bugreports.qt.io/

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

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

 - Now the version for Qt 4 always will be in the separate "qt4-dev" branch.

 - QSerialPort:
   * [QTBUG-34946] The streaming does not stop anymore when the window is
     resizing or moving.
   * Added new lock directories for the *nix-specific platforms.
   * The method QSP::clearError() now clears the error string.
   * [QTBUG-45338] It is now possible to open the serial port on OS X when
     the App Sandbox is used.
   * [QTBUG-46066] The QT_DISABLE_DEPRECATED_BEFORE=QT_VERSION macro does
     not lead to compilation failure now.
