C
What's New in 2.8
Qt Quick Ultralite maintains source compatibility between minor releases. However, some changes may require you to adapt the application code accordingly. The following sections highlight such changes:
Important changes
Removed options from platformexporter
The following command-line options are removed from the from the platform exporter tool and similar options are added to the qmlprojectexporter
instead:
platformexporter | qmlprojectexporter |
---|---|
buildir | qul-build-dir |
outputformat | --project-type |
sdkdir | --board-sdk |
IDEsourcedir | --ide-sources-outdir |
includeIDEgeneratedHWCode | include-ide-generated-hw-code |
outdir | --platform-outdir |
For more information about exporting a platform using the qmlprojectexporter
, see Exporting a Qt for MCUs project with platform sources.
New features
- Reduce memory footprint of generated code by using static
const
arrays and loops to set constant property values. - Optimize image assets by rotating them before based on the display rotation angle, avoiding the overhead of rotating them at runtime.
- Added support for acquiring licenses from the license servers.
- Upgrades:
- STM32F469-Discovery SDK v1.28.0.
- MIMXRT1050-EVK, MIMXRT1060-EVK, MIMXRT1064-EVK, and MIMXRT1170-EVKB SDK v2.15.000.
- ARMGCC compiler 12.3.rel1.
- Embedded Template Library (ETL) v20.38.10.
- Renesas RA6 and RA8 FSP to 5.2.0.
- FreeRTOS v10.6.1 on Renesas EK-RA6M3G.
- TRAVEO T2G Cluster Series to graphics driver V2.3.0.
- FreeType version 2.13.2.
- Monotype Fontmap editor version 3.1.1.
- Added Monotype FontmapEditor support to reduce the font file size by removing the unused glyphs.
- Added the QtQuick.Layouts module with GridLayout QML type.
qmlprojectexporter
:- Added
--parallel
and-j
command-line options to parallel process the QML files. - Added CMSIS pack generator to enable generating a package of the platform sources.
- Extended support for CMake projects to include the complete application either with or without the platform sources.
- Added
- Added support for hardware accelerated JPEG decoding for TRAVEO T2G (6M).
- Added support for TRAVEO T2G 4M Lite.
- Added bitwise operator support to
qmltocpp
, enabling the use of bitwise OR (|
) operator in QML. - Added virtual keyboard support with the QtQuick.VirtualKeyboard module (Technology Preview).
Fixed issues
Qt for MCUs v2.8.3
qmltocpp
fixes:- Generate valid C++ code for enum type references in QML.
- Add extra properties in the generated code for a Component to include all attributes of the component's children. This avoids undefined behavior or crash while loading such components using a Loader.
- Extend the arg() function to also handle string parameters of the calling function. For example, a
getGreeting(sting: name)
JavaScript function callsarg()
with thename
parameter to return a greeting message. - Use correct base type information while generating code for types that inherit from the Qul::Singleton template.
- Generate the translation function only when needed. After processing all the objects in a QML file, prepend the translation code only for objects that need it.
- Fixed animation logic to avoid dependency to Qul::Application. This ensures that startup animation (that is, running set to true) doesn't fail if the Application instance is not initialized.
- Fixed crash while resizing a control if its container size is zero.
- Fixed QML Text items to avoid displaying random data when using many layers on the TRAVEO T2G platforms.
- Fixed the cache settings for
qmlprojectexporter
to include the --infineon-resource-generator option, which enables updating a project and its resources when needed. - Fixed text rendering issues with Monotype Spark font engine, on platforms that need resource alignment, such as NXP i.MX RT1170.
- Fixed Hebrew text layout for Virtual Keyboard.
- Fixed display rotation and animated sprite rendering when using partial framebuffers.
- Enabled link time optimization (LTO) also for QML modules when using the GCC toolchain, reducing footprint for applications with a lot of QML files across modules.
- Enabled
lupdate
on the Linux platform. - Fixed ArcItem to consider changes to its begin and end property values, even if their initial values are the same (no arc visible initially).
- Fixed ImageLayer to ensure correct size when using display rotation.
- Improved support for logging CYGFX_ERROR codes from the SDK on the TRAVEO T2G platforms.
Qt for MCUs v2.8.2
- Fixed the
qulrcc
host tool to render sprite animations correctly considering the display rotation angle. - Fixed the devicelink protocol support to make sure it properly handles display rotation for screenshots and touch input.
- Fixed crashes and invalid rendering when using screen rotation and the root item's size is smaller than the screen size.
- Fixed the incorrect rendering of Rectangle with gradient when using display rotation.
- Fixed a potential crash or memory corruption if a destroyed Item still holds the touch event.
- Fixed crash on using the fallback drawing engine for path blending on a
DrawingDevice
with eihter thePixelFormat_ARGB32
orPixelFormat_ARGB4444
format. - Fixed a potential crash that could happen when using multi-line StaticText with horizontal alignment and display rotation.
- Fixed AnimatedSpriteDirectory to show correctly when using display rotation.
- Fixed a crash on unloading an
Image
with a dynamic source property. - Fixed auto-wrapped text to honor
Text.horizontalAlignment
. - Fixed ARM NEON code in
drawhelper.h
. - Improved performance by preventing duplicate text metrics computation when a Text element has elide or word wrap set.
- Fixed the Infineon TRAVEO T2G CYT3DL platform to report an error instead of crashing when trying to allocate from an uninitialized HyperRAM.
- Fixed a crash in the RH850 platform that happened when using Shapes or ArcItem APIs in an
ItemLayer
with depth set toBpp32Alpha
. - Fixed the
directory
property in files nodes to take file selectors into account when exporting aqmlproject
file. - Fixed the
Layouts
module export forqmlprojectexporter
. - Fixed
qmltocpp
to prevent rebuilding of all QML files when only a single one changes, by not overwriting existing source files when their contents haven't changed. - Fixes to examples and demos:
- Fixed the missing error code return value from
tvii_convert_decoded_buffers
for Infineon TRAVEO T2G in the imagedecoder example. - Fixed the thermo-benchmark demo by adding a missing compile definition.
- Fixed the missing error code return value from
- Loader fixes:
- Fixed a compiler error with Green Hills 2015.1.7 while loading a
Component
withLoader
from QML. - Fixed a crash that happened when a
Loader
with a dynamic source or source component property got destroyed.
- Fixed a compiler error with Green Hills 2015.1.7 while loading a
- SwipeView fixes:
- Fixed
SwipeView
animations to always finish at target index when manually settingcurrentIndex
, or usingSwipeView.incrementCurrentIndex()
orSwipeView.decrementCurrentIndex()
. - Fixed
SwipeView
setCurrentIndex()
to work correctly withMouseArea
.
- Fixed
- Text cache fixes:
- Fixed text caching logic to improve caching for single-glyph Text items with the Monotype Spark font engine.
- Improved performance by freeing old text cache entries to make space for new ones to optimize usage of text cache.
Qt for MCUs v2.8.1
- Fixed screen flickering artifacts on the STM32F769I-DISCOVERY and STM32H750B-DISCOVERY boards caused by LTDC underruns if the FMC controller is blocked.
- Fixed
qulrcc
to estimate correct resource cache size for sprite animations. - Fixed error using certain TrueType fonts with the Spark font engine.
- Fixed potential compile error about incomplete type when sub-classing PaintedItemDelegate.
- Optimized the rendering stack to pre-rotate alpha maps when using screen rotation. This avoids the need to rotate and blend alpha maps at runtime.
- Fixed the platform port for Infineon TRAVEO T2G, to avoid delaying layer animation if refresh intervals is too high.
- Fixed animation logic to avoid restarting running animations on calling
start()
. qmltocpp
fixes:- Use the same convention as
lupdate
to get the context name for translatable units in the*.ui.qml
files. - Generate correct C++ code for ScriptAction instances within the scope of a Loader or lRepeater.
- Remove unnecessary call to
update()
while generating code for StaticText instances.
- Use the same convention as
qmlprojectexporter
fixes:- Add
--parallel
and-j
command-line options to parallel process the QML files. You can also define the no. of parallel jobs using theCMAKE_BUILD_PARALLEL_LEVEL
environment variable. - Fix crash due to resourceCompression enabled in a module
qmlproject
file and not in the mainqmlproject
file.
- Add
Qt for MCUs v2.8.0
- Fixes to the
fontcompiler
:- Generate quality glyph alphamaps on both Linux and Windows hosts.
- Reduce
QulFontResourceData
size slightly.
- Fixes to
qmltocpp
:- Fix crash on accessing object aliases from other QML files.
- Improve anchor binding inside a inline component if that is a sourceComponent for Loader.
- Check if a custom property uses the Component type as a binding for Loader::{souceComponent} to avoid a crash.
- Make parent property available to the inline component declaration object to avoid a crash.
- Qualify type with its module name when using it outside its module.
- Avoid using uninitialized values when generating anchors.
- Fixed error loading the QtQuick.Controls module with generateQmltypes enabled. If
qmlprojectexporter
can't find such modules, use the--qml-mappings-dir
argument to provide more information. - Fixed compilation errors in the interface files when using C++ features from the chosen C++ standard for the project. For example, if you set
CMAKE_CXX_STANDARD
to 17,qmlprojectexporter
should also know about it. - Reduced the stack memory usage for blending the transformed images. The intermediate buffers are now allocated on the heap when needed.
- Fixed layer positioning when you set display rotation angle to 90 or 270.
- Wait for interrupts instead of busy looping
exec()
to sync with the GPU. qmlprojectexporter
fixes:- Fixed the order of include paths passed to
qmltocpp
. - Include the
Shapes
,Timeline
,StudioComponents
module in the default search path.
- Fixed the order of include paths passed to
- Fixed off by one error when allocating block size for images.
- Fixed transformation support to not ignore ItemBuffers.
- Fixes to examples and demos:
- Fixed the watch demo (debug build) crash on STM32F769NI when built using the IAR toolchain.
- Fixed linking errors when building the image_cache example for Renesas RH850 on AUTOSAR.
- Fixed image decoder to avoid a crash on STM when images are smaller than the input buffer.
- Fixed stack overflow with a debug build using the IAR toolchain.
New APIs
APIs for application development
New QML Types
New QML Properties
QML Type Qt:
(since Qt Quick Ultralite 2.8) | AlignmentFlag : enumeration |
APIs for platform development
Changes in Previous Versions
- What's New in 2.7
- What's New in 2.6
- What's New in 2.5
- What's New in 2.4
- What's New in 2.3
- What's New in 2.2
- What's New in 2.1
- What's New in 2.0
- What's New in 1.9
- What's New in 1.8
- What's New in 1.7
- What's New in 1.6
- What's New in 1.5
- What's New in 1.4
- What's New in 1.3
- What's New in 1.2
- What's New in 1.1
Available under certain Qt licenses.
Find out more.