Qt 5.3 introduces many new features and improvements as well as bugfixes
over the 5.2.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:

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

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.

****************************************************************************
*                   Important Behavior Changes                             *
****************************************************************************

- TableView:
  * [QTBUG-33107] The "model" property exposed to row and item delegates is
    now consistent with the one exposed to ListView.
  * TableView row and item delegates are now implicitly re-cycled for
    improved scrolling performance. Note that this behavior change
    can impact delegates that rely on "onCompleted" for initialization.

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

QtQuickControls
---------------

 - [QTBUG-33493][QTBUG-34101][QTBUG-35763] Fixed support
   for Keys attached property on controls allowing text input,
   by forwarding key events from the internal control.

 - [QTBUG-29948] A new Calendar control was added. Calendar
   allows selection of dates from a grid of days, similar
   to QCalendarWidget.

 - Accessibility:
   * ComboBox is labeled properly.
   * CheckBox and RadioButton report their state correctly.
   * TextField and TextArea now report password and readonly
     states.

 - CheckBox:
   * [QTBUG-31627] Fixed a problem incorrectly causing bindings
     to the checked state to break.

 - Menu
   * Added sloppy submenu navigation.

 - ScrollView:
   * [QTBUG-37387] Scrollbars are now non-interactive on
     mobile/touch devices.

 - Slider:
   * Sliders no longer prevent stealing in flickables until
     drag threshold is exceeded.

 - SpinBox:
   * [QTBUG-37619] SpinBox now only shows the numerical keys
     in onscreen keyboards where possible.
   * [QTBUG-36283] Fixed implicit width for SpinBox.

 - Styles:
   * Introduced MenuBarStyle to style MenuBar.
   * Introduced MenuStyle to style Menu.
   * [QTBUG-37021] Added styleData.totalWidth property for
     TabViewStyle::tab component.

 - TabView:
   * [QTBUG-36356] Added support for enabling and disabling tabs.
   * [QTBUG-38157] Fixed a graphics issue when initializing currentIndex to
     a non-zero value.

 - TableView:
   * [QTBUG-33072] TableView headers now respect
     TableViewColumn::textAlignment.
   * [QTBUG-37180] Fixed an issue with the header overlay offset while
     re-arranging TableViewColumns.
   * [QTBUG-37941] Allow TableView headers to be resized in a flickable.

QtQuickDialogs
--------------
 - [QTBUG-37860] When a modal dialog is shown on a display that doesn't
   support windows, you can't dismiss it by tapping outside.

 - Dialog is a new control for creating dialogs with standard buttons
   and custom content.

 - FileDialog:
   * The File fallback QML implementation now uses QtQuick.Controls,
     and has added features including a ComboBox for file extension
     filters, and a sidebar with common paths, drives/volumes and favorite
     paths.

 - FontDialog:
   * The FontDialog fallback QML implementation now uses QtQuick.Controls
     and QtQuick.Layouts.
   * [QTBUG-36574] Added currentFont property.


