/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\page qmlreference.html
\title The QML Reference
\brief A multi-paradigm language for application development

QML is a multi-paradigm language for creating highly dynamic applications. With
QML, application building blocks such as UI components are \e declared and
various properties set to define the application behavior. Application behavior
can be further scripted through JavaScript, which is a subset of the language.
In addition, QML heavily uses Qt, which allows types and other Qt features to
be accessible directly from QML applications.

This reference guide describes the features of  the QML language. Many of the
QML types in the guide originate from the \l{Qt QML} or \l{Qt Quick}
modules.

\list
    \li \l{qtqml-syntax-basics.html}{QML Syntax Basics}
        \list
        \li \l{qtqml-syntax-imports.html}{Import Statements}
        \li \l{qtqml-syntax-basics.html#object-declarations}{Object Declarations}
        \list
            \li \l{qtqml-syntax-basics.html#child-objects}{Child Objects}
        \endlist
        \li \l{qtqml-syntax-basics.html#comments}{Comments}
        \endlist

    \li \l{qtqml-syntax-objectattributes.html}{QML Object Attributes}
        \list
        \li \l{qtqml-syntax-objectattributes.html#the-id-attribute}{The \e id Attribute}
        \li \l{qtqml-syntax-objectattributes.html#property-attributes}{Property Attributes}
        \li \l{qtqml-syntax-objectattributes.html#signal-attributes}{Signal Attributes}
        \li \l{qtqml-syntax-objectattributes.html#method-attributes}{Method Attributes}
        \li \l{qtqml-syntax-objectattributes.html#attached-properties-and-attached-signal-handlers}{Attached Properties and Attached Signal Handlers}
        \endlist

    \li \l{qtqml-syntax-propertybinding.html}{Property Binding}

    \li \l{qtqml-syntax-signals.html}{Signal and Handler Event System}

    \li \l{qtqml-javascript-topic.html}{Integrating QML and JavaScript}
        \list
        \li \l{qtqml-javascript-expressions.html}{Using JavaScript Expressions with QML}
        \li \l{qtqml-javascript-dynamicobjectcreation.html}{Dynamic QML Object Creation from JavaScript}
        \li \l{qtqml-javascript-resources.html}{Defining JavaScript Resources In QML}
        \li \l{qtqml-javascript-imports.html}{Importing JavaScript Resources In QML}
        \li \l{qtqml-javascript-hostenvironment.html}{JavaScript Host Environment}
        \endlist

    \li \l{qtqml-typesystem-topic.html}{The QML Type System}
        \list
        \li \l{qtqml-typesystem-basictypes.html}{Basic Types}
        \li \l{qtqml-typesystem-topic.html#javascript-types}{JavaScript Types}
        \li \l{qtqml-typesystem-objecttypes.html}{QML Object Types}
            \list
            \li \l{qtqml-documents-definetypes.html}{Defining Object Types from QML}
            \li \l{qtqml-cppintegration-definetypes.html}{Defining Object Types from C++}
            \endlist
        \endlist

    \li \l{qtqml-modules-topic.html}{QML Modules}
        \list
        \li \l{qtqml-modules-qmldir.html}{Specifying A QML Module}
        \li \l{qtqml-modules-topic.html#supported-qml-module-types}{Supported QML Module Types}
            \list
            \li \l{qtqml-modules-identifiedmodules.html}{Identified Modules}
            \li \l{qtqml-modules-legacymodules.html}{Legacy Modules}
            \endlist
        \li \l{qtqml-modules-cppplugins.html}{Providing Types and Functionality in a C++ Plugin}
        \endlist

    \li \l{qtqml-documents-topic.html}{QML Documents}
        \list
        \li \l{qtqml-documents-structure.html}{Structure of a QML Document}
        \li \l{Syntax of the QML Language}
        \li \l{qtqml-documents-definetypes.html}{Defining Object Types through QML Documents}
            \list
            \li \l{qtqml-documents-definetypes.html#defining-an-object-type-with-a-qml-file}{Defining an Object Type with a QML File}
            \li \l{qtqml-documents-definetypes.html#accessible-attributes-of-custom-types}{Accessible Attributes of Custom Types}
            \endlist
        \li \l{qtqml-documents-networktransparency.html}{Resource Loading and Network Transparency}
        \li \l{qtqml-documents-scope.html}{Scope and Naming Resolution}
        \endlist
\endlist

*/
