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 `Go to Last Edit`
|
||||||
* Added option for default line terminator style (QTCREATORBUG-3590)
|
* 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 wizards ignored default file encoding
|
||||||
* Fixed that only restricted number of sizes were allowed for font size (QTCREATORBUG-22536)
|
* Fixed that only restricted number of sizes were allowed for font size (QTCREATORBUG-22536)
|
||||||
* Fixed completion after undo (QTCREATORBUG-15038)
|
* Fixed completion after undo (QTCREATORBUG-15038)
|
||||||
|
|
||||||
|
### C++
|
||||||
|
|
||||||
|
* Fixed issue with Clang and precompiled headers (QTCREATORBUG-22897)
|
||||||
|
|
||||||
### Language Client
|
### Language Client
|
||||||
|
|
||||||
* Added support for Markdown in tooltips
|
* Added support for Markdown in tooltips
|
||||||
@@ -49,6 +54,7 @@ Editing
|
|||||||
|
|
||||||
### QML
|
### QML
|
||||||
|
|
||||||
|
* Updated to Qt 5.15 parser (QTCREATORBUG-23591)
|
||||||
* Improved support for multiple imports into same namespace (QTCREATORBUG-15684)
|
* Improved support for multiple imports into same namespace (QTCREATORBUG-15684)
|
||||||
* Added scanning of `app.qmltypes` and `lib.qmltypes` for type information
|
* 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 option to start interactive rebase from log view (QTCREATORBUG-11200)
|
||||||
* Added information about upstream status to `Git Branches` view
|
* Added information about upstream status to `Git Branches` view
|
||||||
* Added option to `grep` and `pickaxe` git log (QTCREATORBUG-22512)
|
* 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
|
Test Integration
|
||||||
----------------
|
----------------
|
||||||
@@ -181,6 +187,9 @@ Platforms
|
|||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
|
* Improved behavior with regard to MSVC tool chain matching and compatibility of MSVC 2017 and
|
||||||
|
MSVC 2019 (QTCREATORBUG-23653)
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
|
|
||||||
* Fixed parsing of Apple Clang specific linker message (QTCREATORBUG-19766)
|
* Fixed parsing of Apple Clang specific linker message (QTCREATORBUG-19766)
|
||||||
@@ -191,9 +200,11 @@ Platforms
|
|||||||
|
|
||||||
* Added auto-detection of Java JDK (QTCREATORBUG-23407)
|
* Added auto-detection of Java JDK (QTCREATORBUG-23407)
|
||||||
* Added option to automatically download and install required Android tools (QTCREATORBUG-23285)
|
* 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 automatic selection of correct NDK for Qt version (QTCREATORBUG-23583)
|
||||||
* Added support for Android 11 with API level 30
|
* Added support for Android 11 with API level 30
|
||||||
* Improved examples browser to only show items tagged with `android` (QTBUG-80716)
|
* 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)
|
* Fixed several issues with AVD manager (QTCREATORBUG-23284, QTCREATORBUG-23448)
|
||||||
|
|
||||||
### iOS
|
### iOS
|
||||||
@@ -213,12 +224,14 @@ Platforms
|
|||||||
|
|
||||||
Credits for these changes go to:
|
Credits for these changes go to:
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
Aleksei German
|
||||||
Alessandro Portale
|
Alessandro Portale
|
||||||
Alexandru Croitor
|
Alexandru Croitor
|
||||||
Andre Hartmann
|
Andre Hartmann
|
||||||
Andrey Sobol
|
Andrey Sobol
|
||||||
André Pönitz
|
André Pönitz
|
||||||
Assam Boudjelthia
|
Assam Boudjelthia
|
||||||
|
BogDan Vatra
|
||||||
Camila San
|
Camila San
|
||||||
Christian Kandeler
|
Christian Kandeler
|
||||||
Christian Stenger
|
Christian Stenger
|
||||||
@@ -227,13 +240,16 @@ David Schulz
|
|||||||
Denis Shienkov
|
Denis Shienkov
|
||||||
Dmitry Kovalev
|
Dmitry Kovalev
|
||||||
Eike Ziller
|
Eike Ziller
|
||||||
|
Fawzi Mohamed
|
||||||
Federico Guerinoni
|
Federico Guerinoni
|
||||||
Filippo Cucchetto
|
Filippo Cucchetto
|
||||||
Halfdan Ingvarsson
|
Halfdan Ingvarsson
|
||||||
Hannes Domani
|
Hannes Domani
|
||||||
|
Henning Gruendl
|
||||||
Igor Sidorov
|
Igor Sidorov
|
||||||
Jaroslaw Kobus
|
Jaroslaw Kobus
|
||||||
Jochen Becher
|
Jochen Becher
|
||||||
|
Kai Köhne
|
||||||
Knud Dollereder
|
Knud Dollereder
|
||||||
Leander Schulten
|
Leander Schulten
|
||||||
Leena Miettinen
|
Leena Miettinen
|
||||||
@@ -260,6 +276,7 @@ Tim Jenssen
|
|||||||
Tobias Hunger
|
Tobias Hunger
|
||||||
Topi Reinio
|
Topi Reinio
|
||||||
Ulf Hermann
|
Ulf Hermann
|
||||||
|
Vikas Pachdha
|
||||||
Ville Voutilainen
|
Ville Voutilainen
|
||||||
Volodymyr Samokhatko
|
Volodymyr Samokhatko
|
||||||
zarelaky
|
zarelaky
|
||||||
|
@@ -3,8 +3,11 @@ description = "$IDE_DISPLAY_NAME Manual"
|
|||||||
url = http://doc.qt.io/$IDE_ID
|
url = http://doc.qt.io/$IDE_ID
|
||||||
|
|
||||||
headerdirs =
|
headerdirs =
|
||||||
sourcedirs = ../src
|
sourcedirs = ../src \
|
||||||
|
../../qtdesignstudio/src/qtquick3d-editor
|
||||||
|
|
||||||
imagedirs = ../images \
|
imagedirs = ../images \
|
||||||
|
../../qtdesignstudio/images \
|
||||||
../../../src/libs/qmleditorwidgets/images \
|
../../../src/libs/qmleditorwidgets/images \
|
||||||
../../../src/libs/utils/images \
|
../../../src/libs/utils/images \
|
||||||
../../../src/plugins/android/images \
|
../../../src/plugins/android/images \
|
||||||
@@ -16,6 +19,7 @@ imagedirs = ../images \
|
|||||||
../../../src/plugins/help/images \
|
../../../src/plugins/help/images \
|
||||||
../../../src/plugins/projectexplorer/images \
|
../../../src/plugins/projectexplorer/images \
|
||||||
../../../src/plugins/qmldesigner/components/componentcore/images \
|
../../../src/plugins/qmldesigner/components/componentcore/images \
|
||||||
|
../../../src/plugins/qmldesigner/components/edit3d/images \
|
||||||
../../../src/plugins/qmldesigner/components/formeditor \
|
../../../src/plugins/qmldesigner/components/formeditor \
|
||||||
../../../src/plugins/qmldesigner/components/navigator \
|
../../../src/plugins/qmldesigner/components/navigator \
|
||||||
../../../src/plugins/qmldesigner/components/timelineeditor/images \
|
../../../src/plugins/qmldesigner/components/timelineeditor/images \
|
||||||
@@ -35,12 +39,15 @@ depends += qtwidgets \
|
|||||||
qtcmake \
|
qtcmake \
|
||||||
qtcore \
|
qtcore \
|
||||||
qtqml \
|
qtqml \
|
||||||
|
qtqmlmodels \
|
||||||
qtquick \
|
qtquick \
|
||||||
qmake \
|
qmake \
|
||||||
qtdesigner \
|
qtdesigner \
|
||||||
qtdoc \
|
qtdoc \
|
||||||
|
qtgraphicaleffects \
|
||||||
qtgui \
|
qtgui \
|
||||||
qthelp \
|
qthelp \
|
||||||
|
qtquick3d \
|
||||||
qtquickcontrols \
|
qtquickcontrols \
|
||||||
qtquickextras \
|
qtquickextras \
|
||||||
qtquicktimeline \
|
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
|
\title Managing Workspaces
|
||||||
|
|
||||||
In the Design and Debug modes, you can arrange a set of \QC
|
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,
|
views as a \e workspace on the screen.
|
||||||
select \uicontrol Window > \uicontrol Views.
|
|
||||||
|
|
||||||
In \QMLD, you can select the \uicontrol {Restore last workspace on startup}
|
To detach views:
|
||||||
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 manage workspaces, select \uicontrol Window > \uicontrol Workspaces >
|
\list
|
||||||
\uicontrol Manage.
|
\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"
|
\image qtcreator-workspace-manager.png "Workspace Manager"
|
||||||
|
|
||||||
To save a workspace under a new name, select \uicontrol Clone.
|
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}.
|
To switch between workspaces, select \uicontrol {Switch To}.
|
||||||
|
|
||||||
@@ -61,4 +82,5 @@
|
|||||||
switch to it.
|
switch to it.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
To delete the selected workspace, select \uicontrol Delete.
|
||||||
*/
|
*/
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Creator}
|
\contentspage index.html
|
||||||
\page qtcreator-toc.html
|
\page qtcreator-toc.html
|
||||||
|
|
||||||
\title All Topics
|
\title All Topics
|
||||||
@@ -91,25 +91,55 @@
|
|||||||
\list
|
\list
|
||||||
\li \l {Creating Qt Quick Projects}
|
\li \l {Creating Qt Quick Projects}
|
||||||
\li \l {Editing QML Files in Design Mode}
|
\li \l {Editing QML Files in Design Mode}
|
||||||
\li \l {Creating Components}
|
\li \l {Creating UIs}
|
||||||
\list
|
\list
|
||||||
\li \l {Creating Buttons}
|
\li \l {Creating Components}
|
||||||
\li \l {Creating Scalable Buttons and Borders}
|
\list
|
||||||
|
\li \l{Creating Buttons}
|
||||||
|
\li \l{Creating Scalable Buttons and Borders}
|
||||||
|
\endlist
|
||||||
|
\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}
|
||||||
|
\li \l{Adding Bindings Between Properties}
|
||||||
|
\li \l{Managing C++ Backend Objects}
|
||||||
|
\endlist
|
||||||
|
\li \l {Adding States}
|
||||||
|
\li \l {Editing PathView Properties}
|
||||||
\endlist
|
\endlist
|
||||||
\li \l {Managing Item Hierarchy}
|
\li \l{Editing 3D Scenes}
|
||||||
\li \l {Specifying Item Properties}
|
\list
|
||||||
\li \l {Creating Animations}
|
\li \l {Exporting 3D Assets}
|
||||||
\li \l {Adding Connections}
|
\list
|
||||||
\list
|
\li \l{Exporting from Blender}{Blender}
|
||||||
\li \l{Connecting Objects to Signals}
|
\li \l{Exporting from Maya}{Maya}
|
||||||
\li \l{Specifying Dynamic Properties}
|
\endlist
|
||||||
\li \l{Adding Bindings Between Properties}
|
\li \l{Importing 3D Assets}
|
||||||
\li \l{Managing C++ Backend Objects}
|
\li \l{Editing 3D Assets in Design Mode}
|
||||||
\endlist
|
\li \l{Working in the 3D Editor}
|
||||||
\li \l {Adding States}
|
\li \l{Adding 3D Views}
|
||||||
\li \l {Editing PathView Properties}
|
\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 {Browsing ISO 7000 Icons}
|
||||||
\li \l {Qt Quick UI Forms}
|
|
||||||
\li \l {Using QML Modules with Plugins}
|
\li \l {Using QML Modules with Plugins}
|
||||||
\li \l {Converting UI Projects to Applications}
|
\li \l {Converting UI Projects to Applications}
|
||||||
\endlist
|
\endlist
|
||||||
|
@@ -33,40 +33,13 @@
|
|||||||
|
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\page creator-visual-editor.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
|
\previouspage creator-design-mode.html
|
||||||
\nextpage quick-projects.html
|
\nextpage quick-projects.html
|
||||||
\endif
|
|
||||||
|
|
||||||
\title Developing Qt Quick Applications
|
\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
|
\list
|
||||||
|
|
||||||
\if defined(qtcreator)
|
|
||||||
\li \l {Creating Qt Quick Projects}
|
\li \l {Creating Qt Quick Projects}
|
||||||
|
|
||||||
You can use wizards to create 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
|
You can use the \uicontrol {Form Editor} or the
|
||||||
\uicontrol {Text Editor} in the Design mode to
|
\uicontrol {Text Editor} in the Design mode to
|
||||||
develop Qt Quick applications.
|
develop Qt Quick applications.
|
||||||
\endif
|
|
||||||
|
|
||||||
\li \l {Creating Components}
|
\li \l {Creating UIs}
|
||||||
|
|
||||||
In addition to your imported artwork, you can use the Design
|
Qt Quick enables you to build UIs around the behavior of
|
||||||
mode to customize ready-made components or design any custom form
|
\e components and how they connect with one another. You
|
||||||
and shape directly as QML types. You can import visual assets in
|
create components using Qt Quick and QML types that are
|
||||||
various formats, such as PNG, JPG, and SVG for use in the
|
available in the Design mode, manage their relationships,
|
||||||
components.
|
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
|
You can animate the properties of UI components and create
|
||||||
relationships in the \uicontrol Navigator.
|
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
|
You can use the 3D editor in the Design mode to edit files you
|
||||||
its appearance and behavior. All QML types have a set of predefined
|
created using 3D graphics applications and stored in one of the
|
||||||
properties. Some properties, such as position, size, and visibility,
|
supported formats. You cannot create 3D models or other assets
|
||||||
are common to all QML types, whereas others are specific to the QML
|
in the editor, but you can import the assets you need and work
|
||||||
type. You can specify properties for your components in the
|
with them to create scenes and states, as well as the
|
||||||
\uicontrol Properties view.
|
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
|
\endlist
|
||||||
|
|
||||||
\section1 Related Topics
|
\section1 Related Topics
|
||||||
|
|
||||||
\list
|
\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}
|
\li \l {Browsing ISO 7000 Icons}
|
||||||
|
|
||||||
You can add ISO 7000 icons from a library delivered with \QC to
|
You can add ISO 7000 icons from a library delivered with \QC to
|
||||||
UIs and change their color.
|
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}
|
\li \l {Using QML Modules with Plugins}
|
||||||
|
|
||||||
QML modules may use plugins to expose components defined in C++ to
|
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
|
interfaces. To use them for application development, you have to
|
||||||
convert them to Qt Quick Application projects that contain .pro,
|
convert them to Qt Quick Application projects that contain .pro,
|
||||||
.cpp, and .qrc files.
|
.cpp, and .qrc files.
|
||||||
\endif
|
|
||||||
|
|
||||||
\endlist
|
\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/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -26,8 +26,8 @@
|
|||||||
/*!
|
/*!
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\page qtquick-iso-icon-browser.html
|
\page qtquick-iso-icon-browser.html
|
||||||
\previouspage qmldesigner-pathview-editor.html
|
\previouspage studio-3d-scene-environment.html
|
||||||
\nextpage creator-quick-ui-forms.html
|
\nextpage creator-qml-modules-with-plugins.html
|
||||||
|
|
||||||
\title Browsing ISO 7000 Icons
|
\title Browsing ISO 7000 Icons
|
||||||
|
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Creator}
|
\contentspage index.html
|
||||||
\previouspage creator-live-preview-devices.html
|
\previouspage creator-live-preview-devices.html
|
||||||
\page qt-design-viewer.html
|
\page qt-design-viewer.html
|
||||||
\if defined(qtdesignstudio)
|
\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/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Design Studio documentation.
|
** This file is part of the Qt Design Studio documentation.
|
||||||
@@ -24,9 +24,9 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Design Studio Manual}
|
\contentspage index.html
|
||||||
\page studio-adding-dynamics.html
|
\page qtquick-adding-dynamics.html
|
||||||
\previouspage studio-fonts.html
|
\previouspage qtquick-fonts.html
|
||||||
\nextpage studio-timeline.html
|
\nextpage studio-timeline.html
|
||||||
|
|
||||||
\title Adding Dynamics
|
\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/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -24,8 +24,8 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Creator Manual}
|
\contentspage index.html
|
||||||
\previouspage qmldesigner-connections.html
|
\previouspage quick-signals.html
|
||||||
\page quick-dynamic-properties.html
|
\page quick-dynamic-properties.html
|
||||||
\nextpage quick-property-bindings.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/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\previouspage quick-states.html
|
\previouspage studio-timeline.html
|
||||||
\page qmldesigner-connections.html
|
\page qmldesigner-connections.html
|
||||||
\nextpage quick-signals.html
|
\nextpage quick-signals.html
|
||||||
|
|
||||||
|
@@ -37,7 +37,7 @@
|
|||||||
\nextpage {Tutorials}
|
\nextpage {Tutorials}
|
||||||
\else
|
\else
|
||||||
\previouspage quick-projects.html
|
\previouspage quick-projects.html
|
||||||
\nextpage quick-components.html
|
\nextpage quick-uis.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\title Editing QML Files in Design Mode
|
\title Editing QML Files in Design Mode
|
||||||
|
@@ -25,10 +25,10 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\previouspage qtquick-properties.html
|
\previouspage qtquick-properties.html
|
||||||
\page studio-fonts.html
|
\page qtquick-fonts.html
|
||||||
\nextpage studio-adding-dynamics.html
|
\nextpage qtquick-annotations.html
|
||||||
|
|
||||||
\title Using Custom Fonts
|
\title Using Custom Fonts
|
||||||
|
|
@@ -28,7 +28,7 @@
|
|||||||
\page quick-converting-ui-projects.html
|
\page quick-converting-ui-projects.html
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\previouspage studio-importing-designs.html
|
\previouspage studio-importing-designs.html
|
||||||
\nextpage studio-prototyping.html
|
\nextpage quick-uis.html
|
||||||
\else
|
\else
|
||||||
\previouspage creator-qml-modules-with-plugins.html
|
\previouspage creator-qml-modules-with-plugins.html
|
||||||
\nextpage creator-using-qt-designer.html
|
\nextpage creator-using-qt-designer.html
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Creator}
|
\contentspage index.html
|
||||||
\previouspage creator-live-preview.html
|
\previouspage creator-live-preview.html
|
||||||
\page creator-live-preview-desktop.html
|
\page creator-live-preview-desktop.html
|
||||||
\nextpage creator-live-preview-devices.html
|
\nextpage creator-live-preview-devices.html
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Creator}
|
\contentspage index.html
|
||||||
\previouspage creator-live-preview-desktop.html
|
\previouspage creator-live-preview-desktop.html
|
||||||
\page creator-live-preview-devices.html
|
\page creator-live-preview-devices.html
|
||||||
\nextpage qt-design-viewer.html
|
\nextpage qt-design-viewer.html
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Creator}
|
\contentspage index.html
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\previouspage studio-3d-camera.html
|
\previouspage studio-3d-camera.html
|
||||||
\else
|
\else
|
||||||
|
@@ -27,11 +27,7 @@
|
|||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\page qmldesigner-pathview-editor.html
|
\page qmldesigner-pathview-editor.html
|
||||||
\previouspage quick-states.html
|
\previouspage quick-states.html
|
||||||
\if defined(qtdesignstudio)
|
|
||||||
\nextpage studio-3d.html
|
\nextpage studio-3d.html
|
||||||
\else
|
|
||||||
\nextpage qtquick-iso-icon-browser.html
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\title Editing PathView Properties
|
\title Editing PathView Properties
|
||||||
|
|
||||||
|
@@ -24,14 +24,10 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Creator Manual}
|
\contentspage index.html
|
||||||
\page qtquick-properties.html
|
\page qtquick-properties.html
|
||||||
\previouspage qtquick-navigator.html
|
\previouspage qtquick-navigator.html
|
||||||
\if defined(qtdesignstudio)
|
\nextpage qtquick-fonts.html
|
||||||
\nextpage studio-fonts.html
|
|
||||||
\else
|
|
||||||
\nextpage studio-timeline.html
|
|
||||||
\endif
|
|
||||||
|
|
||||||
\title Specifying Item Properties
|
\title Specifying Item Properties
|
||||||
|
|
||||||
|
@@ -25,11 +25,7 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Design Studio Manual}
|
\contentspage {Qt Design Studio Manual}
|
||||||
\if defined(qtdesignstudio)
|
\previouspage qtquick-adding-dynamics.html
|
||||||
\previouspage studio-adding-dynamics.html
|
|
||||||
\else
|
|
||||||
\previouspage qtquick-properties.html
|
|
||||||
\endif
|
|
||||||
\page studio-timeline.html
|
\page studio-timeline.html
|
||||||
\nextpage qmldesigner-connections.html
|
\nextpage qmldesigner-connections.html
|
||||||
|
|
||||||
|
@@ -33,11 +33,10 @@
|
|||||||
|
|
||||||
\contentspage index.html
|
\contentspage index.html
|
||||||
\page creator-quick-ui-forms.html
|
\page creator-quick-ui-forms.html
|
||||||
|
\previouspage qtquick-annotations.html
|
||||||
\if defined(qtdesignstudio)
|
\if defined(qtdesignstudio)
|
||||||
\previouspage qmldesigner-pathview-editor.html
|
|
||||||
\nextpage creator-live-preview.html
|
\nextpage creator-live-preview.html
|
||||||
\else
|
\else
|
||||||
\previouspage qtquick-iso-icon-browser.html
|
|
||||||
\nextpage creator-qml-modules-with-plugins.html
|
\nextpage creator-qml-modules-with-plugins.html
|
||||||
\endif
|
\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
|
\previouspage quick-converting-ui-projects.html
|
||||||
\page studio-prototyping.html
|
\else
|
||||||
|
\previouspage creator-using-qt-quick-designer.html
|
||||||
|
\endif
|
||||||
\nextpage quick-components.html
|
\nextpage quick-components.html
|
||||||
|
|
||||||
\title Creating UIs
|
\title Creating UIs
|
||||||
|
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
When you install \QDS, everything you'll need to design UIs
|
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
|
using \l{Qt Quick} and to preview them on the desktop or on Android or
|
||||||
embedded Linux devices is automatically installed and configured correctly
|
embedded Linux devices is automatically installed and configured correctly
|
||||||
for you.
|
for you.
|
||||||
|
\endif
|
||||||
|
|
||||||
Qt Quick enables you to build UIs around the behavior of
|
Qt Quick enables you to build UIs around the behavior of
|
||||||
\e components and how they connect with one another. You
|
\e components and how they connect with one another. You
|
||||||
@@ -45,7 +51,7 @@
|
|||||||
visible to users, while others are used behind the scene.
|
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
|
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
|
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
|
their properties in the Design mode. You can always check up details in
|
||||||
the extensive Qt Quick documentation by pressing \key F1.
|
the extensive Qt Quick documentation by pressing \key F1.
|
||||||
@@ -76,13 +82,21 @@
|
|||||||
|
|
||||||
\li \l {Using Custom Fonts}
|
\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
|
\endlist
|
||||||
|
|
||||||
\section1 Related Topics
|
\section1 Related Topics
|
||||||
|
|
||||||
\list
|
\list
|
||||||
\li \l{Qt Quick UI Forms}
|
\endif
|
||||||
|
\li \l{Qt Quick UI Forms}
|
||||||
|
|
||||||
Some of the wizards create Qt Quick projects that contain 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
|
(.ui.qml files). The forms use a purely declarative subset of the
|
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\previouspage psqtbridge.html
|
\previouspage psqtbridge.html
|
||||||
\page qtbridge-ps-setup.html
|
\page qtbridge-ps-setup.html
|
||||||
\nextpage qtbridge-ps-using.html
|
\nextpage qtbridge-ps-using.html
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\previouspage sketchqtbridge.html
|
\previouspage sketchqtbridge.html
|
||||||
\page qtbridge-sketch-setup.html
|
\page qtbridge-sketch-setup.html
|
||||||
\nextpage qtbridge-sketch-using.html
|
\nextpage qtbridge-sketch-using.html
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\previouspage qt-design-viewer.html
|
\previouspage qt-design-viewer.html
|
||||||
\page studio-advanced.html
|
\page studio-advanced.html
|
||||||
\nextpage studio-platforms.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/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Bridge documentation.
|
** 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
|
\previouspage creator-vcs-git.html
|
||||||
\page studio-importing-designs.html
|
\page studio-importing-designs.html
|
||||||
\nextpage studio-importing-2d.html
|
\nextpage studio-importing-2d.html
|
||||||
@@ -47,131 +47,3 @@
|
|||||||
You can then edit them in the Design mode.
|
You can then edit them in the Design mode.
|
||||||
\endlist
|
\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
|
\previouspage creator-editor-options-text.html
|
||||||
\page studio-javascript.html
|
\page studio-javascript.html
|
||||||
\nextpage studio-debugging.html
|
\nextpage studio-debugging.html
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\previouspage studio-advanced.html
|
\previouspage studio-advanced.html
|
||||||
\page studio-platforms.html
|
\page studio-platforms.html
|
||||||
\nextpage creator-keyboard-shortcuts.html
|
\nextpage creator-keyboard-shortcuts.html
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\page qtdesignstudio-toc.html
|
\page qtdesignstudio-toc.html
|
||||||
|
|
||||||
\title All Topics
|
\title All Topics
|
||||||
@@ -76,6 +76,7 @@
|
|||||||
\li \l{Managing Item Hierarchy}
|
\li \l{Managing Item Hierarchy}
|
||||||
\li \l{Specifying Item Properties}
|
\li \l{Specifying Item Properties}
|
||||||
\li \l{Using Custom Fonts}
|
\li \l{Using Custom Fonts}
|
||||||
|
\li \l{Annotating Designs}
|
||||||
\li \l{Qt Quick UI Forms}
|
\li \l{Qt Quick UI Forms}
|
||||||
\endlist
|
\endlist
|
||||||
\li \l {Adding Dynamics}
|
\li \l {Adding Dynamics}
|
||||||
@@ -90,7 +91,7 @@
|
|||||||
\li \l{Adding States}
|
\li \l{Adding States}
|
||||||
\li \l{Editing PathView Properties}
|
\li \l{Editing PathView Properties}
|
||||||
\endlist
|
\endlist
|
||||||
\li \b {\l{Editing 3D Scenes}}
|
\li \l{Editing 3D Scenes}
|
||||||
\list
|
\list
|
||||||
\li \l{Editing 3D Assets in Design Mode}
|
\li \l{Editing 3D Assets in Design Mode}
|
||||||
\li \l{Working in the 3D Editor}
|
\li \l{Working in the 3D Editor}
|
||||||
|
@@ -62,6 +62,7 @@
|
|||||||
\li \l{Managing Item Hierarchy}
|
\li \l{Managing Item Hierarchy}
|
||||||
\li \l{Specifying Item Properties}
|
\li \l{Specifying Item Properties}
|
||||||
\li \l{Using Custom Fonts}
|
\li \l{Using Custom Fonts}
|
||||||
|
\li \l{Annotating Designs}
|
||||||
\endlist
|
\endlist
|
||||||
\li \b {\l{Adding Dynamics}}
|
\li \b {\l{Adding Dynamics}}
|
||||||
\list
|
\list
|
||||||
|
@@ -27,9 +27,13 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\page exporting-3d-assets.html
|
\page exporting-3d-assets.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
\previouspage qtbridge-sketch-using.html
|
\previouspage qtbridge-sketch-using.html
|
||||||
|
\else
|
||||||
|
\previouspage studio-3d.html
|
||||||
|
\endif
|
||||||
\nextpage exporting-from-blender.html
|
\nextpage exporting-from-blender.html
|
||||||
|
|
||||||
\title Exporting 3D Assets
|
\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/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of Qt Design Studio.
|
** 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
|
\page exporting-from-maya.html
|
||||||
\previouspage qtbridge-sketch-using.html
|
\previouspage exporting-from-blender.html
|
||||||
|
\if defined (qtdesignstudio)
|
||||||
\nextpage creator-quick-tour.html
|
\nextpage creator-quick-tour.html
|
||||||
|
\else
|
||||||
|
\nextpage studio-importing-3d.html
|
||||||
|
\endif
|
||||||
|
|
||||||
\title Exporting from Maya
|
\title Exporting from Maya
|
||||||
|
|
||||||
|
@@ -24,9 +24,13 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\previouspage studio-3d.html
|
|
||||||
\page studio-3d-design-mode.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
|
\nextpage studio-3d-editor.html
|
||||||
|
|
||||||
\title Editing 3D Assets in Design Mode
|
\title Editing 3D Assets in Design Mode
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\previouspage studio-3d-design-mode.html
|
\previouspage studio-3d-design-mode.html
|
||||||
\page studio-3d-editor.html
|
\page studio-3d-editor.html
|
||||||
\nextpage studio-3d-view.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
|
\previouspage studio-3d-components.html
|
||||||
\page studio-3d-node.html
|
\page studio-3d-node.html
|
||||||
\nextpage studio-3d-model.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/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of Qt Design Studio.
|
** This file is part of Qt Design Studio.
|
||||||
@@ -29,7 +29,11 @@
|
|||||||
\contentspage {Qt Design Studio Manual}
|
\contentspage {Qt Design Studio Manual}
|
||||||
\page studio-3d-scene-environment.html
|
\page studio-3d-scene-environment.html
|
||||||
\previouspage studio-3d-camera.html
|
\previouspage studio-3d-camera.html
|
||||||
|
\if defined (qtdesignstudio)
|
||||||
\nextpage creator-live-preview.html
|
\nextpage creator-live-preview.html
|
||||||
|
\else
|
||||||
|
\nextpage qtquick-iso-icon-browser.html
|
||||||
|
\endif
|
||||||
|
|
||||||
\title Setting Scene Environment
|
\title Setting Scene Environment
|
||||||
|
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\contentspage {Qt Design Studio}
|
\contentspage index.html
|
||||||
\previouspage studio-3d-editor.html
|
\previouspage studio-3d-editor.html
|
||||||
\page studio-3d-view.html
|
\page studio-3d-view.html
|
||||||
\nextpage studio-3d-components.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/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Design Studio documentation.
|
** 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
|
\page studio-3d.html
|
||||||
\previouspage qmldesigner-pathview-editor.html
|
\previouspage qmldesigner-pathview-editor.html
|
||||||
|
\if defined(qtdesignstudio)
|
||||||
\nextpage studio-3d-design-mode.html
|
\nextpage studio-3d-design-mode.html
|
||||||
|
\else
|
||||||
|
\nextpage exporting-3d-assets.html
|
||||||
|
\endif
|
||||||
|
|
||||||
|
|
||||||
\title Editing 3D Scenes
|
\title Editing 3D Scenes
|
||||||
|
|
||||||
@@ -45,6 +50,20 @@
|
|||||||
The following topics contain information about working with Qt Quick 3D:
|
The following topics contain information about working with Qt Quick 3D:
|
||||||
|
|
||||||
\list
|
\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}
|
\li \l {Editing 3D Assets in Design Mode}
|
||||||
|
|
||||||
\QDS opens QML files that contain 3D scenes in the Design mode and
|
\QDS opens QML files that contain 3D scenes in the Design mode and
|
||||||
|
@@ -24,11 +24,12 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
|
import QtQuick3D 1.15
|
||||||
|
|
||||||
IconGizmo {
|
IconGizmo {
|
||||||
id: cameraGizmo
|
id: cameraGizmo
|
||||||
|
|
||||||
property var frustumModel: null
|
property Model frustumModel: null
|
||||||
|
|
||||||
iconSource: "qrc:///qtquickplugin/mockfiles/images/editor_camera.png"
|
iconSource: "qrc:///qtquickplugin/mockfiles/images/editor_camera.png"
|
||||||
|
|
||||||
|
@@ -134,7 +134,7 @@ Item {
|
|||||||
function fitToView()
|
function fitToView()
|
||||||
{
|
{
|
||||||
if (editView) {
|
if (editView) {
|
||||||
var targetNode = selectedNodes.length > 0
|
var targetNode = selectionBoxes.length > 0
|
||||||
? selectionBoxes[0].model : null;
|
? selectionBoxes[0].model : null;
|
||||||
cameraControl.focusObject(targetNode, editView.camera.eulerRotation, true);
|
cameraControl.focusObject(targetNode, editView.camera.eulerRotation, true);
|
||||||
}
|
}
|
||||||
@@ -301,16 +301,20 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// No free gizmos available, create a new one
|
// No free gizmos available, create a new one
|
||||||
var component = Qt.createComponent("LightGizmo.qml");
|
var gizmoComponent = Qt.createComponent("LightGizmo.qml");
|
||||||
if (component.status === Component.Ready) {
|
var modelComponent = Qt.createComponent("LightModel.qml");
|
||||||
var gizmo = component.createObject(overlayView,
|
if (gizmoComponent.status === Component.Ready && modelComponent.status === Component.Ready) {
|
||||||
{"view3D": overlayView, "targetNode": obj,
|
var geometryName = _generalHelper.generateUniqueName("LightGeometry");
|
||||||
"selectedNodes": selectedNodes, "scene": scene,
|
var model = modelComponent.createObject(overlayScene, {"geometryName": geometryName});
|
||||||
"activeScene": activeScene});
|
var gizmo = gizmoComponent.createObject(overlayView,
|
||||||
|
{"view3D": overlayView, "targetNode": obj,
|
||||||
|
"selectedNodes": selectedNodes, "scene": scene,
|
||||||
|
"activeScene": activeScene});
|
||||||
lightGizmos[lightGizmos.length] = gizmo;
|
lightGizmos[lightGizmos.length] = gizmo;
|
||||||
gizmo.clicked.connect(handleObjectClicked);
|
gizmo.clicked.connect(handleObjectClicked);
|
||||||
gizmo.selectedNodes = Qt.binding(function() {return selectedNodes;});
|
gizmo.selectedNodes = Qt.binding(function() {return selectedNodes;});
|
||||||
gizmo.activeScene = Qt.binding(function() {return activeScene;});
|
gizmo.activeScene = Qt.binding(function() {return activeScene;});
|
||||||
|
gizmo.connectModel(model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -29,14 +29,40 @@ import QtQuick3D 1.15
|
|||||||
IconGizmo {
|
IconGizmo {
|
||||||
id: lightGizmo
|
id: lightGizmo
|
||||||
|
|
||||||
|
property Model lightModel: null
|
||||||
|
|
||||||
iconSource: targetNode
|
iconSource: targetNode
|
||||||
? targetNode instanceof DirectionalLight
|
? targetNode instanceof DirectionalLight
|
||||||
? "qrc:///qtquickplugin/mockfiles/images/directional_light_gradient.png"
|
? "qrc:///qtquickplugin/mockfiles/images/directional_light_gradient.png"
|
||||||
: targetNode instanceof AreaLight
|
: targetNode instanceof AreaLight
|
||||||
? "qrc:///qtquickplugin/mockfiles/images/area_light_gradient.png"
|
? "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"
|
: "qrc:///qtquickplugin/mockfiles/images/point_light_gradient.png"
|
||||||
|
|
||||||
// ColorOverlay doesn't work correctly with hidden windows so commenting it out for now
|
// ColorOverlay doesn't work correctly with hidden windows so commenting it out for now
|
||||||
//overlayColor: targetNode ? targetNode.color : "transparent"
|
//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
|
id: root
|
||||||
color: toggleBackground && toggled ? "#aa000000" : mouseArea.containsMouse ? "#44000000" : "#00000000"
|
color: toggleBackground && toggled ? "#aa000000" : mouseArea.containsMouse ? "#44000000" : "#00000000"
|
||||||
width: img.width + txt.width + 5
|
width: txt.width + 5
|
||||||
height: img.height
|
height: 16
|
||||||
|
|
||||||
Image {
|
|
||||||
id: img
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
source: "qrc:///qtquickplugin/mockfiles/images/" + root.states[toggled ? 1 : 0].iconId + ".png"
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
id: txt
|
id: txt
|
||||||
color: "#b5b5b5"
|
color: "#b5b5b5"
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.left: img.right
|
|
||||||
text: root.states[toggled ? 1 : 0].text
|
text: root.states[toggled ? 1 : 0].text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -41,8 +41,8 @@ Rectangle {
|
|||||||
property var _buttonGroupArray: []
|
property var _buttonGroupArray: []
|
||||||
|
|
||||||
id: root
|
id: root
|
||||||
width: img.width + 5
|
width: 16
|
||||||
height: img.height + 5
|
height: 16
|
||||||
color: root.selected ? "#aa000000" : (mouseArea.containsMouse ? "#44000000" : "#00000000")
|
color: root.selected ? "#aa000000" : (mouseArea.containsMouse ? "#44000000" : "#00000000")
|
||||||
radius: 3
|
radius: 3
|
||||||
|
|
||||||
@@ -65,13 +65,6 @@ Rectangle {
|
|||||||
delay: 1000
|
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 {
|
Shortcut {
|
||||||
sequence: root.currentShortcut
|
sequence: root.currentShortcut
|
||||||
onActivated: mouseArea.onClicked(null)
|
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/qquick3dperspectivecamera_p.h>
|
||||||
#include <QtQuick3D/private/qquick3dutils_p.h>
|
#include <QtQuick3D/private/qquick3dutils_p.h>
|
||||||
#include <QtCore/qmath.h>
|
#include <QtCore/qmath.h>
|
||||||
|
#include <QtCore/qtimer.h>
|
||||||
|
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
|
||||||
@@ -70,31 +71,31 @@ void CameraGeometry::setCamera(QQuick3DCamera *camera)
|
|||||||
m_camera = camera;
|
m_camera = camera;
|
||||||
if (auto perspectiveCamera = qobject_cast<QQuick3DPerspectiveCamera *>(m_camera)) {
|
if (auto perspectiveCamera = qobject_cast<QQuick3DPerspectiveCamera *>(m_camera)) {
|
||||||
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::clipNearChanged,
|
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::clipNearChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::clipFarChanged,
|
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::clipFarChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::fieldOfViewChanged,
|
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::fieldOfViewChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::fieldOfViewOrientationChanged,
|
QObject::connect(perspectiveCamera, &QQuick3DPerspectiveCamera::fieldOfViewOrientationChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
if (auto frustumCamera = qobject_cast<QQuick3DFrustumCamera *>(m_camera)) {
|
if (auto frustumCamera = qobject_cast<QQuick3DFrustumCamera *>(m_camera)) {
|
||||||
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::topChanged,
|
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::topChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::bottomChanged,
|
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::bottomChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::rightChanged,
|
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::rightChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::leftChanged,
|
QObject::connect(frustumCamera, &QQuick3DFrustumCamera::leftChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
}
|
}
|
||||||
} else if (auto orthoCamera = qobject_cast<QQuick3DOrthographicCamera *>(m_camera)) {
|
} else if (auto orthoCamera = qobject_cast<QQuick3DOrthographicCamera *>(m_camera)) {
|
||||||
QObject::connect(orthoCamera, &QQuick3DOrthographicCamera::clipNearChanged,
|
QObject::connect(orthoCamera, &QQuick3DOrthographicCamera::clipNearChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
QObject::connect(orthoCamera, &QQuick3DOrthographicCamera::clipFarChanged,
|
QObject::connect(orthoCamera, &QQuick3DOrthographicCamera::clipFarChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
} else if (auto customCamera = qobject_cast<QQuick3DCustomCamera *>(m_camera)) {
|
} else if (auto customCamera = qobject_cast<QQuick3DCustomCamera *>(m_camera)) {
|
||||||
QObject::connect(customCamera, &QQuick3DCustomCamera::projectionChanged,
|
QObject::connect(customCamera, &QQuick3DCustomCamera::projectionChanged,
|
||||||
this, &CameraGeometry::update);
|
this, &CameraGeometry::handleCameraPropertyChange);
|
||||||
}
|
}
|
||||||
emit cameraChanged();
|
emit cameraChanged();
|
||||||
update();
|
update();
|
||||||
@@ -110,48 +111,28 @@ void CameraGeometry::setViewPortRect(const QRectF &rect)
|
|||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CameraGeometry::handleCameraPropertyChange()
|
||||||
|
{
|
||||||
|
m_cameraUpdatePending = true;
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
QSSGRenderGraphObject *CameraGeometry::updateSpatialNode(QSSGRenderGraphObject *node)
|
QSSGRenderGraphObject *CameraGeometry::updateSpatialNode(QSSGRenderGraphObject *node)
|
||||||
{
|
{
|
||||||
if (!m_camera)
|
if (!m_camera)
|
||||||
return node;
|
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 (!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
|
// Doing explicit viewport mapping forces cameraNode creation
|
||||||
m_camera->mapToViewport({}, m_viewPortRect.width(), m_viewPortRect.height());
|
m_camera->mapToViewport({}, m_viewPortRect.width(), m_viewPortRect.height());
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
node = QQuick3DGeometry::updateSpatialNode(node);
|
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
|
const int vertexSize = int(sizeof(float)) * 8 * 3; // 8 vertices, 3 floats/vert
|
||||||
vertexData.resize(vertexSize);
|
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);
|
indexData.resize(indexSize);
|
||||||
|
|
||||||
auto dataPtr = reinterpret_cast<float *>(vertexData.data());
|
auto dataPtr = reinterpret_cast<float *>(vertexData.data());
|
||||||
|
@@ -49,6 +49,7 @@ public:
|
|||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void setCamera(QQuick3DCamera *camera);
|
void setCamera(QQuick3DCamera *camera);
|
||||||
void setViewPortRect(const QRectF &rect);
|
void setViewPortRect(const QRectF &rect);
|
||||||
|
void handleCameraPropertyChange();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void cameraChanged();
|
void cameraChanged();
|
||||||
@@ -62,6 +63,7 @@ private:
|
|||||||
QVector3D &minBounds, QVector3D &maxBounds);
|
QVector3D &minBounds, QVector3D &maxBounds);
|
||||||
QQuick3DCamera *m_camera = nullptr;
|
QQuick3DCamera *m_camera = nullptr;
|
||||||
QRectF m_viewPortRect;
|
QRectF m_viewPortRect;
|
||||||
|
bool m_cameraUpdatePending = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
HEADERS += $$PWD/generalhelper.h \
|
HEADERS += $$PWD/generalhelper.h \
|
||||||
$$PWD/mousearea3d.h \
|
$$PWD/mousearea3d.h \
|
||||||
$$PWD/camerageometry.h \
|
$$PWD/camerageometry.h \
|
||||||
|
$$PWD/lightgeometry.h \
|
||||||
$$PWD/gridgeometry.h \
|
$$PWD/gridgeometry.h \
|
||||||
$$PWD/selectionboxgeometry.h \
|
$$PWD/selectionboxgeometry.h \
|
||||||
$$PWD/linegeometry.h
|
$$PWD/linegeometry.h
|
||||||
@@ -8,6 +9,7 @@ HEADERS += $$PWD/generalhelper.h \
|
|||||||
SOURCES += $$PWD/generalhelper.cpp \
|
SOURCES += $$PWD/generalhelper.cpp \
|
||||||
$$PWD/mousearea3d.cpp \
|
$$PWD/mousearea3d.cpp \
|
||||||
$$PWD/camerageometry.cpp \
|
$$PWD/camerageometry.cpp \
|
||||||
|
$$PWD/lightgeometry.cpp \
|
||||||
$$PWD/gridgeometry.cpp \
|
$$PWD/gridgeometry.cpp \
|
||||||
$$PWD/selectionboxgeometry.cpp \
|
$$PWD/selectionboxgeometry.cpp \
|
||||||
$$PWD/linegeometry.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/generalhelper.h"
|
||||||
#include "../editor3d/mousearea3d.h"
|
#include "../editor3d/mousearea3d.h"
|
||||||
#include "../editor3d/camerageometry.h"
|
#include "../editor3d/camerageometry.h"
|
||||||
|
#include "../editor3d/lightgeometry.h"
|
||||||
#include "../editor3d/gridgeometry.h"
|
#include "../editor3d/gridgeometry.h"
|
||||||
#include "../editor3d/selectionboxgeometry.h"
|
#include "../editor3d/selectionboxgeometry.h"
|
||||||
#include "../editor3d/linegeometry.h"
|
#include "../editor3d/linegeometry.h"
|
||||||
@@ -104,6 +105,7 @@ void Qt5InformationNodeInstanceServer::createEditView3D()
|
|||||||
qmlRegisterRevision<QQuick3DNode, 1>("MouseArea3D", 1, 0);
|
qmlRegisterRevision<QQuick3DNode, 1>("MouseArea3D", 1, 0);
|
||||||
qmlRegisterType<QmlDesigner::Internal::MouseArea3D>("MouseArea3D", 1, 0, "MouseArea3D");
|
qmlRegisterType<QmlDesigner::Internal::MouseArea3D>("MouseArea3D", 1, 0, "MouseArea3D");
|
||||||
qmlRegisterType<QmlDesigner::Internal::CameraGeometry>("CameraGeometry", 1, 0, "CameraGeometry");
|
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::GridGeometry>("GridGeometry", 1, 0, "GridGeometry");
|
||||||
qmlRegisterType<QmlDesigner::Internal::SelectionBoxGeometry>("SelectionBoxGeometry", 1, 0, "SelectionBoxGeometry");
|
qmlRegisterType<QmlDesigner::Internal::SelectionBoxGeometry>("SelectionBoxGeometry", 1, 0, "SelectionBoxGeometry");
|
||||||
qmlRegisterType<QmlDesigner::Internal::LineGeometry>("LineGeometry", 1, 0, "LineGeometry");
|
qmlRegisterType<QmlDesigner::Internal::LineGeometry>("LineGeometry", 1, 0, "LineGeometry");
|
||||||
|
@@ -14,6 +14,7 @@
|
|||||||
<file>mockfiles/MoveGizmo.qml</file>
|
<file>mockfiles/MoveGizmo.qml</file>
|
||||||
<file>mockfiles/CameraFrustum.qml</file>
|
<file>mockfiles/CameraFrustum.qml</file>
|
||||||
<file>mockfiles/CameraGizmo.qml</file>
|
<file>mockfiles/CameraGizmo.qml</file>
|
||||||
|
<file>mockfiles/LightModel.qml</file>
|
||||||
<file>mockfiles/LightGizmo.qml</file>
|
<file>mockfiles/LightGizmo.qml</file>
|
||||||
<file>mockfiles/IconGizmo.qml</file>
|
<file>mockfiles/IconGizmo.qml</file>
|
||||||
<file>mockfiles/Overlay2D.qml</file>
|
<file>mockfiles/Overlay2D.qml</file>
|
||||||
@@ -40,49 +41,13 @@
|
|||||||
<file>mockfiles/meshes/axishelper.mesh</file>
|
<file>mockfiles/meshes/axishelper.mesh</file>
|
||||||
<file>mockfiles/images/editor_camera.png</file>
|
<file>mockfiles/images/editor_camera.png</file>
|
||||||
<file>mockfiles/images/editor_camera@2x.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.png</file>
|
||||||
<file>mockfiles/images/directional_light_gradient@2x.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.png</file>
|
||||||
<file>mockfiles/images/point_light_gradient@2x.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.png</file>
|
||||||
<file>mockfiles/images/area_light_gradient@2x.png</file>
|
<file>mockfiles/images/area_light_gradient@2x.png</file>
|
||||||
<file>mockfiles/images/fit_active.png</file>
|
<file>mockfiles/images/spot_light_gradient.png</file>
|
||||||
<file>mockfiles/images/fit_active@2x.png</file>
|
<file>mockfiles/images/spot_light_gradient@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>
|
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|