Merge remote-tracking branch 'origin/4.12'
Conflicts: src/plugins/baremetal/debugservers/uvsc/uvtargetdevicemodel.cpp Change-Id: I4a90920e52dbbe9eb46aef3437ee3c5a6e7b31c6
19
dist/changes-4.12.0.md
vendored
@@ -35,10 +35,15 @@ Editing
|
||||
|
||||
* Added `Go to Last Edit`
|
||||
* Added option for default line terminator style (QTCREATORBUG-3590)
|
||||
* Improved behavior when splitting would hide text cursor
|
||||
* Fixed that wizards ignored default file encoding
|
||||
* Fixed that only restricted number of sizes were allowed for font size (QTCREATORBUG-22536)
|
||||
* Fixed completion after undo (QTCREATORBUG-15038)
|
||||
|
||||
### C++
|
||||
|
||||
* Fixed issue with Clang and precompiled headers (QTCREATORBUG-22897)
|
||||
|
||||
### Language Client
|
||||
|
||||
* Added support for Markdown in tooltips
|
||||
@@ -49,6 +54,7 @@ Editing
|
||||
|
||||
### QML
|
||||
|
||||
* Updated to Qt 5.15 parser (QTCREATORBUG-23591)
|
||||
* Improved support for multiple imports into same namespace (QTCREATORBUG-15684)
|
||||
* Added scanning of `app.qmltypes` and `lib.qmltypes` for type information
|
||||
|
||||
@@ -165,7 +171,7 @@ Version Control Systems
|
||||
* Added option to start interactive rebase from log view (QTCREATORBUG-11200)
|
||||
* Added information about upstream status to `Git Branches` view
|
||||
* Added option to `grep` and `pickaxe` git log (QTCREATORBUG-22512)
|
||||
* Made references in VCS output view clickable (QTCREATORBUG-16477)
|
||||
* Made references in VCS output view clickable and added context menu (QTCREATORBUG-16477)
|
||||
|
||||
Test Integration
|
||||
----------------
|
||||
@@ -181,6 +187,9 @@ Platforms
|
||||
|
||||
### Windows
|
||||
|
||||
* Improved behavior with regard to MSVC tool chain matching and compatibility of MSVC 2017 and
|
||||
MSVC 2019 (QTCREATORBUG-23653)
|
||||
|
||||
### macOS
|
||||
|
||||
* Fixed parsing of Apple Clang specific linker message (QTCREATORBUG-19766)
|
||||
@@ -191,9 +200,11 @@ Platforms
|
||||
|
||||
* Added auto-detection of Java JDK (QTCREATORBUG-23407)
|
||||
* Added option to automatically download and install required Android tools (QTCREATORBUG-23285)
|
||||
* Added option to register multiple NDKs (QTCREATORBUG-23286)
|
||||
* Added automatic selection of correct NDK for Qt version (QTCREATORBUG-23583)
|
||||
* Added support for Android 11 with API level 30
|
||||
* Improved examples browser to only show items tagged with `android` (QTBUG-80716)
|
||||
* Improved manifest editor (QTCREATORBUG-23283)
|
||||
* Fixed several issues with AVD manager (QTCREATORBUG-23284, QTCREATORBUG-23448)
|
||||
|
||||
### iOS
|
||||
@@ -213,12 +224,14 @@ Platforms
|
||||
|
||||
Credits for these changes go to:
|
||||
--------------------------------
|
||||
Aleksei German
|
||||
Alessandro Portale
|
||||
Alexandru Croitor
|
||||
Andre Hartmann
|
||||
Andrey Sobol
|
||||
André Pönitz
|
||||
Assam Boudjelthia
|
||||
BogDan Vatra
|
||||
Camila San
|
||||
Christian Kandeler
|
||||
Christian Stenger
|
||||
@@ -227,13 +240,16 @@ David Schulz
|
||||
Denis Shienkov
|
||||
Dmitry Kovalev
|
||||
Eike Ziller
|
||||
Fawzi Mohamed
|
||||
Federico Guerinoni
|
||||
Filippo Cucchetto
|
||||
Halfdan Ingvarsson
|
||||
Hannes Domani
|
||||
Henning Gruendl
|
||||
Igor Sidorov
|
||||
Jaroslaw Kobus
|
||||
Jochen Becher
|
||||
Kai Köhne
|
||||
Knud Dollereder
|
||||
Leander Schulten
|
||||
Leena Miettinen
|
||||
@@ -260,6 +276,7 @@ Tim Jenssen
|
||||
Tobias Hunger
|
||||
Topi Reinio
|
||||
Ulf Hermann
|
||||
Vikas Pachdha
|
||||
Ville Voutilainen
|
||||
Volodymyr Samokhatko
|
||||
zarelaky
|
||||
|
@@ -3,8 +3,11 @@ description = "$IDE_DISPLAY_NAME Manual"
|
||||
url = http://doc.qt.io/$IDE_ID
|
||||
|
||||
headerdirs =
|
||||
sourcedirs = ../src
|
||||
sourcedirs = ../src \
|
||||
../../qtdesignstudio/src/qtquick3d-editor
|
||||
|
||||
imagedirs = ../images \
|
||||
../../qtdesignstudio/images \
|
||||
../../../src/libs/qmleditorwidgets/images \
|
||||
../../../src/libs/utils/images \
|
||||
../../../src/plugins/android/images \
|
||||
@@ -16,6 +19,7 @@ imagedirs = ../images \
|
||||
../../../src/plugins/help/images \
|
||||
../../../src/plugins/projectexplorer/images \
|
||||
../../../src/plugins/qmldesigner/components/componentcore/images \
|
||||
../../../src/plugins/qmldesigner/components/edit3d/images \
|
||||
../../../src/plugins/qmldesigner/components/formeditor \
|
||||
../../../src/plugins/qmldesigner/components/navigator \
|
||||
../../../src/plugins/qmldesigner/components/timelineeditor/images \
|
||||
@@ -35,12 +39,15 @@ depends += qtwidgets \
|
||||
qtcmake \
|
||||
qtcore \
|
||||
qtqml \
|
||||
qtqmlmodels \
|
||||
qtquick \
|
||||
qmake \
|
||||
qtdesigner \
|
||||
qtdoc \
|
||||
qtgraphicaleffects \
|
||||
qtgui \
|
||||
qthelp \
|
||||
qtquick3d \
|
||||
qtquickcontrols \
|
||||
qtquickextras \
|
||||
qtquicktimeline \
|
||||
|
BIN
doc/qtcreator/images/icons/detach-group-icon.png
Normal file
After Width: | Height: | Size: 209 B |
BIN
doc/qtcreator/images/qtcreator-workspace-attaching-views.png
Normal file
After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 9.1 KiB |
BIN
doc/qtcreator/images/qtquick-annotation-editor.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
doc/qtcreator/images/qtquick-annotations.png
Normal file
After Width: | Height: | Size: 12 KiB |
@@ -32,21 +32,42 @@
|
||||
\title Managing Workspaces
|
||||
|
||||
In the Design and Debug modes, you can arrange a set of \QC
|
||||
views as a \e workspace on the screen. For a list of views,
|
||||
select \uicontrol Window > \uicontrol Views.
|
||||
views as a \e workspace on the screen.
|
||||
|
||||
In \QMLD, you can select the \uicontrol {Restore last workspace on startup}
|
||||
check box to save the current workspace as a \e default workspace when you
|
||||
exit \QC and to restore it the next time you start \QC.
|
||||
To detach views:
|
||||
|
||||
To manage workspaces, select \uicontrol Window > \uicontrol Workspaces >
|
||||
\uicontrol Manage.
|
||||
\list
|
||||
\li Double-click the title bar of the view.
|
||||
\li Start dragging the view to another position.
|
||||
\li Select the \inlineimage icons/detach-group-icon.png
|
||||
(\uicontrol {Detach Group}) button.
|
||||
\endlist
|
||||
|
||||
You can move detached views or groups of views anywhere on the screen.
|
||||
|
||||
To attach views, drag them over the dock area markers until the dock area
|
||||
where you want to attach the view is highlighted, and then drop them into
|
||||
the dock area.
|
||||
|
||||
\image qtcreator-workspace-attaching-views.png "Attaching views"
|
||||
|
||||
To close groups of views, select the \uicontrol {Close Group} button.
|
||||
|
||||
To open closed views, select \uicontrol Window > \uicontrol Views.
|
||||
|
||||
\section1 Saving Workspaces
|
||||
|
||||
The changes you make to a workspace are saved when you exit \QC.
|
||||
In \QMLD, you can select \uicontrol Window > \uicontrol Workspaces >
|
||||
\uicontrol Manage > \uicontrol {Restore last workspace on startup}
|
||||
to restore the current workspace the next time you start \QC.
|
||||
|
||||
\image qtcreator-workspace-manager.png "Workspace Manager"
|
||||
|
||||
To save a workspace under a new name, select \uicontrol Clone.
|
||||
|
||||
To delete the selected workspace, select \uicontrol Delete.
|
||||
To revert the changes you made to a preset workspace, select
|
||||
\uicontrol Reset.
|
||||
|
||||
To switch between workspaces, select \uicontrol {Switch To}.
|
||||
|
||||
@@ -61,4 +82,5 @@
|
||||
switch to it.
|
||||
\endlist
|
||||
|
||||
To delete the selected workspace, select \uicontrol Delete.
|
||||
*/
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Creator}
|
||||
\contentspage index.html
|
||||
\page qtcreator-toc.html
|
||||
|
||||
\title All Topics
|
||||
@@ -91,15 +91,23 @@
|
||||
\list
|
||||
\li \l {Creating Qt Quick Projects}
|
||||
\li \l {Editing QML Files in Design Mode}
|
||||
\li \l {Creating UIs}
|
||||
\list
|
||||
\li \l {Creating Components}
|
||||
\list
|
||||
\li \l {Creating Buttons}
|
||||
\li \l {Creating Scalable Buttons and Borders}
|
||||
\li \l{Creating Buttons}
|
||||
\li \l{Creating Scalable Buttons and Borders}
|
||||
\endlist
|
||||
\li \l {Managing Item Hierarchy}
|
||||
\li \l {Specifying Item Properties}
|
||||
\li \l {Creating Animations}
|
||||
\li \l {Adding Connections}
|
||||
\li \l{Managing Item Hierarchy}
|
||||
\li \l{Specifying Item Properties}
|
||||
\li \l{Using Custom Fonts}
|
||||
\li \l{Annotating Designs}
|
||||
\li \l{Qt Quick UI Forms}
|
||||
\endlist
|
||||
\li \l {Adding Dynamics}
|
||||
\list
|
||||
\li \l{Creating Animations}
|
||||
\li \l{Adding Connections}
|
||||
\list
|
||||
\li \l{Connecting Objects to Signals}
|
||||
\li \l{Specifying Dynamic Properties}
|
||||
@@ -108,8 +116,30 @@
|
||||
\endlist
|
||||
\li \l {Adding States}
|
||||
\li \l {Editing PathView Properties}
|
||||
\endlist
|
||||
\li \l{Editing 3D Scenes}
|
||||
\list
|
||||
\li \l {Exporting 3D Assets}
|
||||
\list
|
||||
\li \l{Exporting from Blender}{Blender}
|
||||
\li \l{Exporting from Maya}{Maya}
|
||||
\endlist
|
||||
\li \l{Importing 3D Assets}
|
||||
\li \l{Editing 3D Assets in Design Mode}
|
||||
\li \l{Working in the 3D Editor}
|
||||
\li \l{Adding 3D Views}
|
||||
\li \l{Using 3D Components}
|
||||
\list
|
||||
\li \l{Setting Node Properties}
|
||||
\li \l{Adding Models}
|
||||
\li \l{Using Materials and Shaders}
|
||||
\li \l{Attaching Textures to Materials}
|
||||
\li \l{Using Lights}
|
||||
\li \l{Using Scene Camera}
|
||||
\li \l{Setting Scene Environment}
|
||||
\endlist
|
||||
\endlist
|
||||
\li \l {Browsing ISO 7000 Icons}
|
||||
\li \l {Qt Quick UI Forms}
|
||||
\li \l {Using QML Modules with Plugins}
|
||||
\li \l {Converting UI Projects to Applications}
|
||||
\endlist
|
||||
|
@@ -33,40 +33,13 @@
|
||||
|
||||
\contentspage index.html
|
||||
\page creator-visual-editor.html
|
||||
\if defined(qtdesignstudio)
|
||||
\previouspage quick-converting-ui-projects.html
|
||||
\nextpage quick-components.html
|
||||
\else
|
||||
\previouspage creator-design-mode.html
|
||||
\nextpage quick-projects.html
|
||||
\endif
|
||||
|
||||
\title Developing Qt Quick Applications
|
||||
|
||||
\if defined(qtdesignstudio)
|
||||
When you install \QDS, everything you'll need to design UIs
|
||||
using \l{Qt Quick} and to preview them on the desktop or on Android or
|
||||
embedded Linux devices is automatically installed and configured correctly
|
||||
for you.
|
||||
\endif
|
||||
|
||||
Qt Quick enables you to build UIs around the behavior of
|
||||
\e components and how they connect with one another. You
|
||||
create components using Qt Quick and QML types that are available in
|
||||
the Design mode. You can specify values for the \e properties of a
|
||||
component to change its appearance and behavior. All QML types have a
|
||||
set of predefined properties, some of which control things that are
|
||||
visible to users, while others are used behind the scene.
|
||||
|
||||
While it is useful to learn the basics of Qt Quick, you can also rely on
|
||||
\QDS to write the code for you when you drag-and-drop the ready-made
|
||||
components to the working area and change them to your liking by modifying
|
||||
their properties in the Design mode. You can always check up details in
|
||||
the extensive Qt Quick documentation by pressing \key F1.
|
||||
|
||||
\list
|
||||
|
||||
\if defined(qtcreator)
|
||||
\li \l {Creating Qt Quick Projects}
|
||||
|
||||
You can use wizards to create Qt Quick projects.
|
||||
@@ -76,87 +49,41 @@
|
||||
You can use the \uicontrol {Form Editor} or the
|
||||
\uicontrol {Text Editor} in the Design mode to
|
||||
develop Qt Quick applications.
|
||||
\endif
|
||||
|
||||
\li \l {Creating Components}
|
||||
\li \l {Creating UIs}
|
||||
|
||||
In addition to your imported artwork, you can use the Design
|
||||
mode to customize ready-made components or design any custom form
|
||||
and shape directly as QML types. You can import visual assets in
|
||||
various formats, such as PNG, JPG, and SVG for use in the
|
||||
components.
|
||||
Qt Quick enables you to build UIs around the behavior of
|
||||
\e components and how they connect with one another. You
|
||||
create components using Qt Quick and QML types that are
|
||||
available in the Design mode, manage their relationships,
|
||||
and specify their properties.
|
||||
|
||||
\li \l {Managing Item Hierarchy}
|
||||
\li \l {Adding Dynamics}
|
||||
|
||||
You can manage the items in the current QML file and their
|
||||
relationships in the \uicontrol Navigator.
|
||||
You can animate the properties of UI components and create
|
||||
connections between them to enable them to communicate with
|
||||
each other.
|
||||
|
||||
\li \l {Specifying Item Properties}
|
||||
\li \l {Editing 3D Scenes}
|
||||
|
||||
You can specify values for the properties of a component to change
|
||||
its appearance and behavior. All QML types have a set of predefined
|
||||
properties. Some properties, such as position, size, and visibility,
|
||||
are common to all QML types, whereas others are specific to the QML
|
||||
type. You can specify properties for your components in the
|
||||
\uicontrol Properties view.
|
||||
You can use the 3D editor in the Design mode to edit files you
|
||||
created using 3D graphics applications and stored in one of the
|
||||
supported formats. You cannot create 3D models or other assets
|
||||
in the editor, but you can import the assets you need and work
|
||||
with them to create scenes and states, as well as the
|
||||
transitions between them.
|
||||
|
||||
\li \l {Creating Animations}
|
||||
|
||||
You can use a timeline and keyframe based editor in the
|
||||
\uicontrol Timeline view to animate the properties of UI
|
||||
components. Animating properties enables their values to
|
||||
move through intermediate values at specified keyframes
|
||||
instead of immediately changing to the target value.
|
||||
|
||||
\li \l {Adding Connections}
|
||||
|
||||
You can create connections between the UI components and
|
||||
the application to enable them to communicate with each other. For
|
||||
example, how does the appearance of a button change on a mouse click
|
||||
and which action does the application need to perform in response to
|
||||
it.
|
||||
|
||||
You can also create connections between UI components by
|
||||
binding their properties together. This way, when the value of a
|
||||
property changes in a parent component, it can be automatically
|
||||
changed in all the child components, for example.
|
||||
|
||||
\li \l {Adding States}
|
||||
|
||||
Qt Quick allows you to declare various UI states that describe
|
||||
how component properties change from a base state. Therefore,
|
||||
states can be a useful way of organizing your UI
|
||||
logic. You can associate transitions with items to define
|
||||
how their properties will animate when they change due to a state
|
||||
change.
|
||||
\endlist
|
||||
|
||||
\section1 Related Topics
|
||||
|
||||
\list
|
||||
\if defined(qtdesignstudio)
|
||||
\li \l {Using Custom Fonts}
|
||||
|
||||
You can load custom fonts to \QDS and use them in your designs.
|
||||
\endif
|
||||
|
||||
\li \l {Editing PathView Properties}
|
||||
|
||||
You can use a graphical spline editor to specify \l{PathView} paths.
|
||||
A path view lays out data provided by data models on a \l{Path}.
|
||||
|
||||
\li \l {Browsing ISO 7000 Icons}
|
||||
|
||||
You can add ISO 7000 icons from a library delivered with \QC to
|
||||
UIs and change their color.
|
||||
|
||||
\li \l{Qt Quick UI Forms}
|
||||
|
||||
Some of the wizards create Qt Quick projects that contain UI forms
|
||||
(.ui.qml files). The forms use a purely declarative subset of the
|
||||
QML language and you can edit them in the Design mode.
|
||||
|
||||
\if defined(qtcreator)
|
||||
\li \l {Using QML Modules with Plugins}
|
||||
|
||||
QML modules may use plugins to expose components defined in C++ to
|
||||
@@ -171,7 +98,6 @@
|
||||
interfaces. To use them for application development, you have to
|
||||
convert them to Qt Quick Application projects that contain .pro,
|
||||
.cpp, and .qrc files.
|
||||
\endif
|
||||
|
||||
\endlist
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Creator documentation.
|
||||
@@ -26,8 +26,8 @@
|
||||
/*!
|
||||
\contentspage index.html
|
||||
\page qtquick-iso-icon-browser.html
|
||||
\previouspage qmldesigner-pathview-editor.html
|
||||
\nextpage creator-quick-ui-forms.html
|
||||
\previouspage studio-3d-scene-environment.html
|
||||
\nextpage creator-qml-modules-with-plugins.html
|
||||
|
||||
\title Browsing ISO 7000 Icons
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Creator}
|
||||
\contentspage index.html
|
||||
\previouspage creator-live-preview-devices.html
|
||||
\page qt-design-viewer.html
|
||||
\if defined(qtdesignstudio)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Design Studio documentation.
|
||||
@@ -24,9 +24,9 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio Manual}
|
||||
\page studio-adding-dynamics.html
|
||||
\previouspage studio-fonts.html
|
||||
\contentspage index.html
|
||||
\page qtquick-adding-dynamics.html
|
||||
\previouspage qtquick-fonts.html
|
||||
\nextpage studio-timeline.html
|
||||
|
||||
\title Adding Dynamics
|
76
doc/qtcreator/src/qtquick/qtquick-annotations.qdoc
Normal file
@@ -0,0 +1,76 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 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.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Creator Manual}
|
||||
\page qtquick-annotations.html
|
||||
\previouspage qtquick-fonts.html
|
||||
\nextpage creator-quick-ui-forms.html
|
||||
|
||||
\title Annotating Designs
|
||||
|
||||
You can submit your designs to review or further development as QML files.
|
||||
You can annotate your designs to provide reviewers or developers with
|
||||
additional information about them. An annotation consist of an annotation
|
||||
name and one or several comments. The comments have a title, author, and
|
||||
comment text.
|
||||
|
||||
\image qtquick-annotations.png "Annotations displayed in the Form Editor tab"
|
||||
|
||||
Annotations are saved in the end of QML files when you save the file. They
|
||||
do not affect the QML performance in any way.
|
||||
|
||||
To view annotations, select the annotation icon.
|
||||
|
||||
To edit annotations, select \uicontrol {Edit Annotation} in the context
|
||||
menu of the annotation icon.
|
||||
|
||||
\section1 Adding Annotations
|
||||
|
||||
To add annotations:
|
||||
|
||||
\list 1
|
||||
\li Select the component to annotate in the \uicontrol Navigator
|
||||
or in the \uicontrol {Form Editor}.
|
||||
\li In the \uicontrol Properties view, select
|
||||
\uicontrol {Add Annotation}.
|
||||
\image qtquick-annotation-editor.png "Annotation Editor"
|
||||
\li The \uicontrol {Selected Item} field displays the ID of the
|
||||
component. Enter a name for the annotation in the
|
||||
\uicontrol {Custom ID} field.
|
||||
\li In the \uicontrol Title field, enter the text to display in
|
||||
the tab for this comment.
|
||||
\li In the \uicontrol Author field, enter the author's name.
|
||||
\li In the \uicontrol Text field, enter the comment text.
|
||||
\li Select \uicontrol OK.
|
||||
\endlist
|
||||
|
||||
To add more comments about the component, select the \inlineimage plus.png
|
||||
(\uicontrol {Add Comment}) button.
|
||||
|
||||
To remove the active comment, select the \inlineimage minus.png
|
||||
(\uicontrol {Remove Comment}) button. To remove the annotation, right-click
|
||||
the annotation icon, and then select \uicontrol {Remove Annotation}.
|
||||
*/
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Creator documentation.
|
||||
@@ -24,8 +24,8 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Creator Manual}
|
||||
\previouspage qmldesigner-connections.html
|
||||
\contentspage index.html
|
||||
\previouspage quick-signals.html
|
||||
\page quick-dynamic-properties.html
|
||||
\nextpage quick-property-bindings.html
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Creator documentation.
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
/*!
|
||||
\contentspage index.html
|
||||
\previouspage quick-states.html
|
||||
\previouspage studio-timeline.html
|
||||
\page qmldesigner-connections.html
|
||||
\nextpage quick-signals.html
|
||||
|
||||
|
@@ -37,7 +37,7 @@
|
||||
\nextpage {Tutorials}
|
||||
\else
|
||||
\previouspage quick-projects.html
|
||||
\nextpage quick-components.html
|
||||
\nextpage quick-uis.html
|
||||
\endif
|
||||
|
||||
\title Editing QML Files in Design Mode
|
||||
|
@@ -25,10 +25,10 @@
|
||||
|
||||
/*!
|
||||
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage qtquick-properties.html
|
||||
\page studio-fonts.html
|
||||
\nextpage studio-adding-dynamics.html
|
||||
\page qtquick-fonts.html
|
||||
\nextpage qtquick-annotations.html
|
||||
|
||||
\title Using Custom Fonts
|
||||
|
@@ -28,7 +28,7 @@
|
||||
\page quick-converting-ui-projects.html
|
||||
\if defined(qtdesignstudio)
|
||||
\previouspage studio-importing-designs.html
|
||||
\nextpage studio-prototyping.html
|
||||
\nextpage quick-uis.html
|
||||
\else
|
||||
\previouspage creator-qml-modules-with-plugins.html
|
||||
\nextpage creator-using-qt-designer.html
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Creator}
|
||||
\contentspage index.html
|
||||
\previouspage creator-live-preview.html
|
||||
\page creator-live-preview-desktop.html
|
||||
\nextpage creator-live-preview-devices.html
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Creator}
|
||||
\contentspage index.html
|
||||
\previouspage creator-live-preview-desktop.html
|
||||
\page creator-live-preview-devices.html
|
||||
\nextpage qt-design-viewer.html
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Creator}
|
||||
\contentspage index.html
|
||||
\if defined(qtdesignstudio)
|
||||
\previouspage studio-3d-camera.html
|
||||
\else
|
||||
|
@@ -27,11 +27,7 @@
|
||||
\contentspage index.html
|
||||
\page qmldesigner-pathview-editor.html
|
||||
\previouspage quick-states.html
|
||||
\if defined(qtdesignstudio)
|
||||
\nextpage studio-3d.html
|
||||
\else
|
||||
\nextpage qtquick-iso-icon-browser.html
|
||||
\endif
|
||||
|
||||
\title Editing PathView Properties
|
||||
|
||||
|
@@ -24,14 +24,10 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Creator Manual}
|
||||
\contentspage index.html
|
||||
\page qtquick-properties.html
|
||||
\previouspage qtquick-navigator.html
|
||||
\if defined(qtdesignstudio)
|
||||
\nextpage studio-fonts.html
|
||||
\else
|
||||
\nextpage studio-timeline.html
|
||||
\endif
|
||||
\nextpage qtquick-fonts.html
|
||||
|
||||
\title Specifying Item Properties
|
||||
|
||||
|
@@ -25,11 +25,7 @@
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio Manual}
|
||||
\if defined(qtdesignstudio)
|
||||
\previouspage studio-adding-dynamics.html
|
||||
\else
|
||||
\previouspage qtquick-properties.html
|
||||
\endif
|
||||
\previouspage qtquick-adding-dynamics.html
|
||||
\page studio-timeline.html
|
||||
\nextpage qmldesigner-connections.html
|
||||
|
||||
|
@@ -33,11 +33,10 @@
|
||||
|
||||
\contentspage index.html
|
||||
\page creator-quick-ui-forms.html
|
||||
\previouspage qtquick-annotations.html
|
||||
\if defined(qtdesignstudio)
|
||||
\previouspage qmldesigner-pathview-editor.html
|
||||
\nextpage creator-live-preview.html
|
||||
\else
|
||||
\previouspage qtquick-iso-icon-browser.html
|
||||
\nextpage creator-qml-modules-with-plugins.html
|
||||
\endif
|
||||
|
||||
|
@@ -24,17 +24,23 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio Manual}
|
||||
\contentspage index.html
|
||||
\page quick-uis.html
|
||||
\if defined(qtdesignstudio)
|
||||
\previouspage quick-converting-ui-projects.html
|
||||
\page studio-prototyping.html
|
||||
\else
|
||||
\previouspage creator-using-qt-quick-designer.html
|
||||
\endif
|
||||
\nextpage quick-components.html
|
||||
|
||||
\title Creating UIs
|
||||
|
||||
\if defined(qtdesignstudio)
|
||||
When you install \QDS, everything you'll need to design UIs
|
||||
using \l{Qt Quick} and to preview them on the desktop or on Android or
|
||||
embedded Linux devices is automatically installed and configured correctly
|
||||
for you.
|
||||
\endif
|
||||
|
||||
Qt Quick enables you to build UIs around the behavior of
|
||||
\e components and how they connect with one another. You
|
||||
@@ -45,7 +51,7 @@
|
||||
visible to users, while others are used behind the scene.
|
||||
|
||||
While it is useful to learn the basics of Qt Quick, you can also rely on
|
||||
\QDS to write the code for you when you drag-and-drop the ready-made
|
||||
\QMLD to write the code for you when you drag-and-drop the ready-made
|
||||
components to the working area and change them to your liking by modifying
|
||||
their properties in the Design mode. You can always check up details in
|
||||
the extensive Qt Quick documentation by pressing \key F1.
|
||||
@@ -76,12 +82,20 @@
|
||||
|
||||
\li \l {Using Custom Fonts}
|
||||
|
||||
You can load custom fonts to \QDS and use them in your designs.
|
||||
You can load custom fonts to \QMLD and use them in your designs.
|
||||
|
||||
\li \l {Annotating Designs}
|
||||
|
||||
You can annotate your designs to provide reviewers or developers
|
||||
with additional information about them.
|
||||
|
||||
\if defined(qtdesignstudio)
|
||||
\endlist
|
||||
|
||||
\section1 Related Topics
|
||||
|
||||
\list
|
||||
\endif
|
||||
\li \l{Qt Quick UI Forms}
|
||||
|
||||
Some of the wizards create Qt Quick projects that contain UI forms
|
@@ -25,7 +25,7 @@
|
||||
|
||||
/*!
|
||||
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage psqtbridge.html
|
||||
\page qtbridge-ps-setup.html
|
||||
\nextpage qtbridge-ps-using.html
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
/*!
|
||||
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage sketchqtbridge.html
|
||||
\page qtbridge-sketch-setup.html
|
||||
\nextpage qtbridge-sketch-using.html
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage qt-design-viewer.html
|
||||
\page studio-advanced.html
|
||||
\nextpage studio-platforms.html
|
||||
|
109
doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc
Normal file
@@ -0,0 +1,109 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Bridge 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.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage index.html
|
||||
\previouspage studio-importing-designs.html
|
||||
\page studio-importing-2d.html
|
||||
\nextpage studio-importing-3d.html
|
||||
|
||||
\title Importing 2D Assets
|
||||
|
||||
\image studio-imported-assets.png "Artwork imported into Qt Design Studio"
|
||||
|
||||
You can import assets that you exported with \QB to a \QDS project as image
|
||||
and QML files and edit them in the Design mode. If you make changes to your
|
||||
design in the design tool, you can merge the changes into existing QML files
|
||||
without overwriting the changes you have made in \QDS.
|
||||
|
||||
\note Attempting to import assets exported on another system might fail.
|
||||
|
||||
The following instructions use an empty project as an example. For more
|
||||
information about the options you have, see
|
||||
\l {Creating Projects}.
|
||||
|
||||
To import designs to \QDS projects:
|
||||
|
||||
\list 1
|
||||
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
||||
\uicontrol General > \uicontrol Choose, and follow the
|
||||
instructions of the wizard to create an empty project.
|
||||
\li In \uicontrol Projects, double-click \e Screen01.ui.qml to move to
|
||||
the Design mode.
|
||||
\li Select \uicontrol Library > \uicontrol Assets >
|
||||
\uicontrol {Add New Assets}.
|
||||
\li Select the folder where you exported the assets.
|
||||
\li Select \uicontrol {Exported Assets (*.metadata)} in the dropdown
|
||||
menu to filter \e .metadata files.
|
||||
\li Select a \e .metadata file to import, and then select
|
||||
\uicontrol Open.
|
||||
\li Select \uicontrol Details next to the
|
||||
\uicontrol {Metadata Import Paths} field to display the path where
|
||||
the metadata is imported from.
|
||||
\image studio-import-metadata.png "Asset Import dialog"
|
||||
\li Select \uicontrol Details next to the
|
||||
\uicontrol {QML/Asset Export Paths} field to display the paths to
|
||||
copy the assets to.
|
||||
\li In the \uicontrol QML field, you can change the folder to copy the
|
||||
QML files to.
|
||||
\li In the \uicontrol Assets field, you can change the folder to copy
|
||||
the image files to.
|
||||
\li Deselect the \uicontrol {Import assets} check box if you only want
|
||||
to create QML files.
|
||||
\li Deselect the \uicontrol {Generate QML} check box if you only
|
||||
want to import assets.
|
||||
\li Select the \uicontrol {Merge QML} check box if you have imported the
|
||||
assets before and want to merge the changes into existing QML files
|
||||
instead of overwriting the existing files.
|
||||
\li Select \uicontrol Import to import the QML files and assets. This
|
||||
might take a little while for complex projects.
|
||||
\endlist
|
||||
|
||||
The imported assets are displayed in the \uicontrol Assets tab in the
|
||||
\uicontrol Library as PNG images. The components that you specified in
|
||||
the design tool are displayed in the \uicontrol {My QML Components} tab,
|
||||
as well as in the \uicontrol Project tab of the \uicontrol Navigator as
|
||||
separate QML files.
|
||||
|
||||
\note The layer that was the bottom layer in the design tool becames the top
|
||||
layer in the \uicontrol Navigator to reflect the QML code model. You
|
||||
can view the QML code in the \uicontrol {Text Editor} tab.
|
||||
|
||||
If asset importer conflicts, warnings, and errors are displayed in the
|
||||
\uicontrol {Asset Import} dialog while importing, fix the issues in
|
||||
design tool and export the assets again.
|
||||
|
||||
\section1 \QB Videos
|
||||
|
||||
For more information about importing assets from Adobe Photoshop, watch a
|
||||
video tutorial and webinar about using \QB:
|
||||
|
||||
\list
|
||||
\li \l{https://resources.qt.io/development-topic-ui-design/qtdesignstudio-clustertutorial-partone}
|
||||
{Building an Instrument Cluster for Your Car HMI, Part 1}
|
||||
\li \l{https://www.youtube.com/watch?v=ZzbucmQPU44}
|
||||
{From Photoshop to Prototype with Qt Design Studio}
|
||||
\endlist
|
||||
*/
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Bridge documentation.
|
||||
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage creator-vcs-git.html
|
||||
\page studio-importing-designs.html
|
||||
\nextpage studio-importing-2d.html
|
||||
@@ -47,131 +47,3 @@
|
||||
You can then edit them in the Design mode.
|
||||
\endlist
|
||||
*/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\previouspage studio-importing-designs.html
|
||||
\page studio-importing-2d.html
|
||||
\nextpage studio-importing-3d.html
|
||||
|
||||
\title Importing 2D Assets
|
||||
|
||||
\image studio-imported-assets.png "Artwork imported into Qt Design Studio"
|
||||
|
||||
You can import assets that you exported with \QB to a \QDS project as image
|
||||
and QML files and edit them in the Design mode. If you make changes to your
|
||||
design in the design tool, you can merge the changes into existing QML files
|
||||
without overwriting the changes you have made in \QDS.
|
||||
|
||||
\note Attempting to import assets exported on another system might fail.
|
||||
|
||||
The following instructions use an empty project as an example. For more
|
||||
information about the options you have, see
|
||||
\l {Creating Projects}.
|
||||
|
||||
To import designs to \QDS projects:
|
||||
|
||||
\list 1
|
||||
\li Select \uicontrol File > \uicontrol {New File or Project} >
|
||||
\uicontrol General > \uicontrol Choose, and follow the
|
||||
instructions of the wizard to create an empty project.
|
||||
\li In \uicontrol Projects, double-click \e Screen01.ui.qml to move to
|
||||
the Design mode.
|
||||
\li Select \uicontrol Library > \uicontrol Assets >
|
||||
\uicontrol {Add New Assets}.
|
||||
\li Select the folder where you exported the assets.
|
||||
\li Select \uicontrol {Exported Assets (*.metadata)} in the dropdown
|
||||
menu to filter \e .metadata files.
|
||||
\li Select a \e .metadata file to import, and then select
|
||||
\uicontrol Open.
|
||||
\li Select \uicontrol Details next to the
|
||||
\uicontrol {Metadata Import Paths} field to display the path where
|
||||
the metadata is imported from.
|
||||
\image studio-import-metadata.png "Asset Import dialog"
|
||||
\li Select \uicontrol Details next to the
|
||||
\uicontrol {QML/Asset Export Paths} field to display the paths to
|
||||
copy the assets to.
|
||||
\li In the \uicontrol QML field, you can change the folder to copy the
|
||||
QML files to.
|
||||
\li In the \uicontrol Assets field, you can change the folder to copy
|
||||
the image files to.
|
||||
\li Deselect the \uicontrol {Import assets} check box if you only want
|
||||
to create QML files.
|
||||
\li Deselect the \uicontrol {Generate QML} check box if you only
|
||||
want to import assets.
|
||||
\li Select the \uicontrol {Merge QML} check box if you have imported the
|
||||
assets before and want to merge the changes into existing QML files
|
||||
instead of overwriting the existing files.
|
||||
\li Select \uicontrol Import to import the QML files and assets. This
|
||||
might take a little while for complex projects.
|
||||
\endlist
|
||||
|
||||
The imported assets are displayed in the \uicontrol Assets tab in the
|
||||
\uicontrol Library as PNG images. The components that you specified in
|
||||
the design tool are displayed in the \uicontrol {My QML Components} tab,
|
||||
as well as in the \uicontrol Project tab of the \uicontrol Navigator as
|
||||
separate QML files.
|
||||
|
||||
\note The layer that was the bottom layer in the design tool becames the top
|
||||
layer in the \uicontrol Navigator to reflect the QML code model. You
|
||||
can view the QML code in the \uicontrol {Text Editor} tab.
|
||||
|
||||
If asset importer conflicts, warnings, and errors are displayed in the
|
||||
\uicontrol {Asset Import} dialog while importing, fix the issues in
|
||||
design tool and export the assets again.
|
||||
|
||||
\section1 \QB Videos
|
||||
|
||||
For more information about importing assets from Adobe Photoshop, watch a
|
||||
video tutorial and webinar about using \QB:
|
||||
|
||||
\list
|
||||
\li \l{https://resources.qt.io/development-topic-ui-design/qtdesignstudio-clustertutorial-partone}
|
||||
{Building an Instrument Cluster for Your Car HMI, Part 1}
|
||||
\li \l{https://www.youtube.com/watch?v=ZzbucmQPU44}
|
||||
{From Photoshop to Prototype with Qt Design Studio}
|
||||
\endlist
|
||||
*/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\previouspage studio-importing-2d.html
|
||||
\page studio-importing-3d.html
|
||||
\nextpage quick-converting-ui-projects.html
|
||||
|
||||
\title Importing 3D Assets
|
||||
|
||||
You can import files you created using 3D graphics applications and stored
|
||||
in several widely-used formats, such as .blend, .dae, .fbx, .glb, .gltf,
|
||||
.obj, .uia, or .uip. For a list of formats supported by each \l{Qt Quick 3D}
|
||||
version, see the module documentation.
|
||||
|
||||
For more information about exporting 3D graphics from Maya, see
|
||||
\l{Exporting from Maya}.
|
||||
|
||||
During the import, you can optimize the files for \QDS. You can remove
|
||||
components from meshes to reduce the cache size, find and fix issues in
|
||||
the files, optimize graphs and meshes, and so on. The available options
|
||||
depend on whether you are importing files that you created with Qt 3D Studio
|
||||
or with other 3D graphics tools. See the tooltips in the options dialog
|
||||
for more information about a particular option.
|
||||
|
||||
\image studio-import-3d.png
|
||||
|
||||
To import 3D assets to \QDS projects:
|
||||
|
||||
\list 1
|
||||
\li In the Design mode, select \uicontrol Library > \uicontrol Assets
|
||||
> \uicontrol {Add New Assets}.
|
||||
\li Select \uicontrol {3D Assets} in the dropdown menu to filter 3D
|
||||
graphics files.
|
||||
\li Select a file to import, and then select \uicontrol Open.
|
||||
\li In the \uicontrol {3D Scene Options} tab, select options for
|
||||
importing the file.
|
||||
\li Select \uicontrol Import to import the 3D graphics file.
|
||||
\li When the import is done, select \uicontrol Close.
|
||||
\endlist
|
||||
|
||||
You can open the imported files in the Design mode for editing in the
|
||||
\l{Editing 3D Scenes}{3D editor}.
|
||||
*/
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage creator-editor-options-text.html
|
||||
\page studio-javascript.html
|
||||
\nextpage studio-debugging.html
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage studio-advanced.html
|
||||
\page studio-platforms.html
|
||||
\nextpage creator-keyboard-shortcuts.html
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\page qtdesignstudio-toc.html
|
||||
|
||||
\title All Topics
|
||||
@@ -76,6 +76,7 @@
|
||||
\li \l{Managing Item Hierarchy}
|
||||
\li \l{Specifying Item Properties}
|
||||
\li \l{Using Custom Fonts}
|
||||
\li \l{Annotating Designs}
|
||||
\li \l{Qt Quick UI Forms}
|
||||
\endlist
|
||||
\li \l {Adding Dynamics}
|
||||
@@ -90,7 +91,7 @@
|
||||
\li \l{Adding States}
|
||||
\li \l{Editing PathView Properties}
|
||||
\endlist
|
||||
\li \b {\l{Editing 3D Scenes}}
|
||||
\li \l{Editing 3D Scenes}
|
||||
\list
|
||||
\li \l{Editing 3D Assets in Design Mode}
|
||||
\li \l{Working in the 3D Editor}
|
||||
|
@@ -62,6 +62,7 @@
|
||||
\li \l{Managing Item Hierarchy}
|
||||
\li \l{Specifying Item Properties}
|
||||
\li \l{Using Custom Fonts}
|
||||
\li \l{Annotating Designs}
|
||||
\endlist
|
||||
\li \b {\l{Adding Dynamics}}
|
||||
\list
|
||||
|
@@ -27,9 +27,13 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\page exporting-3d-assets.html
|
||||
\if defined(qtdesignstudio)
|
||||
\previouspage qtbridge-sketch-using.html
|
||||
\else
|
||||
\previouspage studio-3d.html
|
||||
\endif
|
||||
\nextpage exporting-from-blender.html
|
||||
|
||||
\title Exporting 3D Assets
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Design Studio.
|
||||
@@ -26,10 +26,14 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio Manual}
|
||||
\contentspage index.html
|
||||
\page exporting-from-maya.html
|
||||
\previouspage qtbridge-sketch-using.html
|
||||
\previouspage exporting-from-blender.html
|
||||
\if defined (qtdesignstudio)
|
||||
\nextpage creator-quick-tour.html
|
||||
\else
|
||||
\nextpage studio-importing-3d.html
|
||||
\endif
|
||||
|
||||
\title Exporting from Maya
|
||||
|
||||
|
@@ -24,9 +24,13 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\previouspage studio-3d.html
|
||||
\contentspage index.html
|
||||
\page studio-3d-design-mode.html
|
||||
\if defined (qtdesignstudio)
|
||||
\previouspage studio-3d.html
|
||||
\else
|
||||
\previouspage studio-importing-3d.html
|
||||
\endif
|
||||
\nextpage studio-3d-editor.html
|
||||
|
||||
\title Editing 3D Assets in Design Mode
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage studio-3d-design-mode.html
|
||||
\page studio-3d-editor.html
|
||||
\nextpage studio-3d-view.html
|
||||
|
@@ -0,0 +1,72 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Bridge 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.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage index.html
|
||||
\page studio-importing-3d.html
|
||||
\if defined(qtdesignstudio)
|
||||
\previouspage studio-importing-2d.html
|
||||
\nextpage quick-converting-ui-projects.html
|
||||
\else
|
||||
\previouspage exporting-from-maya.html
|
||||
\nextpage studio-3d-design-mode.html
|
||||
\endif
|
||||
|
||||
\title Importing 3D Assets
|
||||
|
||||
You can import files you created using 3D graphics applications and stored
|
||||
in several widely-used formats, such as .blend, .dae, .fbx, .glb, .gltf,
|
||||
.obj, .uia, or .uip. For a list of formats supported by each \l{Qt Quick 3D}
|
||||
version, see the module documentation.
|
||||
|
||||
For more information about exporting 3D graphics from Maya, see
|
||||
\l{Exporting from Maya}.
|
||||
|
||||
During the import, you can optimize the files for \QDS. You can remove
|
||||
components from meshes to reduce the cache size, find and fix issues in
|
||||
the files, optimize graphs and meshes, and so on. The available options
|
||||
depend on whether you are importing files that you created with Qt 3D Studio
|
||||
or with other 3D graphics tools. See the tooltips in the options dialog
|
||||
for more information about a particular option.
|
||||
|
||||
\image studio-import-3d.png
|
||||
|
||||
To import 3D assets to \QDS projects:
|
||||
|
||||
\list 1
|
||||
\li In the Design mode, select \uicontrol Library > \uicontrol Assets
|
||||
> \uicontrol {Add New Assets}.
|
||||
\li Select \uicontrol {3D Assets} in the dropdown menu to filter 3D
|
||||
graphics files.
|
||||
\li Select a file to import, and then select \uicontrol Open.
|
||||
\li In the \uicontrol {3D Scene Options} tab, select options for
|
||||
importing the file.
|
||||
\li Select \uicontrol Import to import the 3D graphics file.
|
||||
\li When the import is done, select \uicontrol Close.
|
||||
\endlist
|
||||
|
||||
You can open the imported files in the Design mode for editing in the
|
||||
\l{Editing 3D Scenes}{3D editor}.
|
||||
*/
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage studio-3d-components.html
|
||||
\page studio-3d-node.html
|
||||
\nextpage studio-3d-model.html
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Design Studio.
|
||||
@@ -29,7 +29,11 @@
|
||||
\contentspage {Qt Design Studio Manual}
|
||||
\page studio-3d-scene-environment.html
|
||||
\previouspage studio-3d-camera.html
|
||||
\if defined (qtdesignstudio)
|
||||
\nextpage creator-live-preview.html
|
||||
\else
|
||||
\nextpage qtquick-iso-icon-browser.html
|
||||
\endif
|
||||
|
||||
\title Setting Scene Environment
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio}
|
||||
\contentspage index.html
|
||||
\previouspage studio-3d-editor.html
|
||||
\page studio-3d-view.html
|
||||
\nextpage studio-3d-components.html
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Design Studio documentation.
|
||||
@@ -24,10 +24,15 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*!
|
||||
\contentspage {Qt Design Studio Manual}
|
||||
\contentspage index.html
|
||||
\page studio-3d.html
|
||||
\previouspage qmldesigner-pathview-editor.html
|
||||
\if defined(qtdesignstudio)
|
||||
\nextpage studio-3d-design-mode.html
|
||||
\else
|
||||
\nextpage exporting-3d-assets.html
|
||||
\endif
|
||||
|
||||
|
||||
\title Editing 3D Scenes
|
||||
|
||||
@@ -45,6 +50,20 @@
|
||||
The following topics contain information about working with Qt Quick 3D:
|
||||
|
||||
\list
|
||||
\if defined (qtcreator)
|
||||
\li \l {Exporting 3D Assets}
|
||||
|
||||
You can import files you created using 3D graphics applications and
|
||||
stored in several widely-used formats, such as .blend, .dae, .fbx,
|
||||
.glb, .gltf, .obj, .uia, or .uip.
|
||||
|
||||
\li \l{Importing 3D Assets}
|
||||
|
||||
You can import 3D assets that you created using 3D graphics
|
||||
applications and stored in one of the supported file formats.
|
||||
You can then edit them in the Design mode.
|
||||
\endif
|
||||
|
||||
\li \l {Editing 3D Assets in Design Mode}
|
||||
|
||||
\QDS opens QML files that contain 3D scenes in the Design mode and
|
||||
|
@@ -24,11 +24,12 @@
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick3D 1.15
|
||||
|
||||
IconGizmo {
|
||||
id: cameraGizmo
|
||||
|
||||
property var frustumModel: null
|
||||
property Model frustumModel: null
|
||||
|
||||
iconSource: "qrc:///qtquickplugin/mockfiles/images/editor_camera.png"
|
||||
|
||||
|
@@ -134,7 +134,7 @@ Item {
|
||||
function fitToView()
|
||||
{
|
||||
if (editView) {
|
||||
var targetNode = selectedNodes.length > 0
|
||||
var targetNode = selectionBoxes.length > 0
|
||||
? selectionBoxes[0].model : null;
|
||||
cameraControl.focusObject(targetNode, editView.camera.eulerRotation, true);
|
||||
}
|
||||
@@ -301,9 +301,12 @@ Item {
|
||||
}
|
||||
|
||||
// No free gizmos available, create a new one
|
||||
var component = Qt.createComponent("LightGizmo.qml");
|
||||
if (component.status === Component.Ready) {
|
||||
var gizmo = component.createObject(overlayView,
|
||||
var gizmoComponent = Qt.createComponent("LightGizmo.qml");
|
||||
var modelComponent = Qt.createComponent("LightModel.qml");
|
||||
if (gizmoComponent.status === Component.Ready && modelComponent.status === Component.Ready) {
|
||||
var geometryName = _generalHelper.generateUniqueName("LightGeometry");
|
||||
var model = modelComponent.createObject(overlayScene, {"geometryName": geometryName});
|
||||
var gizmo = gizmoComponent.createObject(overlayView,
|
||||
{"view3D": overlayView, "targetNode": obj,
|
||||
"selectedNodes": selectedNodes, "scene": scene,
|
||||
"activeScene": activeScene});
|
||||
@@ -311,6 +314,7 @@ Item {
|
||||
gizmo.clicked.connect(handleObjectClicked);
|
||||
gizmo.selectedNodes = Qt.binding(function() {return selectedNodes;});
|
||||
gizmo.activeScene = Qt.binding(function() {return activeScene;});
|
||||
gizmo.connectModel(model);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -29,14 +29,40 @@ import QtQuick3D 1.15
|
||||
IconGizmo {
|
||||
id: lightGizmo
|
||||
|
||||
property Model lightModel: null
|
||||
|
||||
iconSource: targetNode
|
||||
? targetNode instanceof DirectionalLight
|
||||
? "qrc:///qtquickplugin/mockfiles/images/directional_light_gradient.png"
|
||||
: targetNode instanceof AreaLight
|
||||
? "qrc:///qtquickplugin/mockfiles/images/area_light_gradient.png"
|
||||
: "qrc:///qtquickplugin/mockfiles/images/point_light_gradient.png"
|
||||
: targetNode instanceof PointLight
|
||||
? "qrc:///qtquickplugin/mockfiles/images/point_light_gradient.png"
|
||||
: "qrc:///qtquickplugin/mockfiles/images/spot_light_gradient.png"
|
||||
: "qrc:///qtquickplugin/mockfiles/images/point_light_gradient.png"
|
||||
|
||||
// ColorOverlay doesn't work correctly with hidden windows so commenting it out for now
|
||||
//overlayColor: targetNode ? targetNode.color : "transparent"
|
||||
|
||||
function connectModel(model)
|
||||
{
|
||||
lightModel = model;
|
||||
|
||||
model.selected = selected;
|
||||
model.selected = Qt.binding(function() {return selected;});
|
||||
|
||||
model.scene = scene;
|
||||
model.scene = Qt.binding(function() {return scene;});
|
||||
|
||||
model.targetNode = targetNode;
|
||||
model.targetNode = Qt.binding(function() {return targetNode;});
|
||||
|
||||
model.visible = visible;
|
||||
model.visible = Qt.binding(function() {return visible;});
|
||||
}
|
||||
|
||||
onActiveSceneChanged: {
|
||||
if (lightModel && activeScene == scene)
|
||||
lightModel.updateGeometry();
|
||||
}
|
||||
}
|
||||
|
62
share/qtcreator/qml/qmlpuppet/mockfiles/LightModel.qml
Normal file
@@ -0,0 +1,62 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** 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 General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick3D 1.15
|
||||
import LightGeometry 1.0
|
||||
|
||||
Model {
|
||||
id: lightModel
|
||||
|
||||
property string geometryName
|
||||
property alias geometryName: lightGeometry.name // Name must be unique for each geometry
|
||||
property Node targetNode: null
|
||||
property Node scene: null
|
||||
property bool selected: false
|
||||
|
||||
function updateGeometry()
|
||||
{
|
||||
lightGeometry.update();
|
||||
}
|
||||
|
||||
position: targetNode ? targetNode.scenePosition : Qt.vector3d(0, 0, 0)
|
||||
rotation: targetNode ? targetNode.sceneRotation : Qt.quaternion(1, 0, 0, 0)
|
||||
scale: Qt.vector3d(50, 50, 50)
|
||||
|
||||
geometry: lightGeometry
|
||||
materials: [
|
||||
DefaultMaterial {
|
||||
id: defaultMaterial
|
||||
emissiveColor: lightModel.selected ? "#FF0000" : "#555555"
|
||||
lighting: DefaultMaterial.NoLighting
|
||||
cullMode: Material.NoCulling
|
||||
}
|
||||
]
|
||||
|
||||
LightGeometry {
|
||||
id: lightGeometry
|
||||
light: lightModel.scene && lightModel.targetNode ? lightModel.targetNode : null
|
||||
}
|
||||
}
|
@@ -35,20 +35,13 @@ Rectangle {
|
||||
|
||||
id: root
|
||||
color: toggleBackground && toggled ? "#aa000000" : mouseArea.containsMouse ? "#44000000" : "#00000000"
|
||||
width: img.width + txt.width + 5
|
||||
height: img.height
|
||||
|
||||
Image {
|
||||
id: img
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
source: "qrc:///qtquickplugin/mockfiles/images/" + root.states[toggled ? 1 : 0].iconId + ".png"
|
||||
}
|
||||
width: txt.width + 5
|
||||
height: 16
|
||||
|
||||
Text {
|
||||
id: txt
|
||||
color: "#b5b5b5"
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.left: img.right
|
||||
text: root.states[toggled ? 1 : 0].text
|
||||
}
|
||||
|
||||
|
@@ -41,8 +41,8 @@ Rectangle {
|
||||
property var _buttonGroupArray: []
|
||||
|
||||
id: root
|
||||
width: img.width + 5
|
||||
height: img.height + 5
|
||||
width: 16
|
||||
height: 16
|
||||
color: root.selected ? "#aa000000" : (mouseArea.containsMouse ? "#44000000" : "#00000000")
|
||||
radius: 3
|
||||
|
||||
@@ -65,13 +65,6 @@ Rectangle {
|
||||
delay: 1000
|
||||
}
|
||||
|
||||
Image {
|
||||
id: img
|
||||
anchors.centerIn: parent
|
||||
source: root.selected ? "qrc:///qtquickplugin/mockfiles/images/" + root.tool + "_selected.png"
|
||||
: "qrc:///qtquickplugin/mockfiles/images/" + root.tool + "_active.png"
|
||||
}
|
||||
|
||||
Shortcut {
|
||||
sequence: root.currentShortcut
|
||||
onActivated: mouseArea.onClicked(null)
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 266 B |
Before Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 266 B |
Before Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 433 B |
Before Width: | Height: | Size: 561 B |
Before Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 779 B |
Before Width: | Height: | Size: 438 B |
Before Width: | Height: | Size: 904 B |
Before Width: | Height: | Size: 353 B |
Before Width: | Height: | Size: 657 B |
Before Width: | Height: | Size: 355 B |
Before Width: | Height: | Size: 661 B |
Before Width: | Height: | Size: 348 B |
Before Width: | Height: | Size: 525 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 294 B |
Before Width: | Height: | Size: 303 B |
Before Width: | Height: | Size: 191 B |
Before Width: | Height: | Size: 272 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 451 B |
Before Width: | Height: | Size: 869 B |
Before Width: | Height: | Size: 478 B |
Before Width: | Height: | Size: 906 B |
Before Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 338 B |
Before Width: | Height: | Size: 277 B |
Before Width: | Height: | Size: 364 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 3.6 KiB |
@@ -35,6 +35,7 @@
|
||||
#include <QtQuick3D/private/qquick3dperspectivecamera_p.h>
|
||||
#include <QtQuick3D/private/qquick3dutils_p.h>
|
||||
#include <QtCore/qmath.h>
|
||||
#include <QtCore/qtimer.h>
|
||||
|
||||
#include <limits>
|
||||
|
||||
@@ -70,31 +71,31 @@ void CameraGeometry::setCamera(QQuick3DCamera *camera)
|
||||
m_camera = camera;
|
||||
if (auto perspectiveCamera = qobject_cast<QQuick3DPerspectiveCamera *>(m_camera)) {
|
||||
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::clipNearChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::clipFarChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::fieldOfViewChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::fieldOfViewOrientationChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
if (auto frustumCamera = qobject_cast<QQuick3DFrustumCamera *>(m_camera)) {
|
||||
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::topChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::bottomChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::rightChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::leftChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
}
|
||||
} else if (auto orthoCamera = qobject_cast<QQuick3DOrthographicCamera *>(m_camera)) {
|
||||
QObject::connect(orthoCamera, &QQuick3DOrthographicCamera::clipNearChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
QObject::connect(orthoCamera, &QQuick3DOrthographicCamera::clipFarChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
} else if (auto customCamera = qobject_cast<QQuick3DCustomCamera *>(m_camera)) {
|
||||
QObject::connect(customCamera, &QQuick3DCustomCamera::projectionChanged,
|
||||
this, &CameraGeometry::update);
|
||||
this, &CameraGeometry::handleCameraPropertyChange);
|
||||
}
|
||||
emit cameraChanged();
|
||||
update();
|
||||
@@ -110,48 +111,28 @@ void CameraGeometry::setViewPortRect(const QRectF &rect)
|
||||
update();
|
||||
}
|
||||
|
||||
void CameraGeometry::handleCameraPropertyChange()
|
||||
{
|
||||
m_cameraUpdatePending = true;
|
||||
update();
|
||||
}
|
||||
|
||||
QSSGRenderGraphObject *CameraGeometry::updateSpatialNode(QSSGRenderGraphObject *node)
|
||||
{
|
||||
if (!m_camera)
|
||||
return node;
|
||||
|
||||
// If camera properties have been updated, we need to defer updating the frustum geometry
|
||||
// to the next frame to ensure camera's spatial node has been properly updated.
|
||||
if (m_cameraUpdatePending) {
|
||||
QTimer::singleShot(0, this, &CameraGeometry::update);
|
||||
m_cameraUpdatePending = false;
|
||||
return node;
|
||||
}
|
||||
|
||||
if (!m_camera->cameraNode()) {
|
||||
#if QT_VERSION <= QT_VERSION_CHECK(5, 14, 1)
|
||||
// 5.14.1 doesn't yet have function to force camera node creation, so we must do it
|
||||
// the hard way
|
||||
auto camera = new QSSGRenderCamera();
|
||||
bool changed = false;
|
||||
if (auto perspCamera = qobject_cast<QQuick3DPerspectiveCamera *>(m_camera)) {
|
||||
changed |= qUpdateIfNeeded(camera->clipNear, perspCamera->clipNear());
|
||||
changed |= qUpdateIfNeeded(camera->clipFar, perspCamera->clipFar());
|
||||
changed |= qUpdateIfNeeded(camera->fov, qDegreesToRadians(perspCamera->fieldOfView()));
|
||||
changed |= qUpdateIfNeeded(camera->fovHorizontal, perspCamera->fieldOfViewOrientation()
|
||||
== QQuick3DCamera::FieldOfViewOrientation::Horizontal);
|
||||
changed |= qUpdateIfNeeded(camera->enableFrustumClipping, perspCamera->frustumCullingEnabled());
|
||||
if (auto frustCamera = qobject_cast<QQuick3DFrustumCamera *>(m_camera)) {
|
||||
camera->flags.setFlag(QSSGRenderNode::Flag::CameraFrustumProjection, true);
|
||||
changed |= qUpdateIfNeeded(camera->top, frustCamera->top());
|
||||
changed |= qUpdateIfNeeded(camera->bottom, frustCamera->bottom());
|
||||
changed |= qUpdateIfNeeded(camera->right, frustCamera->right());
|
||||
changed |= qUpdateIfNeeded(camera->left, frustCamera->left());
|
||||
}
|
||||
} else if (auto orthoCamera = qobject_cast<QQuick3DOrthographicCamera *>(m_camera)) {
|
||||
camera->flags.setFlag(QSSGRenderNode::Flag::Orthographic, true);
|
||||
changed |= qUpdateIfNeeded(camera->clipNear, orthoCamera->clipNear());
|
||||
changed |= qUpdateIfNeeded(camera->clipFar, orthoCamera->clipFar());
|
||||
changed |= qUpdateIfNeeded(camera->enableFrustumClipping, orthoCamera->frustumCullingEnabled());
|
||||
} else if (auto customCamera = qobject_cast<QQuick3DCustomCamera *>(m_camera)) {
|
||||
camera->flags.setFlag(QSSGRenderNode::Flag::CameraCustomProjection, true);
|
||||
changed |= qUpdateIfNeeded(camera->projection, customCamera->projection());
|
||||
changed |= qUpdateIfNeeded(camera->enableFrustumClipping, customCamera->frustumCullingEnabled());
|
||||
}
|
||||
if (changed)
|
||||
camera->flags.setFlag(QSSGRenderNode::Flag::CameraDirty);
|
||||
m_camera->setCameraNode(camera);
|
||||
#else
|
||||
// Doing explicit viewport mapping forces cameraNode creation
|
||||
m_camera->mapToViewport({}, m_viewPortRect.width(), m_viewPortRect.height());
|
||||
#endif
|
||||
}
|
||||
|
||||
node = QQuick3DGeometry::updateSpatialNode(node);
|
||||
@@ -183,7 +164,7 @@ void CameraGeometry::fillVertexData(QByteArray &vertexData, QByteArray &indexDat
|
||||
{
|
||||
const int vertexSize = int(sizeof(float)) * 8 * 3; // 8 vertices, 3 floats/vert
|
||||
vertexData.resize(vertexSize);
|
||||
const int indexSize = int(sizeof(quint16)) * 12 * 2; // 16 lines, 2 vert/line
|
||||
const int indexSize = int(sizeof(quint16)) * 12 * 2; // 12 lines, 2 vert/line
|
||||
indexData.resize(indexSize);
|
||||
|
||||
auto dataPtr = reinterpret_cast<float *>(vertexData.data());
|
||||
|
@@ -49,6 +49,7 @@ public:
|
||||
public Q_SLOTS:
|
||||
void setCamera(QQuick3DCamera *camera);
|
||||
void setViewPortRect(const QRectF &rect);
|
||||
void handleCameraPropertyChange();
|
||||
|
||||
Q_SIGNALS:
|
||||
void cameraChanged();
|
||||
@@ -62,6 +63,7 @@ private:
|
||||
QVector3D &minBounds, QVector3D &maxBounds);
|
||||
QQuick3DCamera *m_camera = nullptr;
|
||||
QRectF m_viewPortRect;
|
||||
bool m_cameraUpdatePending = false;
|
||||
};
|
||||
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
HEADERS += $$PWD/generalhelper.h \
|
||||
$$PWD/mousearea3d.h \
|
||||
$$PWD/camerageometry.h \
|
||||
$$PWD/lightgeometry.h \
|
||||
$$PWD/gridgeometry.h \
|
||||
$$PWD/selectionboxgeometry.h \
|
||||
$$PWD/linegeometry.h
|
||||
@@ -8,6 +9,7 @@ HEADERS += $$PWD/generalhelper.h \
|
||||
SOURCES += $$PWD/generalhelper.cpp \
|
||||
$$PWD/mousearea3d.cpp \
|
||||
$$PWD/camerageometry.cpp \
|
||||
$$PWD/lightgeometry.cpp \
|
||||
$$PWD/gridgeometry.cpp \
|
||||
$$PWD/selectionboxgeometry.cpp \
|
||||
$$PWD/linegeometry.cpp
|
||||
|
@@ -0,0 +1,233 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** 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 General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef QUICK3D_MODULE
|
||||
|
||||
#include "lightgeometry.h"
|
||||
|
||||
#include <QtQuick3DRuntimeRender/private/qssgrendergeometry_p.h>
|
||||
#include <QtQuick3DRuntimeRender/private/qssgrenderlight_p.h>
|
||||
#include <QtQuick3D/private/qquick3darealight_p.h>
|
||||
#include <QtQuick3D/private/qquick3ddirectionallight_p.h>
|
||||
#include <QtQuick3D/private/qquick3dpointlight_p.h>
|
||||
#include <QtQuick3D/private/qquick3dspotlight_p.h>
|
||||
#include <QtCore/qmath.h>
|
||||
|
||||
#include <limits>
|
||||
|
||||
namespace QmlDesigner {
|
||||
namespace Internal {
|
||||
|
||||
LightGeometry::LightGeometry()
|
||||
: QQuick3DGeometry()
|
||||
{
|
||||
}
|
||||
|
||||
LightGeometry::~LightGeometry()
|
||||
{
|
||||
}
|
||||
|
||||
QQuick3DAbstractLight *QmlDesigner::Internal::LightGeometry::light() const
|
||||
{
|
||||
return m_light;
|
||||
}
|
||||
|
||||
void QmlDesigner::Internal::LightGeometry::setLight(QQuick3DAbstractLight *light)
|
||||
{
|
||||
if (m_light == light)
|
||||
return;
|
||||
|
||||
m_light = light;
|
||||
|
||||
emit lightChanged();
|
||||
update();
|
||||
}
|
||||
|
||||
QSSGRenderGraphObject *LightGeometry::updateSpatialNode(QSSGRenderGraphObject *node)
|
||||
{
|
||||
if (!m_light)
|
||||
return node;
|
||||
|
||||
node = QQuick3DGeometry::updateSpatialNode(node);
|
||||
QSSGRenderGeometry *geometry = static_cast<QSSGRenderGeometry *>(node);
|
||||
|
||||
geometry->clear();
|
||||
|
||||
QByteArray vertexData;
|
||||
QByteArray indexData;
|
||||
QVector3D minBounds;
|
||||
QVector3D maxBounds;
|
||||
fillVertexData(vertexData, indexData, minBounds, maxBounds);
|
||||
|
||||
geometry->addAttribute(QSSGRenderGeometry::Attribute::PositionSemantic, 0,
|
||||
QSSGRenderGeometry::Attribute::ComponentType::F32Type);
|
||||
geometry->addAttribute(QSSGRenderGeometry::Attribute::IndexSemantic, 0,
|
||||
QSSGRenderGeometry::Attribute::ComponentType::U16Type);
|
||||
geometry->setStride(12);
|
||||
geometry->setVertexData(vertexData);
|
||||
geometry->setIndexData(indexData);
|
||||
geometry->setPrimitiveType(QSSGRenderGeometry::Lines);
|
||||
geometry->setBounds(minBounds, maxBounds);
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
void LightGeometry::fillVertexData(QByteArray &vertexData, QByteArray &indexData,
|
||||
QVector3D &minBounds, QVector3D &maxBounds)
|
||||
{
|
||||
int vertexSize = 0;
|
||||
int indexSize = 0;
|
||||
const int dirSegments = 12;
|
||||
const int pointLightDensity = 5;
|
||||
|
||||
if (qobject_cast<QQuick3DAreaLight *>(m_light)) {
|
||||
// Area light model is a rectangle with perpendicular lines on corners
|
||||
vertexSize = int(sizeof(float)) * 3 * 8;
|
||||
indexSize = int(sizeof(quint16)) * 8 * 2;
|
||||
} else if (qobject_cast<QQuick3DDirectionalLight *>(m_light)) {
|
||||
// Directional light model is a circle with perpendicular lines on circumference vertices
|
||||
vertexSize = int(sizeof(float)) * 3 * dirSegments * 2;
|
||||
indexSize = int(sizeof(quint16)) * dirSegments * 2 * 2;
|
||||
} else if (qobject_cast<QQuick3DPointLight *>(m_light)) {
|
||||
// Point light model is a set of lines radiating from central point.
|
||||
// We reserve more than we need so we don't have to calculate the actual need here,
|
||||
// and resize later when we know the exact count.
|
||||
vertexSize = int(sizeof(float)) * 3 * pointLightDensity * pointLightDensity * 4;
|
||||
indexSize = int(sizeof(quint16)) * pointLightDensity * pointLightDensity * 4;
|
||||
} else if (qobject_cast<QQuick3DSpotLight *>(m_light)) {
|
||||
// TODO: Spot light model, for now use area light model
|
||||
vertexSize = int(sizeof(float)) * 3 * dirSegments * 2;
|
||||
indexSize = int(sizeof(quint16)) * dirSegments * 2 * 2;
|
||||
}
|
||||
vertexData.resize(vertexSize);
|
||||
indexData.resize(indexSize);
|
||||
|
||||
auto dataPtr = reinterpret_cast<float *>(vertexData.data());
|
||||
auto indexPtr = reinterpret_cast<quint16 *>(indexData.data());
|
||||
|
||||
if (qobject_cast<QQuick3DAreaLight *>(m_light)) {
|
||||
*dataPtr++ = -1.f; *dataPtr++ = 1.f; *dataPtr++ = 0.f;
|
||||
*dataPtr++ = -1.f; *dataPtr++ = -1.f; *dataPtr++ = 0.f;
|
||||
*dataPtr++ = 1.f; *dataPtr++ = -1.f; *dataPtr++ = 0.f;
|
||||
*dataPtr++ = 1.f; *dataPtr++ = 1.f; *dataPtr++ = 0.f;
|
||||
|
||||
*dataPtr++ = -1.f; *dataPtr++ = 1.f; *dataPtr++ = -1.f;
|
||||
*dataPtr++ = -1.f; *dataPtr++ = -1.f; *dataPtr++ = -1.f;
|
||||
*dataPtr++ = 1.f; *dataPtr++ = -1.f; *dataPtr++ = -1.f;
|
||||
*dataPtr++ = 1.f; *dataPtr++ = 1.f; *dataPtr++ = -1.f;
|
||||
|
||||
*indexPtr++ = 0; *indexPtr++ = 1;
|
||||
*indexPtr++ = 1; *indexPtr++ = 2;
|
||||
*indexPtr++ = 2; *indexPtr++ = 3;
|
||||
*indexPtr++ = 3; *indexPtr++ = 0;
|
||||
|
||||
*indexPtr++ = 0; *indexPtr++ = 4;
|
||||
*indexPtr++ = 1; *indexPtr++ = 5;
|
||||
*indexPtr++ = 2; *indexPtr++ = 6;
|
||||
*indexPtr++ = 3; *indexPtr++ = 7;
|
||||
} else if (qobject_cast<QQuick3DDirectionalLight *>(m_light)) {
|
||||
const double segment = M_PI * 2. / double(dirSegments);
|
||||
for (quint16 i = 0; i < dirSegments; ++i) {
|
||||
float x = float(qCos(i * segment));
|
||||
float y = float(qSin(i * segment));
|
||||
*dataPtr++ = x; *dataPtr++ = y; *dataPtr++ = 0.f;
|
||||
*dataPtr++ = x; *dataPtr++ = y; *dataPtr++ = -1.f;
|
||||
const quint16 base = i * 2;
|
||||
*indexPtr++ = base; *indexPtr++ = base + 1;
|
||||
*indexPtr++ = base; *indexPtr++ = base + 2;
|
||||
}
|
||||
// Adjust the final index to complete the circle
|
||||
*(--indexPtr) = 0;
|
||||
} else if (qobject_cast<QQuick3DPointLight *>(m_light)) {
|
||||
const double innerRad = .3;
|
||||
vertexSize = 0;
|
||||
indexSize = 0;
|
||||
int vertexIndex = 0;
|
||||
for (quint16 i = 0; i < pointLightDensity; ++i) {
|
||||
double latAngle = (((.9 / (pointLightDensity - 1)) * i) + .05) * M_PI;
|
||||
quint16 longPoints = pointLightDensity * 2 * qSin(latAngle);
|
||||
latAngle -= M_PI_2;
|
||||
const double longSegment = M_PI * 2. / double(longPoints);
|
||||
for (quint16 j = 0; j < longPoints; ++j) {
|
||||
double longAngle = longSegment * j;
|
||||
float q = float(qCos(latAngle));
|
||||
float x = float(qCos(longAngle) * q);
|
||||
float y = float(qSin(latAngle));
|
||||
float z = float(qSin(longAngle) * q);
|
||||
|
||||
*dataPtr++ = x * innerRad; *dataPtr++ = y * innerRad; *dataPtr++ = z * innerRad;
|
||||
*dataPtr++ = x; *dataPtr++ = y; *dataPtr++ = z;
|
||||
*indexPtr++ = vertexIndex; *indexPtr++ = vertexIndex + 1;
|
||||
|
||||
vertexIndex += 2;
|
||||
vertexSize += 6 * sizeof(float);
|
||||
indexSize += 2 * sizeof(quint16);
|
||||
}
|
||||
}
|
||||
vertexData.resize(vertexSize);
|
||||
indexData.resize(indexSize);
|
||||
} else if (qobject_cast<QQuick3DSpotLight *>(m_light)) {
|
||||
// TODO: Spot light model, for now use area light model
|
||||
*dataPtr++ = -1.f; *dataPtr++ = 1.f; *dataPtr++ = 0.f;
|
||||
*dataPtr++ = -1.f; *dataPtr++ = -1.f; *dataPtr++ = 0.f;
|
||||
*dataPtr++ = 1.f; *dataPtr++ = -1.f; *dataPtr++ = 0.f;
|
||||
*dataPtr++ = 1.f; *dataPtr++ = 1.f; *dataPtr++ = 0.f;
|
||||
|
||||
*dataPtr++ = -1.f; *dataPtr++ = 1.f; *dataPtr++ = -1.f;
|
||||
*dataPtr++ = -1.f; *dataPtr++ = -1.f; *dataPtr++ = -1.f;
|
||||
*dataPtr++ = 1.f; *dataPtr++ = -1.f; *dataPtr++ = -1.f;
|
||||
*dataPtr++ = 1.f; *dataPtr++ = 1.f; *dataPtr++ = -1.f;
|
||||
|
||||
*indexPtr++ = 0; *indexPtr++ = 1;
|
||||
*indexPtr++ = 1; *indexPtr++ = 2;
|
||||
*indexPtr++ = 2; *indexPtr++ = 3;
|
||||
*indexPtr++ = 3; *indexPtr++ = 0;
|
||||
|
||||
*indexPtr++ = 0; *indexPtr++ = 4;
|
||||
*indexPtr++ = 1; *indexPtr++ = 5;
|
||||
*indexPtr++ = 2; *indexPtr++ = 6;
|
||||
*indexPtr++ = 3; *indexPtr++ = 7;
|
||||
}
|
||||
|
||||
static const float floatMin = std::numeric_limits<float>::lowest();
|
||||
static const float floatMax = std::numeric_limits<float>::max();
|
||||
auto vertexPtr = reinterpret_cast<QVector3D *>(vertexData.data());
|
||||
minBounds = QVector3D(floatMax, floatMax, floatMax);
|
||||
maxBounds = QVector3D(floatMin, floatMin, floatMin);
|
||||
for (int i = 0; i < vertexSize / 12; ++i) {
|
||||
minBounds[0] = qMin((*vertexPtr)[0], minBounds[0]);
|
||||
minBounds[1] = qMin((*vertexPtr)[1], minBounds[1]);
|
||||
minBounds[2] = qMin((*vertexPtr)[2], minBounds[2]);
|
||||
maxBounds[0] = qMax((*vertexPtr)[0], maxBounds[0]);
|
||||
maxBounds[1] = qMax((*vertexPtr)[1], maxBounds[1]);
|
||||
maxBounds[2] = qMax((*vertexPtr)[2], maxBounds[2]);
|
||||
++vertexPtr;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // QUICK3D_MODULE
|
@@ -0,0 +1,67 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** 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 General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef QUICK3D_MODULE
|
||||
|
||||
#include <QtQuick3D/private/qquick3dgeometry_p.h>
|
||||
#include <QtQuick3D/private/qquick3dabstractlight_p.h>
|
||||
|
||||
namespace QmlDesigner {
|
||||
namespace Internal {
|
||||
|
||||
class LightGeometry : public QQuick3DGeometry
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QQuick3DAbstractLight *light READ light WRITE setLight NOTIFY lightChanged)
|
||||
|
||||
public:
|
||||
LightGeometry();
|
||||
~LightGeometry() override;
|
||||
|
||||
QQuick3DAbstractLight *light() const;
|
||||
|
||||
public Q_SLOTS:
|
||||
void setLight(QQuick3DAbstractLight *light);
|
||||
|
||||
Q_SIGNALS:
|
||||
void lightChanged();
|
||||
|
||||
protected:
|
||||
QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node) override;
|
||||
|
||||
private:
|
||||
void fillVertexData(QByteArray &vertexData, QByteArray &indexData,
|
||||
QVector3D &minBounds, QVector3D &maxBounds);
|
||||
QQuick3DAbstractLight *m_light = nullptr;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
QML_DECLARE_TYPE(QmlDesigner::Internal::LightGeometry)
|
||||
|
||||
#endif // QUICK3D_MODULE
|
@@ -67,6 +67,7 @@
|
||||
#include "../editor3d/generalhelper.h"
|
||||
#include "../editor3d/mousearea3d.h"
|
||||
#include "../editor3d/camerageometry.h"
|
||||
#include "../editor3d/lightgeometry.h"
|
||||
#include "../editor3d/gridgeometry.h"
|
||||
#include "../editor3d/selectionboxgeometry.h"
|
||||
#include "../editor3d/linegeometry.h"
|
||||
@@ -104,6 +105,7 @@ void Qt5InformationNodeInstanceServer::createEditView3D()
|
||||
qmlRegisterRevision<QQuick3DNode, 1>("MouseArea3D", 1, 0);
|
||||
qmlRegisterType<QmlDesigner::Internal::MouseArea3D>("MouseArea3D", 1, 0, "MouseArea3D");
|
||||
qmlRegisterType<QmlDesigner::Internal::CameraGeometry>("CameraGeometry", 1, 0, "CameraGeometry");
|
||||
qmlRegisterType<QmlDesigner::Internal::LightGeometry>("LightGeometry", 1, 0, "LightGeometry");
|
||||
qmlRegisterType<QmlDesigner::Internal::GridGeometry>("GridGeometry", 1, 0, "GridGeometry");
|
||||
qmlRegisterType<QmlDesigner::Internal::SelectionBoxGeometry>("SelectionBoxGeometry", 1, 0, "SelectionBoxGeometry");
|
||||
qmlRegisterType<QmlDesigner::Internal::LineGeometry>("LineGeometry", 1, 0, "LineGeometry");
|
||||
|
@@ -14,6 +14,7 @@
|
||||
<file>mockfiles/MoveGizmo.qml</file>
|
||||
<file>mockfiles/CameraFrustum.qml</file>
|
||||
<file>mockfiles/CameraGizmo.qml</file>
|
||||
<file>mockfiles/LightModel.qml</file>
|
||||
<file>mockfiles/LightGizmo.qml</file>
|
||||
<file>mockfiles/IconGizmo.qml</file>
|
||||
<file>mockfiles/Overlay2D.qml</file>
|
||||
@@ -40,49 +41,13 @@
|
||||
<file>mockfiles/meshes/axishelper.mesh</file>
|
||||
<file>mockfiles/images/editor_camera.png</file>
|
||||
<file>mockfiles/images/editor_camera@2x.png</file>
|
||||
<file>mockfiles/images/light-pick-icon.png</file>
|
||||
<file>mockfiles/images/light-pick-icon@2x.png</file>
|
||||
<file>mockfiles/images/item_selection_active.png</file>
|
||||
<file>mockfiles/images/item_selection_active@2x.png</file>
|
||||
<file>mockfiles/images/item_selection_selected.png</file>
|
||||
<file>mockfiles/images/item_selection_selected@2x.png</file>
|
||||
<file>mockfiles/images/group_selection_selected.png</file>
|
||||
<file>mockfiles/images/group_selection_selected@2x.png</file>
|
||||
<file>mockfiles/images/group_selection_active.png</file>
|
||||
<file>mockfiles/images/group_selection_active@2x.png</file>
|
||||
<file>mockfiles/images/move_active.png</file>
|
||||
<file>mockfiles/images/move_active@2x.png</file>
|
||||
<file>mockfiles/images/move_selected.png</file>
|
||||
<file>mockfiles/images/move_selected@2x.png</file>
|
||||
<file>mockfiles/images/rotate_active.png</file>
|
||||
<file>mockfiles/images/rotate_active@2x.png</file>
|
||||
<file>mockfiles/images/rotate_selected.png</file>
|
||||
<file>mockfiles/images/rotate_selected@2x.png</file>
|
||||
<file>mockfiles/images/scale_active.png</file>
|
||||
<file>mockfiles/images/scale_active@2x.png</file>
|
||||
<file>mockfiles/images/scale_selected.png</file>
|
||||
<file>mockfiles/images/scale_selected@2x.png</file>
|
||||
<file>mockfiles/images/directional_light_gradient.png</file>
|
||||
<file>mockfiles/images/directional_light_gradient@2x.png</file>
|
||||
<file>mockfiles/images/point_light_gradient.png</file>
|
||||
<file>mockfiles/images/point_light_gradient@2x.png</file>
|
||||
<file>mockfiles/images/area_light_gradient.png</file>
|
||||
<file>mockfiles/images/area_light_gradient@2x.png</file>
|
||||
<file>mockfiles/images/fit_active.png</file>
|
||||
<file>mockfiles/images/fit_active@2x.png</file>
|
||||
<file>mockfiles/images/fit_selected.png</file>
|
||||
<file>mockfiles/images/fit_selected@2x.png</file>
|
||||
<file>mockfiles/images/local.png</file>
|
||||
<file>mockfiles/images/local@2x.png</file>
|
||||
<file>mockfiles/images/global.png</file>
|
||||
<file>mockfiles/images/global@2x.png</file>
|
||||
<file>mockfiles/images/ortho.png</file>
|
||||
<file>mockfiles/images/ortho@2x.png</file>
|
||||
<file>mockfiles/images/persp.png</file>
|
||||
<file>mockfiles/images/persp@2x.png</file>
|
||||
<file>mockfiles/images/edit_light_off.png</file>
|
||||
<file>mockfiles/images/edit_light_off@2x.png</file>
|
||||
<file>mockfiles/images/edit_light_on.png</file>
|
||||
<file>mockfiles/images/edit_light_on@2x.png</file>
|
||||
<file>mockfiles/images/spot_light_gradient.png</file>
|
||||
<file>mockfiles/images/spot_light_gradient@2x.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|