/****************************************************************************
**
** Copyright (c) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of Qt Creator
**
**
** GNU Free Documentation License
**
** 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.
**
**
****************************************************************************/

// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************

/*!

    \contentspage index.html
    \previouspage creator-visual-editor.html
    \page quick-projects.html
    \nextpage creator-using-qt-quick-designer.html

    \title Creating Qt Quick Projects

    \image qmldesigner-new-project.png "New File or Project dialog"

    When you create a new Qt Quick project from scratch, you have the following
    options:

    \list

        \li \gui {Qt Quick Application} creates a Qt Quick application project
            that can contain both QML and C++ code. The project includes a
            QDeclarativeView. You can build the application and deploy it to
            desktop and mobile target platforms.

            You can select a template that uses either the built-in QML types
            or Qt Quick components for a particular platform. The built-in QML
            types enable you to create cross-platform applications with a
            custom look and feel, whereas the components provide the look and
            feel for a particular platform.

            The Qt Quick 1 Application wizard imports Qt Quick 1.1, and
            therefore, you can use it without changes to develop for platforms
            that run Qt 4.7.4 (such as MeeGo). To develop for platforms that run
            Qt 4.7.3 (such as Maemo), you must change the import statement to
            import Qt Quick 1.0.

            The Qt Quick 2 Application wizard imports Qt Quick 2.0. Use it to
            develop for platforms that run Qt 5.
        \li \gui {Qt Quick UI} creates a Qt Quick UI project with a single QML
            file that contains the main view. You can review Qt Quick UI
            projects in a \l{Previewing QML Files}{preview tool} and you need
            not build them. You do not
            need to have the development environment installed on your
            computer to create and run this type of project.

            \gui {Qt Quick 2 UI with Controls} imports the Qt Quick Controls.
            This project requires that you have installed the Qt Quick Controls
            for your Qt version (5.1 or later).

        \li \gui {Qt Quick Application (from Existing QML File)} converts
            existing Qt Quick applications to Qt Quick application projects.
            This enables you to run them from \QC and to deploy them to mobile
            devices.

        \li \gui {Qt Quick Extension Plugins} (in the \gui Libraries category)
            create C++ plugins that make it possible to offer extensions that
            can be loaded dynamically into Qt Quick applications. Select
            \gui {Qt Quick 1 Extension Plugin} to create extensions for
            Qt Quick 1 applications and \gui {Qt Quick 2 Extension Plugin} to
            create extensions for Qt Quick 2 applications.

    \endlist

    \section1 Creating Qt Quick UI Projects

    Select \gui File > \gui {New File or Project} > \gui Applications >
    \gui {Qt Quick 1 UI}, \gui {Qt Quick 2 UI}, or
    \gui {Qt Quick 2 UI with Controls} > \gui Choose and follow the instructions
    of the wizard.

    \QC creates the following files:

    \list

        \li .qmlproject project file defines that all QML, JavaScript, and image
            files in the project folder belong to the project. Therefore, you do
            not need to individually list all the files in the project.

        \li .qml file defines an UI item, such as a component, screen, or the
            whole application UI.

    \endlist

    The \c import statement in the beginning of the .qml file specifies the Qt modules to
    \l{http://qt-project.org/doc/qt-5.0/qtqml/qtqml-syntax-imports.html}{import}. Each Qt module
    contains a set of default QML types. Specify a version to get the features you want.

    To use JavaScript and image files in the application, copy them to the
    project folder.

    \section1 Creating Qt Quick Applications

    Select \gui File > \gui {New File or Project} > \gui Applications >
    \gui {Qt Quick Application 1 (Built-in Types)} or \gui {Qt Quick Application 2 (Built-in Types)}
    > \gui Choose, and follow the instructions of the wizard.

    \note The SDK for a particular target platform might install additional
    templates for that platform. For example, the \gui {Qt Quick Application for
    MeeGo Harmattan} template is installed as part of the MeeGo Harmattan tool
    chain and the BlackBerry 10 and QNX templates are installed as part of the BlackBerry 10 NDK,
    BlackBerry NDK, or QNX SDK.

    \QC creates the necessary boilerplate files. Some of the files are
    specific to a particular target platform.

    \section1 Importing QML Applications

    If you have existing QML applications that you want to run in \QC or deploy
    to mobile devices, select \gui File > \gui {New File or Project} > \gui Applications >
    \gui {Qt Quick 1 Application (from Existing QML file} or \gui {Qt Quick 2 Application
    (from Existing QML File)} > \gui Choose to import the main .qml file in your project.

    \image qmldesigner-import-project.png "Select Existing QML File dialog"

    All the other files in the project are automatically added to the
    application project.
    \QC adds references to the QML files to a project and creates the additional
    files necessary for deploying applications to mobile devices.

*/
