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

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

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

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

 - Improved the Terminal and Enumerator examples:
   * In the Terminal example, users can now specify a custom serial port name.
   * The Terminal example no longer attempts to close a serial port that is
     already closed. It allows to suppress an additional message box with the
     NotOpenError error.
   * Added a scroll area to the Enumerator example.
   * Q_NULLPTR is now used where it is possible.

 - QSerialPortInfo:
   * [QTBUG-41262] Now the QSerialPortInfo::isNull() returns true when it
     is empty.
   * Improved the algorithm of serial ports enumeration for Unix-like systems.
     Devices are no longer looked for in /dev/ if udev or sysfs return nothing.
   * Improved the sysfs backend's algorithm for enumeration of serial ports
     on Linux.
   * [QTBUG-32024] Fixed detection of valid serial8250 serial ports on Linux.
   * Added detection of Bluetooth SPP (rfcomm) serial port with SysFs backend.

 - QSerialPort:
   * [QTBUG-38639] Allowed using custom (non standard) serial ports paths
     that can be used as symlinks or do not start with '/dev', and so on.
   * Fixed leak of event handles on Windows.
   * Added handling for EINVAL, ENOIOCTLCMD, ENOTTY and EPERM errors on
     Unix-like systems.
   * The serial port is now marked as opened only if all settings were applied
     internally. This enables suppressing the NotOpenError when the close()
     method is called from a slot that is connected to the SerialPortError
     signal.
   * Fixed setting up an error on Unix-like systems, when the setBaudRate()
     method fails.
   * The serial port no longer queries the state of RTS and DTR lines when
     opening. This enables suppressing the UnsupportedOperationError error when
     a serial port does not support this feature (for example, when using
     socat).
   * [QTBUG-43484] Fixed stalling of reading when multiple open and
     close calls are used in a row.
   * Fixed stalling of reading on Windows when the clear() method is used.
   * Fixed stalling of reading on Windows when the buffer size is limited.
