[ChangeLog][QML][QQmlListProperty] Removed deprecated QQmlListProperty
constructor taking a reference. Use the overload taking a pointer
instead.
Change-Id: I8942026d1bb1c88065659d96d648a4b256d7d427
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This is required to remove the ; from the macro with Qt 6.
Task-number: QTBUG-82978
Change-Id: Iead53d18fd790fb2d870d80ef2db79666f0d2392
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Accelerated graphics is now possible without OpenGL support. With
this change, a Qt build with -no-opengl can still run Qt Quick with
a Vulkan, Metal, or Direct3D backend.
Fixes: QTBUG-84027
Change-Id: Ib63c733d28cfdf7de16b138df136fa7628e1747b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Includes:
- new api calls
- some new dependencies
- some TARGET_DESCRIPTION
- some additional tool directory exclusion when cross-compiling
(qmlplugindump)
- some missing add_subdirectory calls
Change-Id: Iea43e45b94f37367ffc1d8dd6ce0ff1021a31b1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Main goals of these changes:
1) Add an ability to work with disabled and inactive palettes from QML
2) Eliminate massive code duplication in qtquickcontrols2 module
3) Provide easily extensible architecture for this piece of
functionality
Architectural part.
Palette
It was decided to not change existing QPalette, but add thin wrappers
around it to provide all required functionality. These wrappers are
highly coupled with QPalette class because of using some enum values
from it.
There are two new classes QQuickPalette and QQuickColorGroup.
QQuickPalette class inherits QQuickColorGroup class and represents
Active/All color group. QQuickPalette also provides an access to three
color groups: Active, Inactive, and Disabled.
In order to access colors the special class QQuickPaletteColorProvider
is used. This is a wrapper around QPalette that provides some
convenience functions.
Interface
The private property "palette" should be exposed.
Implementation
All private parts of classes that implement
QQuickAbstractPaletteProvider have to inherit
QQuickPaletteProviderPrivateBase class. This template class implement
all functionality: create palette, resolve dependencies, connect objects
etc. This is important to mention that related data is lazily
allocatable on demand only. Hence, there is no memory overhead for
regular items.
Change-Id: I911424b730451b1ad47f68fd8007953b66eddb28
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
In many places we carry major and minor versions or revisions that are
loosely coupled to minor versions. As the Qt minor version resets now,
we need to handle these things more systematically. In particular, we
need to add a "major" part to revisions.
QTypeRevision can express the current major/minor pairs more efficiently
and can also be used to add a major version to revisions. This change
does not change the semantics, yet, but only replaces the types.
Change-Id: Ie58ba8114d7e4c6427f0f28716deee71995c0d24
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
- Replaced the usages of deprecated APIs by corresponding
alternatives.
- Fixed building the tests with disabled deprecated APIs.
Task-number: QTBUG-76491
Change-Id: Ie8c5deb22c2074d39a64346c20e5384a7b2ad99b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
All tests compile and run on a developer build.
These tests are failing:
tst_qqmlsqldatabase Fails due to missing sql driver
tst_qqmlsqldatabase Fails in wip/qt6
tst_ququicklayouts Fails in wip/qt6
tst_flickableinterop Fails in wip/qt6
tst_qquickpinchandler Fails in wip/qt6
tst_qquickflickable Fails in wip/qt6
tst_qquickgridview Fails in wip/qt6
tst_qquickimage Fails due to missing jpeg plugin
tst_qquicklistview Fails in wip/qt6
tst_qquicktext Fails in wip/qt6
tst_qquickcanvasitem Fails in wip/qt6
tst_scenegraph Fails due to missing jpeg plugin
tst_TestFiltering Fails in wip/qt6
Change-Id: I4b9d69c118e23c095cb72ad5a67653fc30943bb1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Revert "tst_librarymetrics_performance: Use QBENCHMARK macro instead of rolling our own"
This reverts commit 7377e8f950.
By using QBENCHMARK in the way 7377e8f950 did, engine construction
and other unwanted side effects were included in each benchmark run.
This commit also adds more comments to document the reasons behind
using a custom benchmark harness rather than QBENCHMARK, and also to
document more precisely the purpose of each individual benchmark to
ensure that future maintainers don't accidentally introduce
side-effects into the benchmarked code sections which could
contaminate the benchmark results.
Task-number: QTBUG-43096
Change-Id: Ib917bfd5a5ac59690d2e237080f995cb646d724a
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Otherwise we end up with too many mmap'ed blocks as they appear not to
be deallocated until the engine is destroyed.
Change-Id: I88b8dd6d570423a492ddc6c7f105d0db97caa72d
Task-number: QTBUG-60590
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Each test now uses its own QQmlEngine, instead of using a single
instance across all benchmarks. The effect is that peak heap usage
(on macos) is now about 77MB, where it previously peaked at 770MB. This
benchmark would actually crash on some platforms due to excessive
malloc/mmap usage.
Change-Id: I214f7b9b3d8c5565c0578b82c9c144ec87ed0f2b
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
When building Qt with -fsanitize undefined, the usage of
QQml_setParent_noEvent caused the following error message:
"qqmlglobal_p.h:233:5: runtime error: downcast of address
0x60300061bf10 which does not point to an object of type
'QQmlGraphics_DerivedObject'".
Instead of casting to the referred type, use QObjectPrivate::get to
access the d_ptr.
Change-Id: I2f2224bdb20a8d2e35a3291961378231f03c4ba2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
QQmlType is now refcounted, and we need to use it by
value, to control it's lifetime properly. This is
required, so we can clean up the QQmlMetaTypeData
cache on engine destruction and with trimComponentCache()
Task-number: QTBUG-61536
Change-Id: If86391c86ea20a646ded7c9925d8f743f628fb91
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
They are broken. See QTBUG-60621 for details.
Task-number: QTBUG-60621
Change-Id: Ibf55c64ef1b367bc2058d1c2284cd378ffa826ec
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
It benchmarks QElapsedTimer and QDataStream. We should do this in qtbase
if we need to do it.
The test was not in the parent qml.pro, but it was mentioned in some
outdated comments in the QML profiler plugins. Remove those comments, too.
Change-Id: I0d1341c32f4a2e02a04a958f76be015fe8d927fb
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
The removed benchmarks don't make sense anymore: they were testing the
QQmlEngine part, while another test was doing the QJSEngine. These days
the QQmlEngine is a subclass of the QJSEngine and the test would call
the QJSEngine (which, as said, was already done in another benchmark).
Change-Id: Id1982dc118c399938a2dca8fb3c0a733e52fb20e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This was using symbols exported only by a developer build.
Change-Id: If2e80a7f7831366a23c5c52669915385cfb3e7c6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Again JS ownership, now shown as an attempt to free a non-malloced
pointer.
Change-Id: I00a9b1e4918da96aa5bc99a321edc94d76c4f45b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>