forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/7.0'
Change-Id: I95dba3037fe5630cafc3c1e45c579ff18730262c
This commit is contained in:
@@ -5,18 +5,94 @@ instructions:
|
|||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_BUILD_TYPE
|
variableName: QTC_BUILD_TYPE
|
||||||
variableValue: "RelWithDebInfo"
|
variableValue: "RelWithDebInfo"
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: LLVM_BASE_URL
|
||||||
|
variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_140-based
|
||||||
|
|
||||||
|
- type: Group
|
||||||
|
instructions:
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_QT_BASE_URL
|
variableName: QTC_QT_BASE_URL
|
||||||
variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.2/6.2.4-final-released/Qt6.2.4"
|
variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.2/6.2.4-final-released/Qt6.2.4"
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_QT_MODULES
|
variableName: QTC_QT_MODULES
|
||||||
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations"
|
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations"
|
||||||
- type: EnvironmentVariable
|
|
||||||
variableName: LLVM_BASE_URL
|
|
||||||
variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_140-based
|
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: MACOSX_DEPLOYMENT_TARGET
|
variableName: MACOSX_DEPLOYMENT_TARGET
|
||||||
variableValue: 10.14
|
variableValue: 10.14
|
||||||
|
- type: Group
|
||||||
|
instructions:
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: QTC_QT_POSTFIX
|
||||||
|
variableValue: "-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z"
|
||||||
|
enable_if:
|
||||||
|
condition: property
|
||||||
|
property: target.os
|
||||||
|
equals_value: Windows
|
||||||
|
- type: Group
|
||||||
|
instructions:
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: QTC_QT_POSTFIX
|
||||||
|
variableValue: "-Linux-RHEL_8_4-GCC-Linux-RHEL_8_4-X86_64.7z"
|
||||||
|
enable_if:
|
||||||
|
condition: property
|
||||||
|
property: target.os
|
||||||
|
equals_value: Linux
|
||||||
|
- type: Group
|
||||||
|
instructions:
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: QTC_QT_POSTFIX
|
||||||
|
variableValue: "-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64.7z"
|
||||||
|
enable_if:
|
||||||
|
condition: property
|
||||||
|
property: target.os
|
||||||
|
equals_value: MacOS
|
||||||
|
enable_if:
|
||||||
|
condition: property
|
||||||
|
property: features
|
||||||
|
not_contains_value: "Qt5"
|
||||||
|
- type: Group
|
||||||
|
instructions:
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: QTC_QT_BASE_URL
|
||||||
|
variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/5.15/5.15.2-final-released/latest"
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: QTC_QT_MODULES
|
||||||
|
variableValue: "qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtsvg qttools qttranslations"
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: MACOSX_DEPLOYMENT_TARGET
|
||||||
|
variableValue: 10.13
|
||||||
|
- type: Group
|
||||||
|
instructions:
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: QTC_QT_POSTFIX
|
||||||
|
variableValue: "-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z"
|
||||||
|
enable_if:
|
||||||
|
condition: property
|
||||||
|
property: target.os
|
||||||
|
equals_value: Windows
|
||||||
|
- type: Group
|
||||||
|
instructions:
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: QTC_QT_POSTFIX
|
||||||
|
variableValue: "-Linux-RHEL_7_6-GCC-Linux-RHEL_7_6-X86_64.7z"
|
||||||
|
enable_if:
|
||||||
|
condition: property
|
||||||
|
property: target.os
|
||||||
|
equals_value: Linux
|
||||||
|
- type: Group
|
||||||
|
instructions:
|
||||||
|
- type: EnvironmentVariable
|
||||||
|
variableName: QTC_QT_POSTFIX
|
||||||
|
variableValue: "-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z"
|
||||||
|
enable_if:
|
||||||
|
condition: property
|
||||||
|
property: target.os
|
||||||
|
equals_value: MacOS
|
||||||
|
enable_if:
|
||||||
|
condition: property
|
||||||
|
property: features
|
||||||
|
contains_value: "Qt5"
|
||||||
|
|
||||||
- type: PrependToEnvironmentVariable
|
- type: PrependToEnvironmentVariable
|
||||||
variableName: PATH
|
variableName: PATH
|
||||||
|
@@ -32,7 +32,7 @@ instructions:
|
|||||||
property: host.os
|
property: host.os
|
||||||
in_values: [MacOS, Linux, Windows]
|
in_values: [MacOS, Linux, Windows]
|
||||||
- type: ExecuteCommand
|
- type: ExecuteCommand
|
||||||
command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix=-Linux-RHEL_8_4-GCC-Linux-RHEL_8_4-X86_64.7z --icu7z http://master.qt.io/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z {{.Env.QTC_QT_MODULES}}"
|
command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} --icu7z http://master.qt.io/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z {{.Env.QTC_QT_MODULES}}"
|
||||||
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
||||||
maxTimeInSeconds: 3600
|
maxTimeInSeconds: 3600
|
||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
@@ -42,7 +42,7 @@ instructions:
|
|||||||
property: host.os
|
property: host.os
|
||||||
equals_value: Linux
|
equals_value: Linux
|
||||||
- type: ExecuteCommand
|
- type: ExecuteCommand
|
||||||
command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix=-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64.7z {{.Env.QTC_QT_MODULES}}"
|
command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} {{.Env.QTC_QT_MODULES}}"
|
||||||
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
||||||
maxTimeInSeconds: 3600
|
maxTimeInSeconds: 3600
|
||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
@@ -61,7 +61,7 @@ instructions:
|
|||||||
property: host.os
|
property: host.os
|
||||||
equals_value: Windows
|
equals_value: Windows
|
||||||
- type: ExecuteCommand
|
- type: ExecuteCommand
|
||||||
command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix=-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z --opengl32sw7z http://master.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-64.7z --d3dcompiler7z http://master.qt.io/development_releases/prebuilt/d3dcompiler/msvc2013/d3dcompiler_47-x64.7z --openssl7z http://ci-files02-hki.intra.qt.io/packages/jenkins/openssl/openssl_1.1.1d_prebuild_x64.7z {{.Env.QTC_QT_MODULES}}"
|
command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} --opengl32sw7z http://master.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-64.7z --d3dcompiler7z http://master.qt.io/development_releases/prebuilt/d3dcompiler/msvc2013/d3dcompiler_47-x64.7z --openssl7z http://ci-files02-hki.intra.qt.io/packages/jenkins/openssl/openssl_1.1.1d_prebuild_x64.7z {{.Env.QTC_QT_MODULES}}"
|
||||||
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
||||||
maxTimeInSeconds: 3600
|
maxTimeInSeconds: 3600
|
||||||
maxTimeBetweenOutput: 360
|
maxTimeBetweenOutput: 360
|
||||||
|
@@ -173,17 +173,18 @@
|
|||||||
|
|
||||||
If you use Qt Quick Studio Components or Effects in your project, you have
|
If you use Qt Quick Studio Components or Effects in your project, you have
|
||||||
to check out and install the \e {Qt Quick Designer Components} module from
|
to check out and install the \e {Qt Quick Designer Components} module from
|
||||||
\l{https://codereview.qt-project.org/admin/repos/qt-labs/qtquickdesigner-components}
|
\l{https://code.qt.io/cgit/qt-labs/qtquickdesigner-components.git/}
|
||||||
{Qt Code Review}.
|
{Qt Code Review}.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
\badcode
|
\badcode
|
||||||
git clone "https://codereview.qt-project.org/qt-labs/qtquickdesigner-components"
|
git clone https://code.qt.io/qt-labs/qtquickdesigner-components.git
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
Then use qmake from your Qt installation to build the module and to add it
|
Then use qmake from your Qt installation to build the module and to add it
|
||||||
to your Qt. Switch to the directory that contains the sources (usually,
|
to your Qt. Switch to the directory that contains the sources (usually,
|
||||||
qtquickdesigner-components), and enter the following commands:
|
qtquickdesigner-components), make sure you checkout the qmake branch, and enter
|
||||||
|
the following commands:
|
||||||
|
|
||||||
\badcode
|
\badcode
|
||||||
<path_to_qmake>\qmake -r
|
<path_to_qmake>\qmake -r
|
||||||
@@ -193,6 +194,18 @@
|
|||||||
|
|
||||||
On Windows, use the \c nmake and \c {nmake install} commands instead.
|
On Windows, use the \c nmake and \c {nmake install} commands instead.
|
||||||
|
|
||||||
|
If you prefer CMake instead and you want to benefit from the QML compilation,
|
||||||
|
then you can checkout the dev branch instead. CMake is only supported since Qt 6.2.
|
||||||
|
Enter the following commands:
|
||||||
|
|
||||||
|
\badcode
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -GNinja -DCMAKE_INSTALL_PREFIX=<path_to_qt_install_directory> <path_to_qtquickdesigner-components>
|
||||||
|
cmake --build .
|
||||||
|
cmake --install .
|
||||||
|
\endcode
|
||||||
|
|
||||||
\section1 Adding Qt Quick Timeline Module to Qt Installations
|
\section1 Adding Qt Quick Timeline Module to Qt Installations
|
||||||
|
|
||||||
\note You only need to do this if your Qt version is older than 5.14.
|
\note You only need to do this if your Qt version is older than 5.14.
|
||||||
|
227
doc/qtdesignstudio/examples/doc/FireParticles.qdoc
Normal file
227
doc/qtdesignstudio/examples/doc/FireParticles.qdoc
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2022 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Design Studio documentation.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU Free Documentation License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU Free
|
||||||
|
** Documentation License version 1.3 as published by the Free Software
|
||||||
|
** Foundation and appearing in the file included in the packaging of
|
||||||
|
** this file. Please review the following information to ensure
|
||||||
|
** the GNU Free Documentation License version 1.3 requirements
|
||||||
|
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\page fire-particle-effect.html
|
||||||
|
\ingroup gstutorials
|
||||||
|
\sa Particles
|
||||||
|
|
||||||
|
\title Particle System: Fire Effect
|
||||||
|
\brief Illustrates how to create a fire effect with the \QDS
|
||||||
|
particle system.
|
||||||
|
|
||||||
|
\image fire-particles.png
|
||||||
|
|
||||||
|
The \e{Fire Effect} tutorial illustrates how you can add a fire effect to
|
||||||
|
your scene using the \QDS particle system.
|
||||||
|
|
||||||
|
In this tutorial, you create a project from the beginning. You can download
|
||||||
|
the completed project from
|
||||||
|
\l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/fire-particles}
|
||||||
|
{here}.
|
||||||
|
|
||||||
|
This tutorial requires that you know the basics of \QDS, see
|
||||||
|
\l{Getting Started}.
|
||||||
|
|
||||||
|
\section1 Tutorial Assets
|
||||||
|
|
||||||
|
You need the following assets to complete this tutorial:
|
||||||
|
\list
|
||||||
|
\li \e fire-sprites.png
|
||||||
|
\li \e fire-color-table.png
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
You can download the assets from
|
||||||
|
\l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/fire-particles/FireParticles/content/images}
|
||||||
|
{here}.
|
||||||
|
|
||||||
|
\section1 Creating a Fire Effect
|
||||||
|
|
||||||
|
\section2 Creating a Project
|
||||||
|
|
||||||
|
To create a new project:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li Open \QDS.
|
||||||
|
\li On the \uicontrol {Welcome Screen}, select \uicontrol
|
||||||
|
{Create Project}.
|
||||||
|
\li In the \uicontrol Presets section, select \uicontrol General >
|
||||||
|
\uicontrol {3D}.
|
||||||
|
\li In the \uicontrol Details section, set the name to \e FireParticles
|
||||||
|
and select the folder where you want to save the project.
|
||||||
|
\li Select \uicontrol {Create}.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
Next, remove unwanted default components from the project:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li In \uicontrol {Navigator}, select \e Text and select the \key Delete
|
||||||
|
key.
|
||||||
|
\li In the same way, delete \e {cubeModel}.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
For a better visual effect, set the background color to black:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li In \uicontrol {Navigator}, select \e Rectangle and in
|
||||||
|
\uicontrol {Properties}, set \uicontrol {Fill Color} to #000000.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
|
||||||
|
\section2 Adding a Particle System to Your Scene
|
||||||
|
|
||||||
|
To add a particle system, you first need to import the QtQuick3D.Particles3D
|
||||||
|
module to your project:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li In the \uicontrol Components view, select \inlineimage icons/plus.png
|
||||||
|
.
|
||||||
|
\li Find QtQuick3D.Particles3D, and select it to add it to your project.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
In this project, you use an animated sprite to simulate a fire. For
|
||||||
|
this, use the Animated Sprite particle system template:
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li From \uicontrol Components >
|
||||||
|
\uicontrol{Qt Quick 3D Particle System Templates} drag an
|
||||||
|
\uicontrol {Animated Sprite} component to \uicontrol{3D Editor}. You can
|
||||||
|
also drag it to \e scene in \uicontrol {Navigator}.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\image fire-particles-navigator.png
|
||||||
|
|
||||||
|
You now have the particle system in place. To preview it, select
|
||||||
|
\key Alt + \key{P}. You can also preview the particle system in
|
||||||
|
\uicontrol {3D Editor} by using the \l {Particle Editor} tools.
|
||||||
|
|
||||||
|
\section2 Adding Sprites and Sprite Animations
|
||||||
|
|
||||||
|
First, import the sprite to use for the fire:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li In \uicontrol {Assets}, select \inlineimage icons/plus.png
|
||||||
|
.
|
||||||
|
\li Select \e {fire-sprites.png}.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\image fire-particles-assets.png
|
||||||
|
|
||||||
|
Next, add the sprite to the particle system and create the animation:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li From \uicontrol{Assets}, drag \e {fire-sprites.png} to
|
||||||
|
\e animatedTexture in \uicontrol {Navigator}.
|
||||||
|
\li In \uicontrol{Navigator}, select \e{animatedSequence} and in
|
||||||
|
\uicontrol {Properties}, set:
|
||||||
|
\list
|
||||||
|
\li \uicontrol{Frame Count} to 3.
|
||||||
|
There are 3 sprites in \e {fire-sprites.png} so you want to
|
||||||
|
divide the image into 3 different sprites for this animation.
|
||||||
|
\li \uicontrol Interpolate to true. This makes the animation between
|
||||||
|
the sprites smooth.
|
||||||
|
\li \uicontrol{Random Start} to true.
|
||||||
|
This sets the animation for each particle to start from any of the
|
||||||
|
3 sprites, creating some randomness to the effect.
|
||||||
|
\endlist
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\image fire-particles-sprite-sequence.png
|
||||||
|
|
||||||
|
To add color to the sprites, use a \e{color table}. With a color table, you
|
||||||
|
change the color of a single sprite during its life span. In this
|
||||||
|
project, you use a gradient color table ranging from yellow to dark orange.
|
||||||
|
This results in the sprites being yellow when they are emitted and dark
|
||||||
|
orange at the end of the life span.
|
||||||
|
|
||||||
|
To set the color table:
|
||||||
|
\list 1
|
||||||
|
\li Import \e{fire-color-table.png} to your project.
|
||||||
|
\li From \uicontrol{Components}, drag a \uicontrol Texture to
|
||||||
|
\e animatedSpriteParticle in \uicontrol{Navigator}.
|
||||||
|
\li Rename the texture to \e {fireColorTable}.
|
||||||
|
\li In \uicontrol {Navigator}, select \e {fireColorTable} and in
|
||||||
|
\uicontrol {Properties}, set \uicontrol Source to
|
||||||
|
\e{fire-color-table.png}.
|
||||||
|
\li In \uicontrol {Navigator}, select \e {animatedSpriteParticle} and:
|
||||||
|
\list
|
||||||
|
\li Ensure that \uicontrol Sprite is set to \e {animatedTexture}.
|
||||||
|
\li Set \uicontrol {Particle Scale} to 5.
|
||||||
|
\li Set \uicontrol {Color Table} to \e{fireColorTable}.
|
||||||
|
\endlist
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\image fire-particles-sprite-textures.png
|
||||||
|
|
||||||
|
\section2 Adjusting the Particle Emitter
|
||||||
|
|
||||||
|
The next step is to adjust the particle emitter properties:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li In \uicontrol{Navigator}, select \e animatedSpriteEmitter and in
|
||||||
|
\uicontrol {Properties}, set:
|
||||||
|
\list
|
||||||
|
\li \uicontrol {Emit Rate} to 300.
|
||||||
|
\li \uicontrol {Life Span} to 2500.
|
||||||
|
\li \uicontrol {Life Span Variation} to 100.
|
||||||
|
\li \uicontrol {Particle End Scale} to 1,50.
|
||||||
|
\endlist
|
||||||
|
This sets the emitter to emit 300 particles per second. The life span of
|
||||||
|
each particle is ranging from 2.4 to 2.6 seconds. The size of each
|
||||||
|
particle is increasing slightly throughout its life span.
|
||||||
|
\li In \uicontrol{Navigator}, select \e animatedSpriteParticle and in
|
||||||
|
\uicontrol {Properties}, set:
|
||||||
|
\list
|
||||||
|
\li \uicontrol {Blend Mode} to Screen.
|
||||||
|
\li \uicontrol {Max Amount} to 1000.
|
||||||
|
\li \uicontrol {Color Variation} > \uicontrol W to 0,50. This adds
|
||||||
|
randomness to the opacity of the sprites.
|
||||||
|
\endlist
|
||||||
|
\li In \uicontrol{Navigator}, select \e animatedSpriteDirection and in
|
||||||
|
\uicontrol {Properties}, set:
|
||||||
|
\list
|
||||||
|
\li \uicontrol Direction > \uicontrol Y to 20.
|
||||||
|
\li \uicontrol {Direction Variation} > \uicontrol X to 3.
|
||||||
|
\li \uicontrol {Direction Variation} > \uicontrol Y to 10.
|
||||||
|
\endlist
|
||||||
|
This makes the particles go straight up with a small amount of randomness
|
||||||
|
to the direction.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
\section1 Previewing
|
||||||
|
|
||||||
|
Now, the fire effect is done. Before you preview it, adjust the camera:
|
||||||
|
\list 1
|
||||||
|
\li In \uicontrol {Navigator}, select \e sceneCamera and in
|
||||||
|
\uicontrol {Properties}, set:
|
||||||
|
\list
|
||||||
|
\li \uicontrol {Field of View} to 20.
|
||||||
|
\li \uicontrol {Translation} > \uicontrol Y to 35.
|
||||||
|
\endlist
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
Now, preview the fire effect by selecting \key Alt + \key{P}.
|
||||||
|
|
||||||
|
*/
|
BIN
doc/qtdesignstudio/examples/doc/images/fire-particles-assets.png
Normal file
BIN
doc/qtdesignstudio/examples/doc/images/fire-particles-assets.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
Binary file not shown.
After Width: | Height: | Size: 8.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
doc/qtdesignstudio/examples/doc/images/fire-particles.png
Normal file
BIN
doc/qtdesignstudio/examples/doc/images/fire-particles.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
@@ -26,8 +26,9 @@
|
|||||||
/*!
|
/*!
|
||||||
\page rain-snow-particle-effect.html
|
\page rain-snow-particle-effect.html
|
||||||
\ingroup gstutorials
|
\ingroup gstutorials
|
||||||
|
\sa Particles
|
||||||
|
|
||||||
\title Rain and Snow Effect
|
\title Particle System: Rain and Snow Effect
|
||||||
\brief Illustrates how to create a rain and snow effect with the \QDS
|
\brief Illustrates how to create a rain and snow effect with the \QDS
|
||||||
particle system.
|
particle system.
|
||||||
|
|
||||||
|
@@ -29,7 +29,6 @@
|
|||||||
\page studio-3d-particles.html
|
\page studio-3d-particles.html
|
||||||
\previouspage studio-3d-loader-3d.html
|
\previouspage studio-3d-loader-3d.html
|
||||||
\nextpage studio-3d-particle-system.html
|
\nextpage studio-3d-particle-system.html
|
||||||
|
|
||||||
\title Particles
|
\title Particles
|
||||||
|
|
||||||
A \e {particle system} enables you to use sprites, 3D models, or images to
|
A \e {particle system} enables you to use sprites, 3D models, or images to
|
||||||
@@ -96,144 +95,7 @@
|
|||||||
particle instance in \uicontrol Navigator.
|
particle instance in \uicontrol Navigator.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
Add instances of other components according to your use case. The following
|
Add instances of other components according to your use case.
|
||||||
section describes how to modify particle system component property values by
|
|
||||||
using the simulation of fire as an example.
|
|
||||||
|
|
||||||
\section1 Example: Fire
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire.gif "Fire simulated by using particles"
|
|
||||||
|
|
||||||
In this section, we explore using particle system components and modifying
|
|
||||||
their property values, such as particle source images and their color, life
|
|
||||||
span, and fading effects, to simulate fire.
|
|
||||||
|
|
||||||
You can download the completed project from
|
|
||||||
\l {https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/FireParticles}{here}.
|
|
||||||
|
|
||||||
We will need the following \l{Assets}{assets}:
|
|
||||||
|
|
||||||
\list
|
|
||||||
\li Two images of flames: \e flame_01.png and \e flame_03.png
|
|
||||||
\li An image of smoke: \e smoke_01.png
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire-assets.png "The assets in Assets"
|
|
||||||
|
|
||||||
We will also need instances of the following components:
|
|
||||||
|
|
||||||
\list
|
|
||||||
\li \l {Particle System} (one instance)
|
|
||||||
\li \l {Sprite Particle} (four instances)
|
|
||||||
\li \l {Emitter} (four instances)
|
|
||||||
\li \l {Vector Direction} (four instances)
|
|
||||||
\li \l {Textures}{Texture} (four instances)
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
We start by creating a \l{Creating a Project}{Qt Quick 3D Application}
|
|
||||||
project and adding the assets to it. We then follow the instructions above
|
|
||||||
to add the \uicontrol {Particle System} component instance, which provides
|
|
||||||
us with our first \uicontrol Emitter, \uicontrol {Sprite Particle}, and
|
|
||||||
\uicontrol {Vector Direction} instances.
|
|
||||||
|
|
||||||
We add a \uicontrol Texture component instance with \e flame_01.png as the
|
|
||||||
source, and then add the texture as the sprite to use for the sprite
|
|
||||||
particle. We now have all the component instances we need for our first
|
|
||||||
emitter. To keep all the component instances together, we drag-and-drop the
|
|
||||||
sprite particle instance to the emitter instance in \uicontrol Navigator.
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire-emitter1.png "First emitter in fire example in Navigator"
|
|
||||||
|
|
||||||
We need more than one particle to realistically simulate a fire, so we will
|
|
||||||
add three more emitter instances to the particle system. We can copy-paste
|
|
||||||
the first instance in \uicontrol Navigator, and just modify two of the
|
|
||||||
texture instances to use \e flame_03.png as the source and one of them to
|
|
||||||
use \e smoke_01.png as the source. We use three different flame particles
|
|
||||||
to be able to layer them and to hide the fact that two of them actually use
|
|
||||||
the same texture.
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire-components.png "Fire particle system component instances in Navigator"
|
|
||||||
|
|
||||||
We can now start playing with the particle system component properties to
|
|
||||||
achieve the artistic effect that we want. To see how the changes in property
|
|
||||||
values affect the simulation, we will open the live preview by selecting
|
|
||||||
\inlineimage icons/live_preview.png
|
|
||||||
on the main toolbar (or by pressing \key {Alt+P}).
|
|
||||||
|
|
||||||
First, we will specify property values for the \uicontrol {Particle System}
|
|
||||||
component. We want to spawn some particles before the simulation starts, so
|
|
||||||
that the fire will be roaring at start. To achieve this, we set the value of
|
|
||||||
\uicontrol Properties > \uicontrol {Particle System} >
|
|
||||||
\uicontrol {Start Time} to \e 2000 milliseconds. We will
|
|
||||||
use the default values for the other properties.
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire-properties-particle-system.png "Particle System properties"
|
|
||||||
|
|
||||||
Then, we will specify how individual particles are spawned. We set the
|
|
||||||
value of \uicontrol Properties > \uicontrol {Particle Emitter} >
|
|
||||||
\uicontrol {Emit rate} to \e 40.00 for the flame particles and \e 20.00
|
|
||||||
for the smoke particle, because we want to have more flames than smoke.
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire-properties-particle-emitter.png "Particle Emitter properties"
|
|
||||||
|
|
||||||
To increase the visibility of the smoke at the top, we set the value of
|
|
||||||
\uicontrol {Life span} to \e 1200 milliseconds for the smoke particles
|
|
||||||
and \e 900, \e 1000, and \e 600 milliseconds for the flame particles.
|
|
||||||
Further, we set \uicontrol {Life span variation} to \e 100, \e 200, and
|
|
||||||
\e 300 for the flame particles to have some of them expire sooner than
|
|
||||||
others.
|
|
||||||
|
|
||||||
To scale the particles during their lifespan, we set
|
|
||||||
\uicontrol {Particle scale} to \e 2.00 for all particles and
|
|
||||||
\uicontrol {Particle end scale} to \e 5.00 for the flame
|
|
||||||
particles and to \e 6.00 for the smoke particles.
|
|
||||||
|
|
||||||
We can now modify the appearance of the particles by selecting the
|
|
||||||
\e spriteParticle in \uicontrol Navigator and then setting their color in
|
|
||||||
\uicontrol Properties > \uicontrol Particle. We select transparent yellow,
|
|
||||||
orange, and transparent gray in \uicontrol Color and set values for
|
|
||||||
\uicontrol {Color variation} to use slightly different colors for the
|
|
||||||
individual particles.
|
|
||||||
|
|
||||||
We can also try changing the \uicontrol{Blend Mode} for the particle to get
|
|
||||||
a more realistic fire effect.
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire-properties-particle.png "Particle properties"
|
|
||||||
|
|
||||||
We set \uicontrol {Fade in effect} and \uicontrol {Fade out effect} values
|
|
||||||
to \uicontrol FadeOpacity to change particle opacity between 0 and 1 over
|
|
||||||
the time specified in milliseconds in \uicontrol {Fade in duration} and
|
|
||||||
\uicontrol {Fade out duration}. Fading duration is calculated into the
|
|
||||||
particle lifespan, and therefore the smoke particles are actually never
|
|
||||||
fully visible with our settings.
|
|
||||||
|
|
||||||
To specify that the particle texture should always be aligned face towards
|
|
||||||
the screen, we enable \uicontrol Properties > \uicontrol {Sprite Particle} >
|
|
||||||
\uicontrol Billboard for all the particle component instances.
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire-properties-sprite-particle.png "Sprite Particle properties"
|
|
||||||
|
|
||||||
In \uicontrol{Particle Rotation}, we also need to set \uicontrol Rotation
|
|
||||||
and \uicontrol{Velocity Variation} for all emitters to 0.
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire-properties-rotation.png "Emitter rotation properties"
|
|
||||||
|
|
||||||
Finally, we will specify the direction in which the particles move by
|
|
||||||
modifying the property values of the \uicontrol {Vector Direction} component
|
|
||||||
instances in \uicontrol Properties > \uicontrol {Particle Vector Direction}.
|
|
||||||
|
|
||||||
In \uicontrol Direction, we set \uicontrol Y to \e 100.00 to make particles
|
|
||||||
move \e up, and \uicontrol Z to \e -100.00 to make them move in the
|
|
||||||
direction opposite to the target vector. We set the \uicontrol Direction
|
|
||||||
value to \e -50.00 for one of the flame particles and to \e -80.00 for the
|
|
||||||
smoke particle.
|
|
||||||
|
|
||||||
\image studio-3d-particles-fire-properties-vector-direction.png "Vector Direction properties"
|
|
||||||
|
|
||||||
We set the \uicontrol {Direction Variation} values for the different
|
|
||||||
vector direction instances to \e 10.00, \e 8.00, and \e 12.00 to make some
|
|
||||||
flames spread wider than others. You can try different values until you
|
|
||||||
get the effect you want.
|
|
||||||
|
|
||||||
\section1 Performance Considerations
|
\section1 Performance Considerations
|
||||||
|
|
||||||
@@ -344,6 +206,13 @@
|
|||||||
\li Wander
|
\li Wander
|
||||||
\li Applies random wave curves to particles.
|
\li Applies random wave curves to particles.
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
|
\section1 Particle System Tutorials
|
||||||
|
|
||||||
|
\list
|
||||||
|
\li \l{Particle System: Fire Effect}
|
||||||
|
\li \l{Particle System: Rain and Snow Effect}
|
||||||
|
\endlist
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -1101,7 +1101,7 @@ static CommandLine defaultInitialCMakeCommand(const Kit *k, const QString buildT
|
|||||||
if (!isIos(k)) { // iOS handles this differently
|
if (!isIos(k)) { // iOS handles this differently
|
||||||
const QString sysRoot = SysRootKitAspect::sysRoot(k).path();
|
const QString sysRoot = SysRootKitAspect::sysRoot(k).path();
|
||||||
if (!sysRoot.isEmpty()) {
|
if (!sysRoot.isEmpty()) {
|
||||||
cmd.addArg("-DCMAKE_SYSROOT:PATH" + sysRoot);
|
cmd.addArg("-DCMAKE_SYSROOT:PATH=" + sysRoot);
|
||||||
if (ToolChain *tc = ToolChainKitAspect::cxxToolChain(k)) {
|
if (ToolChain *tc = ToolChainKitAspect::cxxToolChain(k)) {
|
||||||
const QString targetTriple = tc->originalTargetTriple();
|
const QString targetTriple = tc->originalTargetTriple();
|
||||||
cmd.addArg("-DCMAKE_C_COMPILER_TARGET:STRING=" + targetTriple);
|
cmd.addArg("-DCMAKE_C_COMPILER_TARGET:STRING=" + targetTriple);
|
||||||
|
@@ -514,7 +514,7 @@ void CMakeBuildSystem::combineScanAndParse(bool restoredFromBackup)
|
|||||||
|
|
||||||
if (restoredFromBackup)
|
if (restoredFromBackup)
|
||||||
project()->addIssue(
|
project()->addIssue(
|
||||||
CMakeProject::IssueType::Error,
|
CMakeProject::IssueType::Warning,
|
||||||
tr("<b>CMake configuration failed<b>"
|
tr("<b>CMake configuration failed<b>"
|
||||||
"<p>The backup of the previous configuration has been restored.</p>"
|
"<p>The backup of the previous configuration has been restored.</p>"
|
||||||
"<p>Issues and \"Projects > Build\" settings "
|
"<p>Issues and \"Projects > Build\" settings "
|
||||||
@@ -532,7 +532,7 @@ void CMakeBuildSystem::combineScanAndParse(bool restoredFromBackup)
|
|||||||
updateFallbackProjectData();
|
updateFallbackProjectData();
|
||||||
|
|
||||||
project()->addIssue(
|
project()->addIssue(
|
||||||
CMakeProject::IssueType::Error,
|
CMakeProject::IssueType::Warning,
|
||||||
tr("<b>Failed to load project<b>"
|
tr("<b>Failed to load project<b>"
|
||||||
"<p>Issues and \"Projects > Build\" settings "
|
"<p>Issues and \"Projects > Build\" settings "
|
||||||
"show more information about the failure.</p"));
|
"show more information about the failure.</p"));
|
||||||
|
@@ -349,7 +349,8 @@ CMakeConfig CMakeConfig::fromArguments(const QStringList &list, QStringList &unk
|
|||||||
|
|
||||||
unknownOptions.append(i);
|
unknownOptions.append(i);
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
|
return Utils::filtered(result, [](const CMakeConfigItem &item) { return !item.key.isEmpty(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
CMakeConfig CMakeConfig::fromFile(const Utils::FilePath &cacheFile, QString *errorMessage)
|
CMakeConfig CMakeConfig::fromFile(const Utils::FilePath &cacheFile, QString *errorMessage)
|
||||||
|
@@ -274,7 +274,7 @@ void ProgressManagerPrivate::init()
|
|||||||
summaryProgressLayout->setSpacing(0);
|
summaryProgressLayout->setSpacing(0);
|
||||||
m_summaryProgressWidget->setLayout(summaryProgressLayout);
|
m_summaryProgressWidget->setLayout(summaryProgressLayout);
|
||||||
m_statusDetailsWidgetContainer = new QWidget(m_summaryProgressWidget);
|
m_statusDetailsWidgetContainer = new QWidget(m_summaryProgressWidget);
|
||||||
m_statusDetailsWidgetLayout = new QHBoxLayout(m_summaryProgressWidget);
|
m_statusDetailsWidgetLayout = new QHBoxLayout(m_statusDetailsWidgetContainer);
|
||||||
m_statusDetailsWidgetLayout->setContentsMargins(0, 0, 0, 0);
|
m_statusDetailsWidgetLayout->setContentsMargins(0, 0, 0, 0);
|
||||||
m_statusDetailsWidgetLayout->setSpacing(0);
|
m_statusDetailsWidgetLayout->setSpacing(0);
|
||||||
m_statusDetailsWidgetLayout->addStretch(1);
|
m_statusDetailsWidgetLayout->addStretch(1);
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QList>
|
#include <QList>
|
||||||
|
#include <QSet>
|
||||||
#include <QSharedPointer>
|
#include <QSharedPointer>
|
||||||
#include <QVersionNumber>
|
#include <QVersionNumber>
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
@@ -1244,7 +1244,7 @@ void BuildDeviceKitAspect::setup(Kit *k)
|
|||||||
{
|
{
|
||||||
QTC_ASSERT(DeviceManager::instance()->isLoaded(), return );
|
QTC_ASSERT(DeviceManager::instance()->isLoaded(), return );
|
||||||
IDevice::ConstPtr dev = BuildDeviceKitAspect::device(k);
|
IDevice::ConstPtr dev = BuildDeviceKitAspect::device(k);
|
||||||
if (!dev.isNull() && dev->isCompatibleWith(k))
|
if (!dev.isNull())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
dev = defaultDevice();
|
dev = defaultDevice();
|
||||||
|
@@ -103,13 +103,12 @@ static QAction *createAction(const Utils::Id &id,
|
|||||||
const QString &name,
|
const QString &name,
|
||||||
const QKeySequence &shortcut)
|
const QKeySequence &shortcut)
|
||||||
{
|
{
|
||||||
QString text = QString("%1 (%2)").arg(name).arg(shortcut.toString());
|
|
||||||
|
|
||||||
Core::Context context(TimelineConstants::C_QMLTIMELINE);
|
Core::Context context(TimelineConstants::C_QMLTIMELINE);
|
||||||
|
|
||||||
auto *action = new QAction(icon, text);
|
auto *action = new QAction(icon, name);
|
||||||
auto *command = Core::ActionManager::registerAction(action, id, context);
|
auto *command = Core::ActionManager::registerAction(action, id, context);
|
||||||
command->setDefaultKeySequence(shortcut);
|
command->setDefaultKeySequence(shortcut);
|
||||||
|
command->augmentActionWithShortcutToolTip(action);
|
||||||
|
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
|
@@ -37,10 +37,10 @@ const int transitionEditorPropertyItemUserType = QGraphicsItem::UserType + 7;
|
|||||||
|
|
||||||
const char C_QMLTRANSITIONS[] = "QmlDesigner::Transitions";
|
const char C_QMLTRANSITIONS[] = "QmlDesigner::Transitions";
|
||||||
|
|
||||||
const char C_SETTINGS[] = "QmlDesigner.SettingsTransitions";
|
const char C_SETTINGS[] = "QmlDesigner.Transitions.Settings";
|
||||||
const char C_CURVE_PICKER[] = "QmlDesigner.CurvePickerTransitions";
|
const char C_CURVE_PICKER[] = "QmlDesigner.Transitions.CurvePicker";
|
||||||
const char C_ZOOM_IN[] = "QmlDesigner.ZoomInTransition";
|
const char C_ZOOM_IN[] = "QmlDesigner.Transitions.ZoomIn";
|
||||||
const char C_ZOOM_OUT[] = "QmlDesigner.ZoomOutTransitions";
|
const char C_ZOOM_OUT[] = "QmlDesigner.Transitions.ZoomOut";
|
||||||
|
|
||||||
} // namespace TransitionEditorConstants
|
} // namespace TransitionEditorConstants
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
@@ -90,13 +90,13 @@ static QAction *createAction(const Utils::Id &id,
|
|||||||
const QString &name,
|
const QString &name,
|
||||||
const QKeySequence &shortcut)
|
const QKeySequence &shortcut)
|
||||||
{
|
{
|
||||||
QString text = QString("%1 (%2)").arg(name).arg(shortcut.toString());
|
|
||||||
|
|
||||||
Core::Context context(TransitionEditorConstants::C_QMLTRANSITIONS);
|
Core::Context context(TransitionEditorConstants::C_QMLTRANSITIONS);
|
||||||
|
|
||||||
auto *action = new QAction(icon, text);
|
auto *action = new QAction(icon, name);
|
||||||
auto *command = Core::ActionManager::registerAction(action, id, context);
|
auto *command = Core::ActionManager::registerAction(action, id, context);
|
||||||
command->setDefaultKeySequence(shortcut);
|
command->setDefaultKeySequence(shortcut);
|
||||||
|
command->augmentActionWithShortcutToolTip(action);
|
||||||
|
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
|
@@ -319,6 +319,9 @@ TransitionEditorWidget *TransitionEditorView::createWidget()
|
|||||||
if (!m_transitionEditorWidget)
|
if (!m_transitionEditorWidget)
|
||||||
m_transitionEditorWidget = new TransitionEditorWidget(this);
|
m_transitionEditorWidget = new TransitionEditorWidget(this);
|
||||||
|
|
||||||
|
auto *transitionContext = new TransitionContext(m_transitionEditorWidget);
|
||||||
|
Core::ICore::addContextObject(transitionContext);
|
||||||
|
|
||||||
return m_transitionEditorWidget;
|
return m_transitionEditorWidget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -68,6 +68,19 @@
|
|||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
|
TransitionContext::TransitionContext(QWidget *widget)
|
||||||
|
: IContext(widget)
|
||||||
|
{
|
||||||
|
setWidget(widget);
|
||||||
|
setContext(Core::Context(TransitionEditorConstants::C_QMLTRANSITIONS));
|
||||||
|
}
|
||||||
|
|
||||||
|
void TransitionContext::contextHelp(const Core::IContext::HelpCallback &callback) const
|
||||||
|
{
|
||||||
|
if (auto *widget = qobject_cast<TransitionEditorWidget *>(m_widget))
|
||||||
|
widget->contextHelp(callback);
|
||||||
|
}
|
||||||
|
|
||||||
class Eventfilter : public QObject
|
class Eventfilter : public QObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@@ -49,6 +49,15 @@ class TransitionEditorToolBar;
|
|||||||
class TransitionEditorGraphicsScene;
|
class TransitionEditorGraphicsScene;
|
||||||
class ModelNode;
|
class ModelNode;
|
||||||
|
|
||||||
|
class TransitionContext : public Core::IContext
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit TransitionContext(QWidget *widget);
|
||||||
|
void contextHelp(const HelpCallback &callback) const override;
|
||||||
|
};
|
||||||
|
|
||||||
class TransitionEditorWidget : public QWidget
|
class TransitionEditorWidget : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@@ -169,7 +169,7 @@ void QnxDeployQtLibrariesDialog::updateProgress(const QString &progressMessage)
|
|||||||
{
|
{
|
||||||
QTC_CHECK(m_state == Uploading);
|
QTC_CHECK(m_state == Uploading);
|
||||||
|
|
||||||
const int progress = progressMessage.count("sftp> put");
|
const int progress = progressMessage.count("sftp> put") + progressMessage.count("sftp> ln -s");
|
||||||
if (progress != 0) {
|
if (progress != 0) {
|
||||||
m_progressCount += progress;
|
m_progressCount += progress;
|
||||||
m_ui->deployProgress->setValue(m_progressCount);
|
m_ui->deployProgress->setValue(m_progressCount);
|
||||||
|
@@ -156,7 +156,6 @@ void QnxQtVersion::addToEnvironment(const Kit *k, Environment &env) const
|
|||||||
QtSupport::QtVersion::addToEnvironment(k, env);
|
QtSupport::QtVersion::addToEnvironment(k, env);
|
||||||
updateEnvironment();
|
updateEnvironment();
|
||||||
env.modify(m_qnxEnv);
|
env.modify(m_qnxEnv);
|
||||||
env.prependOrSetLibrarySearchPath(libraryPath());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QnxQtVersion::setupQmakeRunEnvironment(Environment &env) const
|
void QnxQtVersion::setupQmakeRunEnvironment(Environment &env) const
|
||||||
|
Reference in New Issue
Block a user