Commit Graph

169 Commits

Author SHA1 Message Date
Fabian Kosmale 22234c8a46 Remove deprecated QQmlListProperty constructor
[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>
2020-08-31 12:42:27 +02:00
Lars Schmertmann e79281533d Add ; to Q_UNUSED and UNUSED_PARAM
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>
2020-06-26 19:18:03 +02:00
Paul Olav Tvete 83fb4f6743 Clean up QT_CONFIG(opengl)
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>
2020-06-17 17:42:01 +02:00
Alexandru Croitor 350a2f48c1 CMake: Regenerate qtdeclarative/tests
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>
2020-05-29 10:01:25 +02:00
Lars Knoll cc6c5ae70b Port the remaining tests from QRegExp to QRegularExpression
Change-Id: If258701759c5da206948407feccd94e323af6b36
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-04-03 21:01:53 +02:00
Tor Arne Vestbø a5df29201f CMake: Update Apple platform defines after rename in qtbase
Change-Id: Ia0a075e3199eab735f9b289873beeb8730ebc47e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-03-17 10:42:00 +01:00
Vitaly Fanaskov 1875ad7f92 Introduce new mechanism to manage palette functionality in QML
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>
2020-03-16 14:33:24 +01:00
Alexandru Croitor 971968fb92 CMake: Fix painting benchmark dependency on OpenGLWidgets
Change-Id: Ic7ed89c51e9a3cabda60ec99702b3aacd2cf5e97
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-03-16 14:04:20 +01:00
Alexandru Croitor 510af90b9f CMake: Fix duplicate target name for qquickwindow benchmark
Change-Id: I517d52e1ac35ae5d27d3e9ed676ebebdfe980db5
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-03-16 14:04:17 +01:00
Alexandru Croitor 14492ecee2 CMake: Regenerate and adapt to merge from dev
Change-Id: If8daa6152a563d4309d7342414780ef75b9f5589
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
2020-03-12 14:05:23 +00:00
Alexandru Croitor 26c5243491 Merge remote-tracking branch 'origin/dev' into wip/cmake
Conflicts:
	dependencies.yaml
	src/qml/qml/qqmlengine.cpp

Change-Id: I6a73fd1064286f4a2232de85c2ce7f80452d4641
2020-03-12 15:03:03 +01:00
Fabian Kosmale 8e67e31a3b painting benchmark: adapt to openglwidgets split
Change-Id: I603635dfaaa455a5a66d7a791a36008f9fb9b770
Reviewed-by: Johan Helsing <johanhelsing@gmail.com>
2020-03-09 10:54:45 +01:00
Alexandru Croitor 1d4fa26a70 Regenerate qtdeclarative
Change-Id: I48d7fd306f3d1b161a8e73029282ee591b1ef612
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2020-02-12 17:30:34 +00:00
Ulf Hermann 789929f939 Use QTypeRevision for all versions and revisions
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>
2020-02-03 15:22:12 +01:00
Alexandru Croitor b134476cdb Post-merge fixes
Change-Id: I2350df5368ee34d6c7072d456806e518ce533839
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-01-30 20:45:49 +00:00
Alexandru Croitor b684ba2194 Merge remote-tracking branch 'origin/dev' into wip/cmake
Conflicts:
        dependencies.yaml

Change-Id: Ie3e9dc62031a85e5e81cbdf04694b95159d49fca
2020-01-29 16:52:58 +01:00
Qt Forward Merge Bot 649e6b762d Merge "Merge remote-tracking branch 'origin/5.15' into dev" 2020-01-20 15:39:09 +00:00
Ulf Hermann a0872e077f Explicitly link paintbenchmark against widgets
Change-Id: Ife5ef02c77e2770bc67c28952830fbafba5f5cd1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2020-01-20 16:39:09 +01:00
Qt Forward Merge Bot b9519d9630 Merge remote-tracking branch 'origin/5.15' into dev
Conflicts:
	src/qml/qml/qqmlvaluetype.cpp
	tests/auto/qml/qml.pro

Change-Id: I78f992f83212bb9fd5e09b64163f15f046185224
2020-01-20 07:04:47 +00:00
Jarek Kobus e5f7c5f271 Don't use deprecated QMatrix class anymore
Task-number: QTBUG-46653
Change-Id: I3570c84014788b7b66d9cb54b77f9964ae15af6d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-01-17 11:35:38 +01:00
Leander Beernaert 1d333d3375 Merge remote-tracking branch 'origin/dev' into wip/cmake
Change-Id: I0c5b939c70bdb91ccdf7068784308416dcaa5736
2020-01-16 16:25:06 +01:00
Ulf Hermann 1d964d5485 Port paintbenchmark to QOpenGLWidget
QGLWidget is gone.

Change-Id: Ief5d1edeff96afa739b58acbb3d83779f78d7838
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-01-09 10:08:09 +01:00
Alexandru Croitor ba494aaa24 Regenerate all projects with new CMake API version
Change-Id: Ie0db35f674137c229eaf049616f38f8e818f7092
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-11-15 12:24:51 +00:00
Alexandru Croitor 91e32f86b5 Regenerate remaining tests to be in sync
Change-Id: I200c8f58ad13bc1bc78409a3ce49348584ba5b51
Reviewed-by: Qt CMake Build Bot
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-11-15 12:24:38 +00:00
Alexandru Croitor 6a0bb9a7d6 Merge remote-tracking branch 'origin/wip/qt6' into wip/cmake
Change-Id: I4a91928610f79c8e21a05781953ffa41508c828a
2019-10-11 16:21:42 +02:00
Liang Qi 729addd82e Support standalone tests building
Also fix some build issues regarding tests.

Change-Id: Ie9ba8a0b7932ae2b542614b6c824c4071ad0b548
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-09-02 11:23:38 +00:00
Sona Kurazyan 4268258b8d Remove the last usages of deprecated APIs
- 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>
2019-08-20 11:20:47 +02:00
Leander Beernaert 4e14f6e70a Add QtDeclarative Test Coverage
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>
2019-08-14 14:01:58 +00:00
Sona Kurazyan 76880675d0 Remove usages of deprecated qSort
Task-number: QTBUG-76491
Change-Id: If8dbbc129a07bedc5970b82c6698cfcfad755b49
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2019-06-20 22:02:49 +02:00
Chris Adams b4ee855eb1 Fix tst_librarymetrics_performance benchmark
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>
2019-02-27 01:54:20 +00:00
Liang Qi 2570b801c7 Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts:
	.qmake.conf
	src/qml/compiler/qv4codegen.cpp
	src/qml/compiler/qv4compileddata_p.h
	src/qml/debugger/qqmlprofiler_p.h
	src/qml/jsruntime/qv4engine.cpp
	src/qml/memory/qv4mm.cpp
	src/qml/qml/qqmlcomponent.cpp
	src/qml/qml/qqmlobjectcreator.cpp
	src/qml/qml/qqmlobjectcreator_p.h
	src/qml/types/qqmldelegatemodel.cpp
	src/quick/items/qquickitem_p.h
	src/quick/items/qquickwindow.cpp
	tests/auto/quick/touchmouse/BLACKLIST
	tests/benchmarks/qml/holistic/tst_holistic.cpp

Change-Id: I520f349ab4b048dd337d9647113564fc257865c2
2018-01-24 09:34:11 +01:00
Allan Sandfeld Jensen 1b96186d14 Create new engine for each benchmark run
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>
2018-01-17 16:20:09 +00:00
Erik Verbruggen 0dbdfaa78d Fix holistic benchmark
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>
2018-01-02 09:52:04 +00:00
Erik Verbruggen 17d9a17db4 Fix animation benchmark
This was broken by 49a11e8820.

Change-Id: Ic7f261bce5e35b3dbcbdaf0b8718e08c56e55b39
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-01-02 09:52:02 +00:00
Alexandru Croitor 4fff2bb14e Fix QQml_setParent_noEvent not to print undefined behavior errors
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>
2017-12-18 12:02:39 +00:00
Liang Qi 853b4b08d5 Merge remote-tracking branch 'origin/5.9' into 5.10
Change-Id: I8ede7e36592cd21f3e4a0a9b30dbe26bb40fe69b
2017-11-06 18:12:53 +01:00
Frederik Gladhorn ed19f16eec Add benchmark for event delivery
Change-Id: Ic433a832190ff3e89fae696e1eabf0c7dfa57cec
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2017-11-03 11:13:33 +00:00
Thiago Macieira ee00fa01dc Update to new QRandomGenerator API
Change-Id: I69f37f9304f24709a823fffd14e676c097712329
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2017-11-03 09:12:14 +00:00
Liang Qi 15dd1b7883 Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts:
	src/qml/qml/qqmlimport.cpp
	src/qml/qml/qqmlimport_p.h
	src/qml/qml/qqmltypenamecache.cpp

Done-with: Ulf Hermann<ulf.hermann@qt.io>
Change-Id: I41ba7a592b2659ddf53da6952ea3b456a7bba319
2017-10-24 11:13:09 +02:00
Kai Koehne ea6cd0de3c Fix outdated BSD license header
Change-Id: Icc08925454445fc9497fb3bfd2c26efe90605983
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2017-10-17 11:18:11 +00:00
Thiago Macieira 2b7b24a0e0 Use QRandomGenerator instead of q?rand
Change-Id: Icd0e0d4b27cb4e5eb892fffd14b5285d43f4afbf
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-08-23 04:47:59 +00:00
Simon Hausmann 43a615e309 Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
	src/qml/compiler/qqmltypecompiler.cpp
	src/qml/jsruntime/qv4qmlcontext.cpp
	src/qml/jsruntime/qv4qobjectwrapper.cpp
	src/qml/qml/qqmlcustomparser.cpp
	src/qml/qml/qqmlimport.cpp
	src/qml/qml/qqmlimport_p.h
	src/qml/qml/qqmlmetatype.cpp
	src/qml/qml/qqmlmetatype_p.h
	src/qml/qml/qqmltypenamecache.cpp
	src/qml/qml/qqmltypenamecache_p.h
	src/qml/qml/qqmltypewrapper.cpp
	src/qml/qml/qqmltypewrapper_p.h
	src/qml/qml/qqmlvmemetaobject.cpp
	src/qml/util/qqmladaptormodel.cpp

Change-Id: Ic959d03e6f9c328fb02710d9abbb0f27cddde131
2017-08-18 11:46:11 +02:00
Lars Knoll 49a11e8820 Use QQmlType by value
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>
2017-08-02 16:32:43 +00:00
Liang Qi c254cec22a Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
	.qmake.conf
	src/qml/jsruntime/qv4argumentsobject.cpp
	src/qml/jsruntime/qv4arraydata.cpp
	src/qml/jsruntime/qv4context.cpp
	src/qml/jsruntime/qv4context_p.h
	src/qml/jsruntime/qv4errorobject.cpp
	src/qml/jsruntime/qv4functionobject.cpp
	src/qml/jsruntime/qv4internalclass.cpp
	src/qml/jsruntime/qv4lookup.cpp
	src/qml/jsruntime/qv4managed.cpp
	src/qml/jsruntime/qv4managed_p.h
	src/qml/jsruntime/qv4object.cpp
	src/qml/jsruntime/qv4object_p.h
	src/qml/jsruntime/qv4qmlcontext.cpp
	src/qml/jsruntime/qv4runtime.cpp
	src/qml/jsruntime/qv4vme_moth.cpp
	src/qml/memory/qv4heap_p.h
	src/qml/memory/qv4mm.cpp
	src/qml/memory/qv4mm_p.h
	src/qml/memory/qv4mmdefs_p.h
	src/quick/scenegraph/util/qsgdistancefieldutil.cpp
	src/quick/scenegraph/util/qsgdistancefieldutil_p.h
	tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp

Change-Id: I7ed925d4f5d308f872a58ddf51fdce0c8494ec9c
2017-06-06 15:59:38 +02:00
Erik Verbruggen 23a3018fc6 Disable particle benchmarks
They are broken. See QTBUG-60621 for details.

Task-number: QTBUG-60621
Change-Id: Ibf55c64ef1b367bc2058d1c2284cd378ffa826ec
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
2017-05-10 07:45:59 +00:00
Erik Verbruggen 9064d077e4 Fix qml file loading for tst_affectors
Change-Id: Ifb1b6f6d71d42c1642167725526c054f1dce0c90
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
2017-05-10 07:45:55 +00:00
Ulf Hermann 5346da3f11 Remove the qqmldebugtrace benchmark
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>
2017-05-08 09:49:18 +00:00
Erik Verbruggen 9abcbbd3ab Fix benchmark: remove benchmarks containing old v8 references
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>
2017-05-08 07:49:28 +00:00
Erik Verbruggen 720a88be5b Fix build of animation benchmark
This was using symbols exported only by a developer build.

Change-Id: If2e80a7f7831366a23c5c52669915385cfb3e7c6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-05-05 13:14:44 +00:00
Erik Verbruggen 63f0406cfb Another benchmark fix
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>
2017-05-05 13:14:26 +00:00