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

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

http://doc.qt.io/qt-5/index.html

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

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

https://bugreports.qt.io/

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

****************************************************************************
*                               Qt 5.9.4 Changes                           *
****************************************************************************

 - [QTBUG-64488] Fixed the Base style resources to get initialized in
   static builds.

 - Changed the default style name to be selected at runtime instead of
   compile time. This gives a more accurate mapping, especially on desktop
   OSes using alternative platform plugins where the Desktop style is not
   useful.

 - Calendar:
   * [QTBUG-64068] Fixed a bug when NaN was displayed instead of date.

 - ScrollView:
   * [QTBUG-64052] Fixed scrollbar handles when there is no content.
   * [QTBUG-64596] Fixed cyclic tab navigation.

 - TableView:
   * [QTBUG-62809] Improved scrolling performance by retaining delegate
     loader source component once the delegate has been loaded.

 - TreeView:
   * [QTBUG-47243] Changed to allow selecting items by touch.
