/****************************************************************************
**
** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** 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 https://www.qt.io/terms-conditions. For further
** information use the contact form at https://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: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/

/*!
    \page qtquick-form-editor.html
    \previouspage quick-components.html
    \nextpage quick-shapes.html

    \title Editing 2D Content

    You design applications in the \uicontrol {Form Editor} view by placing
    2D components and assets into it.

    When you select items in \uicontrol {Form Editor}, markers
    appear around their edges and in their corners. Depending on the shape of
    the cursor, you can move, resize, or rotate the item by dragging it.
    The following image shows the move cursor.

    \image qmldesigner-form-editor.png "Form Editor view"

    \section1 Resizing 2D Items

    When the resize cursor is displayed, you can drag the selection handles
    to resize items.

    \image qtquick-designer-scaling-items.png "Form Editor view"

    \if defined(qtdesignstudio)
    To have the resizing done from the center of the selected item instead from
    its edges, press \key Alt.

    To preserve the image aspect ratio while resizing when using the corner
    handles, press \key Shift. This also works on items that are anchored
    using left, right, top, or bottom anchors.

    To both resize from the center of the item and preserve the aspect ratio,
    press \key Alt+Shift.
    \endif

    \section1 Rotating 2D Items

    When the rotation cursor \inlineimage icons/rotation-cursor.png
    is displayed in one of the corners of an item, you can drag
    clockwise or counter-clockwise to freely rotate the item around
    its origin in \uicontrol {Form Editor}.

    \image qtquick-designer-rotating-items.png "2D rotation tool"

    Additionally, press \key Shift or \key Alt to rotate items in steps of 5 or
    45 degrees, respectively.

    You can set the \l{Managing 2D Transformations}{origin} in the
    \uicontrol Origin field in the \uicontrol Advanced tab in the
    \uicontrol Properties view. There, you can also enter the value
    of the \uicontrol Rotation property in degrees.

    \section1 Zooming

    You can use the zoom buttons on the toolbar to zoom into and out of
    \uicontrol {Form Editor} or select the zoom level as a percentage
    from a list. More buttons are availabe for zooming to fit all content
    in the view or zooming to fit the currently selected components.

    \image qmldesigner-zooming.gif "Zooming in Form Editor"

    The following table lists the zoom buttons:

    \table
    \header
        \li Icon
        \li Tooltip
    \row
        \li \inlineimage icons/zoomIn.png
        \li Zoom in
    \row
        \li \inlineimage icons/zoomOut.png
        \li Zoom out
    \row
        \li \inlineimage icons/zoomAll.png
        \li Zoom to fit all content
    \row
        \li \inlineimage icons/zoomSelection.png
        \li Zoom to fit the current selection
    \endtable

    \section1 Snapping to Parent and Sibling Items

    When you are working on a design, you can use snapping to align
    items in \uicontrol {Form Editor}. Click the \inlineimage snapping.png
    button to have the items snap to their parent or sibling items. Snapping
    lines automatically appear to help you position the items.
    Click the \inlineimage snapping_and_anchoring.png
    button to anchor the item to the items that you snap to.
    Only one snapping button can be selected at the time. Selecting
    one snapping button automatically deselects the others.

    Choose \uicontrol Tools > \uicontrol Options > \uicontrol {Qt Quick} >
    \uicontrol {Qt Quick Designer} to specify settings for snapping. In the
    \uicontrol {Parent item padding} field, specify the
    distance in pixels between the parent item and the snapping lines. In the
    \uicontrol {Sibling item spacing} field, specify the distance in pixels between
    sibling items and the snapping lines.

    \image qtquick-designer-options.png "Qt Quick Designer options"

    The following image shows the snapping lines (1) when
    \uicontrol {Parent item padding} is set to 5 pixels.

    \image qmldesigner-snap-margins.png "Snapping lines on canvas"

    \section1 Hiding Item Boundaries

    \uicontrol {Form Editor} displays the boundaries of items.
    To hide them, select the \inlineimage boundingrect.png
    button.

    \section1 Previewing Component Size

    The width and height of the root item in a QML file determine the size of
    the component. You can reuse components, such as buttons, in different
    sizes in other QML files and design UIs for use with different device
    profiles, screen resolution, or screen orientation. The component size
    might also be zero (0,0) if its final size is determined by property
    bindings.

    To experiment with different component sizes, enter values in the
    \uicontrol {Override Width} and \uicontrol {Override Height} fields (1) on
    the canvas toolbar. The changes are displayed in the \uicontrol {Form Editor}
    view (2) and in the \uicontrol States view (3), but the property
    values are not changed permanently in the QML file. You can permanently
    change the property values in the \uicontrol Properties view (4).

    \image qmldesigner-preview-size.png "Canvas width and height"

    To set the initial size of the root item, select \uicontrol Tools >
    \uicontrol Options > \uicontrol {Qt Quick} > \uicontrol {Qt Quick Designer} and
    specify the item width and height in the \uicontrol {Root Item Init Size}
    group.

    \section1 Specifying Canvas Size

    To change the canvas size, select \uicontrol Tools > \uicontrol Options >
    \uicontrol {Qt Quick} > \uicontrol {Qt Quick Designer} and
    specify the canvas width and height in the \uicontrol Canvas group.

    \section1 Setting Canvas Color

    If you set the background of the root item of your component transparent,
    the canvas color can make it difficult to see the component you are working
    on. To make components more visible, you can select the canvas color in
    the \inlineimage icons/canvas-color.png
    list. By default, the color is transparent. Setting the canvas color does
    not affect the background color of your UI or components in any way.

    \image qmldesigner-canvas-color.png "Transparent canvas color for a transparent component"

    \section1 Refreshing the Form Editor Contents

    When you open QML files in the Design mode, the items in the file are drawn
    in \uicontrol {Form Editor}. When you edit the item properties, the QML
    file and the contents of the editor might get out of sync. For example, when
    you change the position of an item within a column or a row, the new
    position might not be displayed correctly in \uicontrol {Form Editor}.

    To refresh the contents of \uicontrol {Form Editor}, press \key R or
    select the \inlineimage reset.png
    (\uicontrol {Reset View}) button.

    \include qtquick-component-context-menu.qdocinc context-menu
*/
