Qt 5.5 introduces many 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:

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

The Qt 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:

  https://bugreports.qt.io/

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

****************************************************************************
*                          Controls                                        *
****************************************************************************

 - Menu:
   * [QTBUG-40576] Added aboutToShow, aboutToHide signals
   * Added Undo, Redo, Delete, Clear and Select All actions to EditMenu

 - SplitView:
   * [QTBUG-42509] Added remove() function

 - TableView:
   * [QTBUG-44246] "model" property exposed to rowDelegate is now consistent
     with ListView behavior

 - TextField:
   * [QTBUG-40735] Added remove() function

 - TreeView:
   * Introduced TreeView

****************************************************************************
*                          Dialogs                                         *
****************************************************************************

 - General:
   * Added fallback to QML if the helper fails to show the native dialog at
     runtime.

 - FileDialog:
   * Added FileDialog.shortcuts to enable setting the starting folder to a
     standard system path. Setting folder to shortcuts.pictures will result
     in a special image gallery dialog on iOS.

 - FontDialog:
   * [QTBUG-46044] Added support for more font.weight enum values
   * Internationalized the names of font.weight enums

****************************************************************************
*                          Layouts                                         *
****************************************************************************

 - [QTBUG-39724][QTBUG-41559] Added support for Layout margins

****************************************************************************
*                          Styles                                          *
****************************************************************************

 - Merged Extras' styling system into Controls'.

****************************************************************************
*                          Extras                                          *
****************************************************************************

 - Imported Qt Quick Extras (the former Qt Quick Enterprise Controls)

 - ToggleButton:
   * Corrected text color
