Qt 5.7 introduces many new features and improvements as well as bugfixes
over the 5.6.x series. Also, there is a change in the licensing terms.
For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

   http://doc.qt.io/qt-5.7

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

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.

****************************************************************************
*                          Important License Changes                       *
****************************************************************************

  This module is no longer available under LGPLv2.1. The libraries are
  now available under the following licenses:
    * Commercial License
    * GNU General Public License v2.0 (LICENSE.GPL2) and later
    * GNU Lesser General Public License v3.0 (LICENSE.LGPL3)

  The tools are now available under the following licenses:
    * Commercial License
    * GNU General Public License 3.0 (LICENSE.GPL3) with exceptions
      described in The Qt Company GPL Exception 1.0 (LICENSE.GPL3-EXCEPT)

****************************************************************************
*                            Qt Wayland General                            *
****************************************************************************

- Update Wayland protocol version to 1.6

****************************************************************************
*                            Qt Wayland QPA Plugin                         *
****************************************************************************

- Add IVI-shell support

- Update text input support to zwp_text_input_v2

- Use standard Qt input method if zwp_text_input is not available.

- Filter key events through the input method

- Remove the qt_sub_surface extension

- Update xdg-shell version to v5

- Use default size if a QWindow has no geometry

- Set appId according to QGuiApplication::desktopFileName()

- Add support for bitmap cursors

- Create shell surface also for windows with BypassWindowManagerHint to avoid
  the application freezing. (To enable the old behavior, set the environment
  variable QT_WAYLAND_USE_BYPASSWINDOWMANAGERHINT.)

- Experimental API for implementing Wayland extensions for Qt clients. This
  is in tech preview and subject to change. Applications using this API will
  not be source/binary compatible with Qt 5.8.

****************************************************************************
*                       Qt Compositor API Tech Preview                     *
****************************************************************************

The previously unsupported QtCompositor module has been extensively reworked
and renamed to QtWaylandCompositor.  It is released as a tech preview in
Qt 5.7. This means that it is not source or binary compatible with QtCompositor
in 5.6, and it will not be source or binary compatible with Qt 5.8.

- QtWaylandCompositor libraries, plugins and examples are now built by default.

- New and improved C++ API

- Completely rewritten QML API, making it possible to write compositors in just
  a few lines of pure QML.

- Note: this is a tech preview, and subject to change.
