diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml index 3279aa6d93c..d179b44b4a3 100644 --- a/coin/instructions/common_environment.yaml +++ b/coin/instructions/common_environment.yaml @@ -5,18 +5,94 @@ instructions: - type: EnvironmentVariable variableName: QTC_BUILD_TYPE 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 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" - type: EnvironmentVariable variableName: QTC_QT_MODULES 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 variableName: MACOSX_DEPLOYMENT_TARGET 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 variableName: PATH diff --git a/coin/instructions/provision.yaml b/coin/instructions/provision.yaml index 86c7ca32f63..9de3cf487e1 100644 --- a/coin/instructions/provision.yaml +++ b/coin/instructions/provision.yaml @@ -32,7 +32,7 @@ instructions: property: host.os in_values: [MacOS, Linux, Windows] - 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 maxTimeInSeconds: 3600 maxTimeBetweenOutput: 360 @@ -42,7 +42,7 @@ instructions: property: host.os equals_value: Linux - 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 maxTimeInSeconds: 3600 maxTimeBetweenOutput: 360 @@ -61,7 +61,7 @@ instructions: property: host.os equals_value: Windows - 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 maxTimeInSeconds: 3600 maxTimeBetweenOutput: 360 diff --git a/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc b/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc index 289c61b41f2..bc58931c7b0 100644 --- a/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc +++ b/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc @@ -173,17 +173,18 @@ 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 - \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}. For example: \badcode - git clone "https://codereview.qt-project.org/qt-labs/qtquickdesigner-components" + git clone https://code.qt.io/qt-labs/qtquickdesigner-components.git \endcode 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, - qtquickdesigner-components), and enter the following commands: + qtquickdesigner-components), make sure you checkout the qmake branch, and enter + the following commands: \badcode \qmake -r @@ -193,6 +194,18 @@ 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= + cmake --build . + cmake --install . + \endcode + \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. diff --git a/doc/qtdesignstudio/examples/doc/FireParticles.qdoc b/doc/qtdesignstudio/examples/doc/FireParticles.qdoc new file mode 100644 index 00000000000..9d0b489de3c --- /dev/null +++ b/doc/qtdesignstudio/examples/doc/FireParticles.qdoc @@ -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}. + +*/ diff --git a/doc/qtdesignstudio/examples/doc/images/fire-particles-assets.png b/doc/qtdesignstudio/examples/doc/images/fire-particles-assets.png new file mode 100644 index 00000000000..a820fd98198 Binary files /dev/null and b/doc/qtdesignstudio/examples/doc/images/fire-particles-assets.png differ diff --git a/doc/qtdesignstudio/examples/doc/images/fire-particles-navigator.png b/doc/qtdesignstudio/examples/doc/images/fire-particles-navigator.png new file mode 100644 index 00000000000..759cca99909 Binary files /dev/null and b/doc/qtdesignstudio/examples/doc/images/fire-particles-navigator.png differ diff --git a/doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-sequence.png b/doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-sequence.png new file mode 100644 index 00000000000..c2ef2156bf8 Binary files /dev/null and b/doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-sequence.png differ diff --git a/doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-textures.png b/doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-textures.png new file mode 100644 index 00000000000..e719b7ef294 Binary files /dev/null and b/doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-textures.png differ diff --git a/doc/qtdesignstudio/examples/doc/images/fire-particles.png b/doc/qtdesignstudio/examples/doc/images/fire-particles.png new file mode 100644 index 00000000000..c0ea5608281 Binary files /dev/null and b/doc/qtdesignstudio/examples/doc/images/fire-particles.png differ diff --git a/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc b/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc index 6b50449f072..2ab7fe2182d 100644 --- a/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc +++ b/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc @@ -26,8 +26,9 @@ /*! \page rain-snow-particle-effect.html \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 particle system. diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-particles.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-particles.qdoc index 6f768c6bd24..12638642ffe 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-particles.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-particles.qdoc @@ -29,7 +29,6 @@ \page studio-3d-particles.html \previouspage studio-3d-loader-3d.html \nextpage studio-3d-particle-system.html - \title Particles A \e {particle system} enables you to use sprites, 3D models, or images to @@ -96,144 +95,7 @@ particle instance in \uicontrol Navigator. \endlist - Add instances of other components according to your use case. The following - 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. + Add instances of other components according to your use case. \section1 Performance Considerations @@ -344,6 +206,13 @@ \li Wander \li Applies random wave curves to particles. \endtable + + \section1 Particle System Tutorials + + \list + \li \l{Particle System: Fire Effect} + \li \l{Particle System: Rain and Snow Effect} + \endlist */ /*! diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 13a0be44199..7040bd3ee8a 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -1101,7 +1101,7 @@ static CommandLine defaultInitialCMakeCommand(const Kit *k, const QString buildT if (!isIos(k)) { // iOS handles this differently const QString sysRoot = SysRootKitAspect::sysRoot(k).path(); if (!sysRoot.isEmpty()) { - cmd.addArg("-DCMAKE_SYSROOT:PATH" + sysRoot); + cmd.addArg("-DCMAKE_SYSROOT:PATH=" + sysRoot); if (ToolChain *tc = ToolChainKitAspect::cxxToolChain(k)) { const QString targetTriple = tc->originalTargetTriple(); cmd.addArg("-DCMAKE_C_COMPILER_TARGET:STRING=" + targetTriple); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index 944f3116ea8..94460cf53ab 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -514,7 +514,7 @@ void CMakeBuildSystem::combineScanAndParse(bool restoredFromBackup) if (restoredFromBackup) project()->addIssue( - CMakeProject::IssueType::Error, + CMakeProject::IssueType::Warning, tr("CMake configuration failed" "

The backup of the previous configuration has been restored.

" "

Issues and \"Projects > Build\" settings " @@ -532,7 +532,7 @@ void CMakeBuildSystem::combineScanAndParse(bool restoredFromBackup) updateFallbackProjectData(); project()->addIssue( - CMakeProject::IssueType::Error, + CMakeProject::IssueType::Warning, tr("Failed to load project" "

Issues and \"Projects > Build\" settings " "show more information about the failure.setSpacing(0); m_summaryProgressWidget->setLayout(summaryProgressLayout); 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->setSpacing(0); m_statusDetailsWidgetLayout->addStretch(1); diff --git a/src/plugins/mcusupport/mcusupport_global.h b/src/plugins/mcusupport/mcusupport_global.h index 183f88bffaf..a4a4daba46f 100644 --- a/src/plugins/mcusupport/mcusupport_global.h +++ b/src/plugins/mcusupport/mcusupport_global.h @@ -26,6 +26,7 @@ #pragma once #include +#include #include #include #include diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp index 8a3e6758cdd..acf153ddfaa 100644 --- a/src/plugins/projectexplorer/kitinformation.cpp +++ b/src/plugins/projectexplorer/kitinformation.cpp @@ -1244,7 +1244,7 @@ void BuildDeviceKitAspect::setup(Kit *k) { QTC_ASSERT(DeviceManager::instance()->isLoaded(), return ); IDevice::ConstPtr dev = BuildDeviceKitAspect::device(k); - if (!dev.isNull() && dev->isCompatibleWith(k)) + if (!dev.isNull()) return; dev = defaultDevice(); diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp index 2d6bac7ff0f..7ad56680130 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp @@ -103,13 +103,12 @@ static QAction *createAction(const Utils::Id &id, const QString &name, const QKeySequence &shortcut) { - QString text = QString("%1 (%2)").arg(name).arg(shortcut.toString()); - 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); command->setDefaultKeySequence(shortcut); + command->augmentActionWithShortcutToolTip(action); return action; } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h index 98b55922e08..3fc405a221c 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h @@ -37,10 +37,10 @@ const int transitionEditorPropertyItemUserType = QGraphicsItem::UserType + 7; const char C_QMLTRANSITIONS[] = "QmlDesigner::Transitions"; -const char C_SETTINGS[] = "QmlDesigner.SettingsTransitions"; -const char C_CURVE_PICKER[] = "QmlDesigner.CurvePickerTransitions"; -const char C_ZOOM_IN[] = "QmlDesigner.ZoomInTransition"; -const char C_ZOOM_OUT[] = "QmlDesigner.ZoomOutTransitions"; +const char C_SETTINGS[] = "QmlDesigner.Transitions.Settings"; +const char C_CURVE_PICKER[] = "QmlDesigner.Transitions.CurvePicker"; +const char C_ZOOM_IN[] = "QmlDesigner.Transitions.ZoomIn"; +const char C_ZOOM_OUT[] = "QmlDesigner.Transitions.ZoomOut"; } // namespace TransitionEditorConstants } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp index 9d331eee876..16bec1ea05f 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp @@ -90,13 +90,13 @@ static QAction *createAction(const Utils::Id &id, const QString &name, const QKeySequence &shortcut) { - QString text = QString("%1 (%2)").arg(name).arg(shortcut.toString()); 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); command->setDefaultKeySequence(shortcut); + command->augmentActionWithShortcutToolTip(action); return action; } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp index 71aa83bfbc3..82dcb44d850 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp @@ -319,6 +319,9 @@ TransitionEditorWidget *TransitionEditorView::createWidget() if (!m_transitionEditorWidget) m_transitionEditorWidget = new TransitionEditorWidget(this); + auto *transitionContext = new TransitionContext(m_transitionEditorWidget); + Core::ICore::addContextObject(transitionContext); + return m_transitionEditorWidget; } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp index b75f9d7f874..1fe8f221ac1 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp @@ -68,6 +68,19 @@ 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(m_widget)) + widget->contextHelp(callback); +} + class Eventfilter : public QObject { public: diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h index 698c4b76aeb..0de0ee01ce1 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h @@ -49,6 +49,15 @@ class TransitionEditorToolBar; class TransitionEditorGraphicsScene; 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 { Q_OBJECT diff --git a/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp b/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp index 8c479574346..9020d58098b 100644 --- a/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp +++ b/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp @@ -169,7 +169,7 @@ void QnxDeployQtLibrariesDialog::updateProgress(const QString &progressMessage) { 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) { m_progressCount += progress; m_ui->deployProgress->setValue(m_progressCount); diff --git a/src/plugins/qnx/qnxqtversion.cpp b/src/plugins/qnx/qnxqtversion.cpp index 9bcb4ed831d..bb935987c2c 100644 --- a/src/plugins/qnx/qnxqtversion.cpp +++ b/src/plugins/qnx/qnxqtversion.cpp @@ -156,7 +156,6 @@ void QnxQtVersion::addToEnvironment(const Kit *k, Environment &env) const QtSupport::QtVersion::addToEnvironment(k, env); updateEnvironment(); env.modify(m_qnxEnv); - env.prependOrSetLibrarySearchPath(libraryPath()); } void QnxQtVersion::setupQmakeRunEnvironment(Environment &env) const