diff options
author | Jason E. Hale <jhale@FreeBSD.org> | 2024-04-30 06:06:40 +0000 |
---|---|---|
committer | Jason E. Hale <jhale@FreeBSD.org> | 2024-05-15 17:55:48 +0000 |
commit | bef8e408ff183386912e86b7c9aee21923d37a6f (patch) | |
tree | 6b45bf6d7ec61bbd3b36d349ffebab854c1ebdff | |
parent | e40c4fb1d038856c1bad8a2efec52e4947c33f1c (diff) | |
download | ports-bef8e408ff183386912e86b7c9aee21923d37a6f.tar.gz ports-bef8e408ff183386912e86b7c9aee21923d37a6f.zip |
Qt6: Update to 6.7.0
Qt 6.7 is out with lots of large and small improvements for all of us
who like to have fun when building modern applications and user
experiences, focusing on the expansion of supported platforms and
industry standards. This makes code written with Qt more sustainable
and brings more value in Qt as a long-term investment.
www/qt6-webengine is now based on Chromium version 118.0.5993.220.
Announcement: https://www.qt.io/blog/qt-6.7-released
Release note: https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.7.0/release-note.md
PySide6: Update to 6.7.0
PySide6 and its related components have been updated alongside the Qt
release for compatibility. Older versions will not build with Qt 6.7.x.
Announcement: https://www.qt.io/blog/qt-for-python-release-6.7
PyQt6: Update to 6.7.0
Minor Makefile cleanups and simplification of MASTER_SITES in pyqt.mk.
As with PySide6, older versions of PyQt6 will not build with Qt 6.7.x.
Announcement: https://www.riverbankcomputing.com/news/PyQt_v6.7.0_Released
PR: 278658
Exp-run by: antoine
MFH: 2024Q2
Security: e79cc4e2-12d7-11ef-83d8-4ccc6adda413,
c6f03ea6-12de-11ef-83d8-4ccc6adda413
823 files changed, 16192 insertions, 3789 deletions
diff --git a/Mk/Uses/pyqt.mk b/Mk/Uses/pyqt.mk index b197f1ffcfb5..c7f813075d74 100644 --- a/Mk/Uses/pyqt.mk +++ b/Mk/Uses/pyqt.mk @@ -50,28 +50,35 @@ _PYQT_VERSION= 0 PYQT_MAINTAINER= kde@FreeBSD.org MASTER_SITE_RIVERBANK= https://www.riverbankcomputing.com/static/Downloads/%SUBDIR%/ +MASTER_SITE_RBDEV= https://www.riverbankcomputing.com/pypi/packages/%SUBDIR%/ -MASTER_SITES_SIP= https://pypi.python.org/packages/source/s/sip/ -MASTER_SITES_PYQT5= https://pypi.python.org/packages/source/P/PyQt5/ -MASTER_SITES_PYQT6= https://pypi.python.org/packages/source/P/PyQt6/ +MASTER_SITES_SIP= PYPI/source/s/sip +MASTER_SITES_PYQT5= PYPI/source/P/PyQt5 +MASTER_SITES_PYQT6= PYPI/source/P/PyQt6 \ + RBDEV/PyQt6 MASTER_SITES_PYQT= ${MASTER_SITES_PYQT${_PYQT_VERSION}} -MASTER_SITES_PYQT5SIP= https://pypi.python.org/packages/source/P/PyQt5-sip/ -MASTER_SITES_PYQT6SIP= https://pypi.python.org/packages/source/P/PyQt6-sip/ +MASTER_SITES_PYQT5SIP= PYPI/source/P/PyQt5-sip +MASTER_SITES_PYQT6SIP= PYPI/source/P/PyQt6-sip MASTER_SITES_PYQTSIP= ${MASTER_SITES_PYQT${_PYQT_VERSION}SIP} -MASTER_SITES_PYQT63D= https://pypi.python.org/packages/source/P/PyQt6-3D/ +MASTER_SITES_PYQT63D= PYPI/source/P/PyQt6-3D \ + RBDEV/PyQt6-3D MASTER_SITES_PYQT3D= ${MASTER_SITES_PYQT${_PYQT_VERSION}3D} -MASTER_SITES_PYQT5CHART= https://pypi.python.org/packages/source/P/PyQtChart/ -MASTER_SITES_PYQT6CHART= https://pypi.python.org/packages/source/P/PyQt6-Charts/ +MASTER_SITES_PYQT5CHART= PYPI/source/P/PyQtChart +MASTER_SITES_PYQT6CHART= PYPI/source/P/PyQt6-Charts \ + RBDEV/PyQt6-Charts MASTER_SITES_PYQTCHART= ${MASTER_SITES_PYQT${_PYQT_VERSION}CHART} -MASTER_SITES_PYQT6DATAVIS3D= https://pypi.python.org/packages/source/P/PyQt6-DataVisualization/ +MASTER_SITES_PYQT6DATAVIS3D= PYPI/source/P/PyQt6-DataVisualization \ + RBDEV/PyQt6-DataVisualization MASTER_SITES_PYQTDATAVIS3D= ${MASTER_SITES_PYQT${_PYQT_VERSION}DATAVIS3D} -MASTER_SITES_PYQT5NETWORKAUTH= https://pypi.python.org/packages/source/P/PyQtNetworkAuth/ -MASTER_SITES_PYQT6NETWORKAUTH= https://pypi.python.org/packages/source/P/PyQt6-NetworkAuth/ -MASTER_SITES_PYQTNETWORKAUTH= ${MASTER_SITES_PYQT${_PYQT_VERSION}NETWORKAUTH} -MASTER_SITES_PYQTBUILDER= https://pypi.io/packages/source/P/PyQt-builder/ -MASTER_SITES_PYQT5WEBENGINE= https://pypi.python.org/packages/source/P/PyQtWebEngine/ -MASTER_SITES_PYQT6WEBENGINE= https://pypi.python.org/packages/source/P/PyQt6-WebEngine/ -MASTER_SITES_PYQTWEBENGINE= ${MASTER_SITES_PYQT${_PYQT_VERSION}WEBENGINE} +MASTER_SITES_PYQT5NETWORKAUTH= PYPI/source/P/PyQtNetworkAuth +MASTER_SITES_PYQT6NETWORKAUTH= PYPI/source/P/PyQt6-NetworkAuth \ + RBDEV/PyQt6-NetworkAuth +MASTER_SITES_PYQTNETWORKAUTH= ${MASTER_SITES_PYQT${_PYQT_VERSION}NETWORKAUTH} +MASTER_SITES_PYQTBUILDER= PYPI/source/P/PyQt-builder +MASTER_SITES_PYQT5WEBENGINE= PYPI/source/P/PyQtWebEngine +MASTER_SITES_PYQT6WEBENGINE= PYPI/source/P/PyQt6-WebEngine \ + RBDEV/PyQt6-WebEngine +MASTER_SITES_PYQTWEBENGINE= ${MASTER_SITES_PYQT${_PYQT_VERSION}WEBENGINE} #https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.12.0/QScintilla_src-2.12.0.tar.gz MASTER_SITES_QSCI2= RIVERBANK/QScintilla/${PORTVERSION} \ SF/pyqt/QScintilla2/QScintilla-${PORTVERSION} \ @@ -89,17 +96,19 @@ SIP_VERSION= 6.8.3 # ,1 SIP4_VERSION= 4.19.25 QSCI2_VERSION= 2.14.1 PYQT5_VERSION= 5.15.10 -PYQT6_VERSION= 6.6.1 -PYQT63D_VERSION= 6.6.0 +PYQT6_VERSION= 6.7.0 +PYQT63D_VERSION= 6.7.0 PYQT5CHART_VERSION= 5.15.6 -PYQT6CHART_VERSION= 6.6.0 -PYQT6DATAVIS3D_VERSION= 6.6.0 +PYQT6CHART_VERSION= 6.7.0 +PYQT6DATAVIS3D_VERSION= 6.7.0 PYQT5NETWORKAUTH_VERSION=5.15.5 -PYQT6NETWORKAUTH_VERSION=6.6.0 +PYQT6NETWORKAUTH_VERSION=6.7.0 PYQT5WEBENGINE_VERSION= 5.15.6 -PYQT6WEBENGINE_VERSION= 6.6.0 +PYQT6WEBENGINE_VERSION= 6.7.0 PYQT5SIP_VERSION= 12.13.0 PYQT6SIP_VERSION= 13.6.0 +# PyQt-builder >= 1.16.0 requires setuptools >= 64 +# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270358 PYQTBUILDER_VERSION= 1.15.4 SIP4_DISTNAME= sip-${SIP4_VERSION} @@ -160,10 +169,9 @@ py-webengine_PATH= ${PYQT_PY_RELNAME}-webengine>=${PYQTWEBENGINE_VERSION} # PORT py-sip_PORT= devel/py-sip -py-qtbuilder_PORT= devel/py-qtbuilder py-pysip_PORT= devel/${PYQT_RELNAME}-sip py-qscintilla2_PORT= devel/${PYQT_RELNAME}-qscintilla2 -py-positioning_PORT= devel/${PYQT_RELNAME}-positioning +py-qtbuilder_PORT= devel/py-qtbuilder py-pyqt5_PORT= devel/${PYQT_RELNAME}-pyqt py-pyqt6_PORT= devel/${PYQT_RELNAME}-pyqt py-3d_PORT= graphics/${PYQT_RELNAME}-3d diff --git a/Mk/Uses/qt-dist.mk b/Mk/Uses/qt-dist.mk index 9b0b4d5ee08e..8dd0f24fca47 100644 --- a/Mk/Uses/qt-dist.mk +++ b/Mk/Uses/qt-dist.mk @@ -83,8 +83,8 @@ _QT5_MASTER_SITES= ${MASTER_SITE_QT} _QT5_MASTER_SITE_SUBDIR= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules/ # Qt6 specific master sites _QT6_MASTER_SITES= ${MASTER_SITE_QT} -_QT6_MASTER_SITE_SUBDIR= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules \ - official_releases/additional_libraries/${_QT_VERSION:R}/${_QT_VERSION}/ +_QT6_MASTER_SITE_SUBDIR= ${_QT6_RELEASE_TYPE}_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules + # Qt5 specific distnames . if ${_QT_DIST} == webengine _QT5_DISTNAME= ${_QT_DIST:S,^,qt,:S,$,-everywhere-opensource-src-${DISTVERSION},} diff --git a/Mk/Uses/qt.mk b/Mk/Uses/qt.mk index 1a6178b62d1b..42fb1dbba3df 100644 --- a/Mk/Uses/qt.mk +++ b/Mk/Uses/qt.mk @@ -23,8 +23,17 @@ _QT_MK_INCLUDED= qt.mk # Qt versions currently supported by the framework. _QT_SUPPORTED?= 5 6 QT5_VERSION?= 5.15.13 -QT6_VERSION?= 6.6.3 -PYSIDE6_VERSION?= 6.6.2 +QT6_VERSION?= 6.7.0 +PYSIDE6_VERSION?= 6.7.0 + +# Support for intermediate Qt6 releases. This partially defines +# _QT6_MASTER_SITE_SUBDIR and would probably be better in qt-dist.mk, +# but misc/qt6-examples needs this too. +. if ${QT6_VERSION:M*beta*} || ${QT6_VERSION:M*rc*} +_QT6_RELEASE_TYPE= development +. else +_QT6_RELEASE_TYPE= official +. endif # We accept the Qt version to be passed by either or all of the three mk files. . if empty(qt_ARGS) && empty(qmake_ARGS) && empty(qt-dist_ARGS) diff --git a/accessibility/qt6-speech/distinfo b/accessibility/qt6-speech/distinfo index ee62d89d1ec3..17cd21daf010 100644 --- a/accessibility/qt6-speech/distinfo +++ b/accessibility/qt6-speech/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711660905 -SHA256 (KDE/Qt/6.6.3/qtspeech-everywhere-src-6.6.3.tar.xz) = e628f746efb17155f89c72a34f62b0c69c21b8d8d14c7ff493933fb87ec903fa -SIZE (KDE/Qt/6.6.3/qtspeech-everywhere-src-6.6.3.tar.xz) = 261976 +TIMESTAMP = 1712112642 +SHA256 (KDE/Qt/6.7.0/qtspeech-everywhere-src-6.7.0.tar.xz) = 44768eba837d48c2233ef12aab562acf2d3c531b489f4ec70124e2bb313d1f11 +SIZE (KDE/Qt/6.7.0/qtspeech-everywhere-src-6.7.0.tar.xz) = 261732 diff --git a/comms/qt6-connectivity/distinfo b/comms/qt6-connectivity/distinfo index a3da86f980dc..4188bd25b5c7 100644 --- a/comms/qt6-connectivity/distinfo +++ b/comms/qt6-connectivity/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711660910 -SHA256 (KDE/Qt/6.6.3/qtconnectivity-everywhere-src-6.6.3.tar.xz) = 091aba91a0ab4081bad880b1adfd97d38b7a6ba87ba1cce3e63e20651a71d518 -SIZE (KDE/Qt/6.6.3/qtconnectivity-everywhere-src-6.6.3.tar.xz) = 1060952 +TIMESTAMP = 1712112647 +SHA256 (KDE/Qt/6.7.0/qtconnectivity-everywhere-src-6.7.0.tar.xz) = 07afd6aac19ff73c8ba1471057f43d4ef2737d6a8a772393ec907988dd71244c +SIZE (KDE/Qt/6.7.0/qtconnectivity-everywhere-src-6.7.0.tar.xz) = 1060904 diff --git a/comms/qt6-sensors/distinfo b/comms/qt6-sensors/distinfo index 341d4929c245..6a17740fe87b 100644 --- a/comms/qt6-sensors/distinfo +++ b/comms/qt6-sensors/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711660915 -SHA256 (KDE/Qt/6.6.3/qtsensors-everywhere-src-6.6.3.tar.xz) = b235af8042250a4212a6df400c4b7899fc2905897126bc9388f2a6122a1d3765 -SIZE (KDE/Qt/6.6.3/qtsensors-everywhere-src-6.6.3.tar.xz) = 1494016 +TIMESTAMP = 1712112654 +SHA256 (KDE/Qt/6.7.0/qtsensors-everywhere-src-6.7.0.tar.xz) = 1c3015200a30a64f760818e40794df719e068fc25179e96e88993dff38f7bcab +SIZE (KDE/Qt/6.7.0/qtsensors-everywhere-src-6.7.0.tar.xz) = 1494212 diff --git a/comms/qt6-serialbus/distinfo b/comms/qt6-serialbus/distinfo index 102600809de7..ee7aaa2966d0 100644 --- a/comms/qt6-serialbus/distinfo +++ b/comms/qt6-serialbus/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711660918 -SHA256 (KDE/Qt/6.6.3/qtserialbus-everywhere-src-6.6.3.tar.xz) = 143e5afcb81a2e2a92d5c0f16679295349d0b8e1ee398230a391ca5be00ad0fb -SIZE (KDE/Qt/6.6.3/qtserialbus-everywhere-src-6.6.3.tar.xz) = 545820 +TIMESTAMP = 1712112659 +SHA256 (KDE/Qt/6.7.0/qtserialbus-everywhere-src-6.7.0.tar.xz) = 498193a9860664f8a55f676656c45af179ac13d48184af43fc58ddf795bb76dd +SIZE (KDE/Qt/6.7.0/qtserialbus-everywhere-src-6.7.0.tar.xz) = 546788 diff --git a/comms/qt6-serialport/distinfo b/comms/qt6-serialport/distinfo index 06ef26fbc2c0..f4f5afe8a382 100644 --- a/comms/qt6-serialport/distinfo +++ b/comms/qt6-serialport/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711660920 -SHA256 (KDE/Qt/6.6.3/qtserialport-everywhere-src-6.6.3.tar.xz) = e1656579e555da61cb81cbbb5ee6d31835cea110b3a5dd9e14b16fa71e55dc37 -SIZE (KDE/Qt/6.6.3/qtserialport-everywhere-src-6.6.3.tar.xz) = 270704 +TIMESTAMP = 1712112663 +SHA256 (KDE/Qt/6.7.0/qtserialport-everywhere-src-6.7.0.tar.xz) = b1f02a3d8c9cc8ba2ffa7cca3749f1f147d327e8dfc633fd4ec3cb770d7981c9 +SIZE (KDE/Qt/6.7.0/qtserialport-everywhere-src-6.7.0.tar.xz) = 270604 diff --git a/databases/qt6-base_sqldriver/distinfo b/databases/qt6-base_sqldriver/distinfo index bc3c99a06a93..3000c6da2c25 100644 --- a/databases/qt6-base_sqldriver/distinfo +++ b/databases/qt6-base_sqldriver/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711660995 -SHA256 (KDE/Qt/6.6.3/qtbase-everywhere-src-6.6.3.tar.xz) = 0493fd0b380c4edf8872f011a7f26d245aa4cdd75b349904ef340a22dedf7462 -SIZE (KDE/Qt/6.6.3/qtbase-everywhere-src-6.6.3.tar.xz) = 48784716 +TIMESTAMP = 1712112752 +SHA256 (KDE/Qt/6.7.0/qtbase-everywhere-src-6.7.0.tar.xz) = 11b2e29e2e52fb0e3b453ea13bbe51a10fdff36e1c192d8868c5a40233b8b254 +SIZE (KDE/Qt/6.7.0/qtbase-everywhere-src-6.7.0.tar.xz) = 49314276 diff --git a/devel/py-qt6-pyqt/Makefile b/devel/py-qt6-pyqt/Makefile index 86be00ae82a6..4df559c4e5e9 100644 --- a/devel/py-qt6-pyqt/Makefile +++ b/devel/py-qt6-pyqt/Makefile @@ -1,12 +1,12 @@ PORTNAME= pyqt -PORTVERSION= ${PYQT_VERSION} +DISTVERSION= ${PYQT_VERSION} CATEGORIES= devel python MASTER_SITES= ${MASTER_SITES_PYQT} PKGNAMEPREFIX= ${PYQT_PY_RELNAME}- DISTNAME= ${PYQT_DISTNAME} MAINTAINER= kde@FreeBSD.org -COMMENT= Python bindings for the Qt6 toolkit, QtCore module +COMMENT= Python bindings for the Qt6 toolkit WWW= https://riverbankcomputing.com/software/pyqt PYQT_DIST= yes @@ -17,8 +17,7 @@ BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR} RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR} USES= gl pkgconfig python pyqt:6 qt:6 -USE_GL+= gl opengl -USE_LOCALE= C.UTF-8 +USE_GL= opengl USE_PYTHON= concurrent flavors USE_PYQT= pysip qtbuilder sip USE_QT= base connectivity declarative imageformats multimedia \ diff --git a/devel/py-qt6-pyqt/distinfo b/devel/py-qt6-pyqt/distinfo index 1d1e78af0bb2..d03553ac245f 100644 --- a/devel/py-qt6-pyqt/distinfo +++ b/devel/py-qt6-pyqt/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1701802289 -SHA256 (PyQt6-6.6.1.tar.gz) = 9f158aa29d205142c56f0f35d07784b8df0be28378d20a97bcda8bd64ffd0379 -SIZE (PyQt6-6.6.1.tar.gz) = 1043203 +TIMESTAMP = 1714270793 +SHA256 (PyQt6-6.7.0.tar.gz) = 3d31b2c59dc378ee26e16586d9469842483588142fc377280aad22aaf2fa6235 +SIZE (PyQt6-6.7.0.tar.gz) = 1050408 diff --git a/devel/py-qt6-pyqt/pkg-descr b/devel/py-qt6-pyqt/pkg-descr index e94deea7a2c0..f9bc7673c880 100644 --- a/devel/py-qt6-pyqt/pkg-descr +++ b/devel/py-qt6-pyqt/pkg-descr @@ -1,2 +1,8 @@ -PyQt6 is a set of Python bindings for Qt6 application framework. -This package provides the QtCore module. +PyQt6 is a comprehensive set of Python bindings for Qt6. It is +implemented as more than 35 extension modules and enables Python +to be used as an alternative application development language to +C++ on all supported platforms. + +PyQt6 may also be embedded in C++ based applications to allow users +of those applications to configure or enhance the functionality of +those applications. diff --git a/devel/py-qt6-pyqt/pkg-plist b/devel/py-qt6-pyqt/pkg-plist index 1b92e9fe76e6..741bedcd9a28 100644 --- a/devel/py-qt6-pyqt/pkg-plist +++ b/devel/py-qt6-pyqt/pkg-plist @@ -154,6 +154,7 @@ bin/pyuic6 %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qpycore_qlist.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qpycore_qmap.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qpycore_qset.sip +%%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qpycore_std_optional.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qpycore_std_pair.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qpycore_virtual_error_handler.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qrandom.sip @@ -195,6 +196,7 @@ bin/pyuic6 %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qtranslator.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qtransposeproxymodel.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qtversion.sip +%%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qtyperevision.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qtypes.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qurl.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qurlquery.sip @@ -205,6 +207,7 @@ bin/pyuic6 %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qwaitcondition.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qwineventnotifier.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qxmlstream.sip +%%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtCore/qyieldcpu.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtDBus/QtDBus.toml %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtDBus/QtDBusmod.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtDBus/qdbusabstractadaptor.sip @@ -378,6 +381,7 @@ bin/pyuic6 %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtMultimedia/qpymultimedia_qlist.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtMultimedia/qscreencapture.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtMultimedia/qsoundeffect.sip +%%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtMultimedia/qtvideo.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtMultimedia/qvideoframe.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtMultimedia/qvideoframeformat.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtMultimedia/qvideosink.sip @@ -397,6 +401,7 @@ bin/pyuic6 %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtNetwork/qhstspolicy.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtNetwork/qhttp1configuration.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtNetwork/qhttp2configuration.sip +%%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtNetwork/qhttpheaders.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtNetwork/qhttpmultipart.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtNetwork/qlocalserver.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtNetwork/qlocalsocket.sip @@ -563,6 +568,7 @@ bin/pyuic6 %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtQuick/qsgrendernode.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtQuick/qsgsimplerectnode.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtQuick/qsgsimpletexturenode.sip +%%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtQuick/qsgtextnode.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtQuick/qsgtexture.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtQuick/qsgtexture_platform.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtQuick/qsgtexturematerial.sip @@ -634,6 +640,7 @@ bin/pyuic6 %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtSvg/QtSvgmod.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtSvg/qsvggenerator.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtSvg/qsvgrenderer.sip +%%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtSvg/qtsvgglobal.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtSvgWidgets/QtSvgWidgets.toml %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtSvgWidgets/QtSvgWidgetsmod.sip %%PYTHON_SITELIBDIR%%/PyQt6/bindings/QtSvgWidgets/qgraphicssvgitem.sip @@ -878,6 +885,8 @@ bin/pyuic6 %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/__pycache__/qscintilla%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/__pycache__/qtcharts%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/__pycache__/qtcharts%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/__pycache__/qtopenglwidgets%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/__pycache__/qtopenglwidgets%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/__pycache__/qtprintsupport%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/__pycache__/qtprintsupport%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/__pycache__/qtquickwidgets%%PYTHON_EXT_SUFFIX%%.opt-1.pyc @@ -887,6 +896,7 @@ bin/pyuic6 %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/qaxcontainer.py %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/qscintilla.py %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/qtcharts.py +%%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/qtopenglwidgets.py %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/qtprintsupport.py %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/qtquickwidgets.py %%PYTHON_SITELIBDIR%%/PyQt6/uic/widget-plugins/qtwebenginewidgets.py diff --git a/devel/pyside6-tools/Makefile b/devel/pyside6-tools/Makefile index d291d6e57606..ebcf57f007e9 100644 --- a/devel/pyside6-tools/Makefile +++ b/devel/pyside6-tools/Makefile @@ -18,15 +18,15 @@ LIB_DEPENDS= libshiboken6.abi${PYTHON_MAJOR_VER}.so:devel/shiboken6@${PY_FLAVOR} libxkbcommon.so:x11/libxkbcommon \ libzstd.so:archivers/zstd -USES= cmake gl llvm:lib python qt:6 shebangfix tar:xz -USE_GL= gl +USES= cmake gl llvm:lib,noexport python qt:6 shebangfix tar:xz +USE_GL= opengl USE_PYTHON= flavors USE_QT= base declarative languageserver tools SHEBANG_FILES= pyside_tool.py qtpy2cpp_lib/tests/baseline/basic_test.py PLIST_SUB= PYSIDE_BINDIR_REL=${PYSIDE_BINDIR_REL} -WRKSRC= ${WRKDIR}/pyside-setup-everywhere-src-${PYSIDE6_VERSION}/sources/pyside-tools +WRKSRC_SUBDIR= sources/pyside-tools PYSIDE_RELNAME= ${PORTNAME} PYSIDE_BINDIR_REL?= bin/${PYSIDE_RELNAME} @@ -41,6 +41,7 @@ post-install: @${MKDIR} ${STAGEDIR}${PREFIX}/${PYSIDE_BINDIR_REL} @${MV} ${STAGEDIR}${PREFIX}/${PYSIDE_RELNAME} ${STAGEDIR}${PREFIX}/bin # These directories contain templates that should not be byte-compiled. +# Temporarily relocate them to avoid errors. @${MV} ${STAGEDIR}${PREFIX}/${PYSIDE_BINDIR_REL}/deploy_lib/android/recipes ${WRKDIR} .for d in deploy_lib project qtpy2cpp_lib @@ -52,6 +53,8 @@ post-install: ${STAGEDIR}${PREFIX}/${PYSIDE_BINDIR_REL}/${d} .endfor +# Move the aforementioned templates back into STAGEDIR after the byte-compiling +# operation has finished. @${MV} ${WRKDIR}/recipes ${STAGEDIR}${PREFIX}/${PYSIDE_BINDIR_REL}/deploy_lib/android .include <bsd.port.mk> diff --git a/devel/pyside6-tools/distinfo b/devel/pyside6-tools/distinfo index 6db1494a2bdd..4698008effb1 100644 --- a/devel/pyside6-tools/distinfo +++ b/devel/pyside6-tools/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1708228813 -SHA256 (pyside-setup-everywhere-src-6.6.2.tar.xz) = 14620b694d7af4c978443016292d3d2108ba5dc105f4170e3b71eadcaf04c9f0 -SIZE (pyside-setup-everywhere-src-6.6.2.tar.xz) = 13975896 +TIMESTAMP = 1714321552 +SHA256 (pyside-setup-everywhere-src-6.7.0.tar.xz) = 82eae370737df5ecf539c165d09d7c81d5fc6153a541b8d3d37b11275f9e3e8f +SIZE (pyside-setup-everywhere-src-6.7.0.tar.xz) = 14382456 diff --git a/devel/pyside6-tools/pkg-plist b/devel/pyside6-tools/pkg-plist index 3588c387efa4..11d945b6bae8 100644 --- a/devel/pyside6-tools/pkg-plist +++ b/devel/pyside6-tools/pkg-plist @@ -8,6 +8,8 @@ %%PYSIDE_BINDIR_REL%%/deploy_lib/__pycache__/commands%%PYTHON_EXT_SUFFIX%%.pyc %%PYSIDE_BINDIR_REL%%/deploy_lib/__pycache__/config%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYSIDE_BINDIR_REL%%/deploy_lib/__pycache__/config%%PYTHON_EXT_SUFFIX%%.pyc +%%PYSIDE_BINDIR_REL%%/deploy_lib/__pycache__/dependency_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYSIDE_BINDIR_REL%%/deploy_lib/__pycache__/dependency_util%%PYTHON_EXT_SUFFIX%%.pyc %%PYSIDE_BINDIR_REL%%/deploy_lib/__pycache__/deploy_util%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYSIDE_BINDIR_REL%%/deploy_lib/__pycache__/deploy_util%%PYTHON_EXT_SUFFIX%%.pyc %%PYSIDE_BINDIR_REL%%/deploy_lib/__pycache__/nuitka_helper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc @@ -31,6 +33,7 @@ %%PYSIDE_BINDIR_REL%%/deploy_lib/commands.py %%PYSIDE_BINDIR_REL%%/deploy_lib/config.py %%PYSIDE_BINDIR_REL%%/deploy_lib/default.spec +%%PYSIDE_BINDIR_REL%%/deploy_lib/dependency_util.py %%PYSIDE_BINDIR_REL%%/deploy_lib/deploy_util.py %%PYSIDE_BINDIR_REL%%/deploy_lib/nuitka_helper.py %%PYSIDE_BINDIR_REL%%/deploy_lib/pyside_icon.icns diff --git a/devel/pyside6/Makefile b/devel/pyside6/Makefile index 232d6cd0cabe..28c40a7c11ec 100644 --- a/devel/pyside6/Makefile +++ b/devel/pyside6/Makefile @@ -5,28 +5,33 @@ MASTER_SITES= QT/official_releases/QtForPython/shiboken6/PySide6-${DISTVERSION}- PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= pyside-setup-everywhere-src-${DISTVERSION} +PATCH_SITES= https://github.com/qtproject/pyside-pyside-setup/commit/ +PATCHFILES+= 3b2ad15ec75b082699dbde6c695c19b467eb0008.patch:-p1 # Adapt to revert of QAudio->QtAudio namespace renaming + MAINTAINER= kde@FreeBSD.org COMMENT= Python Qt bindings for Qt 6 WWW= https://wiki.qt.io/Qt_for_Python LICENSE= LGPL3 +BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers LIB_DEPENDS= libshiboken6.abi${PYTHON_MAJOR_VER}.so:devel/shiboken6@${PY_FLAVOR} \ libxkbcommon.so:x11/libxkbcommon -USES= cmake gl llvm:lib python qt:6 tar:xz -USE_GL= gl +USES= cmake gl llvm:lib,noexport python qt:6 tar:xz +USE_GL= opengl USE_LDCONFIG= yes USE_PYTHON= flavors USE_QT= 3d base charts connectivity datavis3d declarative doc graphs \ httpserver imageformats location multimedia networkauth pdf \ positioning quick3d quicktimeline remoteobjects scxml sensors \ serialbus serialport shadertools speech svg tools translations \ - wayland webchannel websockets + webchannel websockets -CMAKE_ARGS= -DPYTHON_EXECUTABLE=${PYTHON_CMD} +CONFIGURE_ENV= LLVM_INSTALL_DIR="${LLVM_PREFIX}/lib/cmake/llvm" -WRKSRC= ${WRKDIR}/pyside-setup-everywhere-src-${PYSIDE6_VERSION}/sources/pyside6 +PATCH_WRKSRC= ${WRKSRC:H:H} +WRKSRC_SUBDIR= sources/pyside6 PLIST_SUB= DISTVERSION=${DISTVERSION} .include <bsd.port.pre.mk> diff --git a/devel/pyside6/distinfo b/devel/pyside6/distinfo index 52d7922c624b..5c3bcc4bb142 100644 --- a/devel/pyside6/distinfo +++ b/devel/pyside6/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1708228795 -SHA256 (pyside-setup-everywhere-src-6.6.2.tar.xz) = 14620b694d7af4c978443016292d3d2108ba5dc105f4170e3b71eadcaf04c9f0 -SIZE (pyside-setup-everywhere-src-6.6.2.tar.xz) = 13975896 +TIMESTAMP = 1714344956 +SHA256 (pyside-setup-everywhere-src-6.7.0.tar.xz) = 82eae370737df5ecf539c165d09d7c81d5fc6153a541b8d3d37b11275f9e3e8f +SIZE (pyside-setup-everywhere-src-6.7.0.tar.xz) = 14382456 +SHA256 (3b2ad15ec75b082699dbde6c695c19b467eb0008.patch) = 9fe5ce2d8e8fa1d90069dc9c9ccf86ef40e2fbf393c348822eea9afe697b2ec6 +SIZE (3b2ad15ec75b082699dbde6c695c19b467eb0008.patch) = 10764 diff --git a/devel/pyside6/files/patch-cmake_Macros_PySideModules.cmake b/devel/pyside6/files/patch-sources_pyside6_cmake_Macros_PySideModules.cmake index beb57e5a20cf..ae379547d829 100644 --- a/devel/pyside6/files/patch-cmake_Macros_PySideModules.cmake +++ b/devel/pyside6/files/patch-sources_pyside6_cmake_Macros_PySideModules.cmake @@ -1,5 +1,5 @@ ---- cmake/Macros/PySideModules.cmake.orig 2023-11-27 12:04:49 UTC -+++ cmake/Macros/PySideModules.cmake +--- sources/pyside6/cmake/Macros/PySideModules.cmake.orig 2023-11-27 12:04:49 UTC ++++ sources/pyside6/cmake/Macros/PySideModules.cmake @@ -107,7 +107,7 @@ macro(create_pyside_module) get_target_property(qt_core_includes Qt${QT_MAJOR_VERSION}::Core INTERFACE_INCLUDE_DIRECTORIES) diff --git a/devel/pyside6/pkg-plist b/devel/pyside6/pkg-plist index 1d610064f5d5..7cd3b16bd011 100644 --- a/devel/pyside6/pkg-plist +++ b/devel/pyside6/pkg-plist @@ -8,6 +8,7 @@ include/PySide6/QtBluetooth/pyside6_qtbluetooth_python.h include/PySide6/QtCharts/pyside6_qtcharts_python.h include/PySide6/QtConcurrent/pyside6_qtconcurrent_python.h include/PySide6/QtCore/pyside6_qtcore_python.h +include/PySide6/QtCore/qiopipe.h include/PySide6/QtCore/qtcorehelper.h include/PySide6/QtDBus/pyside6_qtdbus_python.h include/PySide6/QtDBus/qtdbushelper.h @@ -38,6 +39,7 @@ include/PySide6/QtQml/pyside6_qtqml_python.h include/PySide6/QtQuick/pyside6_qtquick_python.h include/PySide6/QtQuick3D/pyside6_qtquick3d_python.h include/PySide6/QtQuickControls2/pyside6_qtquickcontrols2_python.h +include/PySide6/QtQuickTest/pyside6_qtquicktest_python.h include/PySide6/QtQuickWidgets/pyside6_qtquickwidgets_python.h include/PySide6/QtRemoteObjects/pyside6_qtremoteobjects_python.h include/PySide6/QtScxml/pyside6_qtscxml_python.h @@ -117,10 +119,10 @@ lib/cmake/PySide6Qml/PySide6QmlConfigVersion.cmake lib/cmake/PySide6Qml/PySide6QmlTargets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/PySide6Qml/PySide6QmlTargets.cmake lib/libpyside6.abi3.so -lib/libpyside6.abi3.so.6.6 +lib/libpyside6.abi3.so.6.7 lib/libpyside6.abi3.so.%%DISTVERSION%% lib/libpyside6qml.abi3.so -lib/libpyside6qml.abi3.so.6.6 +lib/libpyside6qml.abi3.so.6.7 lib/libpyside6qml.abi3.so.%%DISTVERSION%% %%PYTHON_SITELIBDIR%%/PySide6/Qt3DAnimation.abi3.so %%PYTHON_SITELIBDIR%%/PySide6/Qt3DAnimation.pyi @@ -201,6 +203,8 @@ lib/libpyside6qml.abi3.so.%%DISTVERSION%% %%PYTHON_SITELIBDIR%%/PySide6/QtQuick3D.pyi %%PYTHON_SITELIBDIR%%/PySide6/QtQuickControls2.abi3.so %%PYTHON_SITELIBDIR%%/PySide6/QtQuickControls2.pyi +%%PYTHON_SITELIBDIR%%/PySide6/QtQuickTest.abi3.so +%%PYTHON_SITELIBDIR%%/PySide6/QtQuickTest.pyi %%PYTHON_SITELIBDIR%%/PySide6/QtQuickWidgets.abi3.so %%PYTHON_SITELIBDIR%%/PySide6/QtQuickWidgets.pyi %%PYTHON_SITELIBDIR%%/PySide6/QtRemoteObjects.abi3.so @@ -273,9 +277,11 @@ share/PySide6/glue/qtmultimedia.cpp share/PySide6/glue/qtnetwork.cpp share/PySide6/glue/qtnetworkauth.cpp share/PySide6/glue/qtopengl.cpp +share/PySide6/glue/qtpositioning.cpp share/PySide6/glue/qtprintsupport.cpp share/PySide6/glue/qtqml.cpp share/PySide6/glue/qtquick.cpp +share/PySide6/glue/qtquicktest.cpp share/PySide6/glue/qtserialbus.cpp share/PySide6/glue/qtsql.cpp share/PySide6/glue/qtstatemachine.cpp @@ -360,6 +366,7 @@ share/PySide6/typesystems/typesystem_qml.xml share/PySide6/typesystems/typesystem_quick.xml share/PySide6/typesystems/typesystem_quick3d.xml share/PySide6/typesystems/typesystem_quickcontrols2.xml +share/PySide6/typesystems/typesystem_quicktest.xml share/PySide6/typesystems/typesystem_quickwidgets.xml share/PySide6/typesystems/typesystem_remoteobjects.xml share/PySide6/typesystems/typesystem_scxml.xml diff --git a/devel/qt6-5compat/distinfo b/devel/qt6-5compat/distinfo index 55282398ffde..06a74a6ace18 100644 --- a/devel/qt6-5compat/distinfo +++ b/devel/qt6-5compat/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661020 -SHA256 (KDE/Qt/6.6.3/qt5compat-everywhere-src-6.6.3.tar.xz) = 68c2cf4e5eabfea27626fe40d088cb0dbb2c0414d3961ef132b7e06c60ceec0b -SIZE (KDE/Qt/6.6.3/qt5compat-everywhere-src-6.6.3.tar.xz) = 14634848 +TIMESTAMP = 1712112788 +SHA256 (KDE/Qt/6.7.0/qt5compat-everywhere-src-6.7.0.tar.xz) = 9d49d4fd8345d8a40b63e0b65cd49c1d8286e33a7f1409bf1316763f654e19f5 +SIZE (KDE/Qt/6.7.0/qt5compat-everywhere-src-6.7.0.tar.xz) = 14629204 diff --git a/devel/qt6-base/Makefile b/devel/qt6-base/Makefile index 048dc7a6f13c..d1ac58883186 100644 --- a/devel/qt6-base/Makefile +++ b/devel/qt6-base/Makefile @@ -3,6 +3,9 @@ DISTVERSION= ${QT6_VERSION} CATEGORIES= devel PKGNAMEPREFIX= qt6- +PATCH_SITES= https://github.com/qt/qtbase/commit/ +PATCHFILES+= 7c4e1357e49baebdd2d20710fccb5604cbb36c0d.patch:-p1 # CVE-2024-33861 + MAINTAINER= kde@FreeBSD.org COMMENT= Qt base (core, gui, widgets, network,...) @@ -55,7 +58,6 @@ CMAKE_OFF+= FEATURE_sql_mysql \ SHEBANG_FILES= ${WRKSRC}/mkspecs/features/uikit/device_destinations.sh \ ${WRKSRC}/mkspecs/features/uikit/devices.py \ ${WRKSRC}/mkspecs/features/data/mac/objc_namespace.sh \ - ${WRKSRC}/util/android/android_emulator_launcher.sh \ ${WRKSRC}/util/testrunner/qt-testrunner.py \ ${WRKSRC}/util/testrunner/sanitizer-testrunner.py USE_LDCONFIG= ${PREFIX}/${QT_LIBDIR_REL} diff --git a/devel/qt6-base/distinfo b/devel/qt6-base/distinfo index 356bc1c3352b..8fc9397acc46 100644 --- a/devel/qt6-base/distinfo +++ b/devel/qt6-base/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1711661021 -SHA256 (KDE/Qt/6.6.3/qtbase-everywhere-src-6.6.3.tar.xz) = 0493fd0b380c4edf8872f011a7f26d245aa4cdd75b349904ef340a22dedf7462 -SIZE (KDE/Qt/6.6.3/qtbase-everywhere-src-6.6.3.tar.xz) = 48784716 +TIMESTAMP = 1715748396 +SHA256 (KDE/Qt/6.7.0/qtbase-everywhere-src-6.7.0.tar.xz) = 11b2e29e2e52fb0e3b453ea13bbe51a10fdff36e1c192d8868c5a40233b8b254 +SIZE (KDE/Qt/6.7.0/qtbase-everywhere-src-6.7.0.tar.xz) = 49314276 +SHA256 (KDE/Qt/6.7.0/7c4e1357e49baebdd2d20710fccb5604cbb36c0d.patch) = fa921cb0eb73ed23a0a5c6cfaf10da2116511b60f2e49c8c406eef516363d228 +SIZE (KDE/Qt/6.7.0/7c4e1357e49baebdd2d20710fccb5604cbb36c0d.patch) = 6164 diff --git a/devel/qt6-base/files/patch-cmake_QtBuildPathsHelpers.cmake b/devel/qt6-base/files/patch-cmake_QtBuildPathsHelpers.cmake index 8df0968ae885..d1c33877dc66 100644 --- a/devel/qt6-base/files/patch-cmake_QtBuildPathsHelpers.cmake +++ b/devel/qt6-base/files/patch-cmake_QtBuildPathsHelpers.cmake @@ -1,4 +1,4 @@ ---- cmake/QtBuildPathsHelpers.cmake.orig 2024-02-08 16:01:05 UTC +--- cmake/QtBuildPathsHelpers.cmake.orig 2023-09-15 10:20:51 UTC +++ cmake/QtBuildPathsHelpers.cmake @@ -100,7 +100,7 @@ function(qt_internal_setup_build_and_install_paths) if(QT_CONFIG_INSTALL_DIR) diff --git a/devel/qt6-base/files/patch-cmake_QtFlagHandlingHelpers.cmake b/devel/qt6-base/files/patch-cmake_QtFlagHandlingHelpers.cmake index a1e02bb2b362..39f338bc0a6a 100644 --- a/devel/qt6-base/files/patch-cmake_QtFlagHandlingHelpers.cmake +++ b/devel/qt6-base/files/patch-cmake_QtFlagHandlingHelpers.cmake @@ -1,6 +1,6 @@ ---- cmake/QtFlagHandlingHelpers.cmake.orig 2023-11-15 13:58:42 UTC +--- cmake/QtFlagHandlingHelpers.cmake.orig 2023-09-15 10:20:51 UTC +++ cmake/QtFlagHandlingHelpers.cmake -@@ -132,6 +132,10 @@ function(qt_internal_add_link_flags_no_undefined targe +@@ -167,6 +167,10 @@ function(qt_internal_add_link_flags_no_undefined targe set(no_undefined_flag "-Wl,--no-undefined") endif() diff --git a/devel/qt6-base/files/patch-src_corelib_global_qcompare.h b/devel/qt6-base/files/patch-src_corelib_global_qcompare.h new file mode 100644 index 000000000000..dca740aacab1 --- /dev/null +++ b/devel/qt6-base/files/patch-src_corelib_global_qcompare.h @@ -0,0 +1,37 @@ +Also disable spurious zero as null pointer constant warnings for Clang which +are errors in www/dooble due to -Werror being passed. + +--- src/corelib/global/qcompare.h.orig 2024-01-22 10:20:09 UTC ++++ src/corelib/global/qcompare.h +@@ -195,6 +195,7 @@ class partial_ordering (private) + + QT_WARNING_PUSH + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100903 ++ QT_WARNING_DISABLE_CLANG("-Wzero-as-null-pointer-constant") + QT_WARNING_DISABLE_GCC("-Wzero-as-null-pointer-constant") + friend constexpr bool is_eq (partial_ordering o) noexcept { return o == 0; } + friend constexpr bool is_neq (partial_ordering o) noexcept { return o != 0; } +@@ -380,6 +381,7 @@ class weak_ordering (private) + + QT_WARNING_PUSH + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100903 ++ QT_WARNING_DISABLE_CLANG("-Wzero-as-null-pointer-constant") + QT_WARNING_DISABLE_GCC("-Wzero-as-null-pointer-constant") + friend constexpr bool is_eq (weak_ordering o) noexcept { return o == 0; } + friend constexpr bool is_neq (weak_ordering o) noexcept { return o != 0; } +@@ -575,6 +577,7 @@ class strong_ordering (public) + + QT_WARNING_PUSH + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100903 ++ QT_WARNING_DISABLE_CLANG("-Wzero-as-null-pointer-constant") + QT_WARNING_DISABLE_GCC("-Wzero-as-null-pointer-constant") + friend constexpr bool is_eq (strong_ordering o) noexcept { return o == 0; } + friend constexpr bool is_neq (strong_ordering o) noexcept { return o != 0; } +@@ -859,6 +862,7 @@ class QPartialOrdering (private) + + QT_WARNING_PUSH + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100903 ++ QT_WARNING_DISABLE_CLANG("-Wzero-as-null-pointer-constant") + QT_WARNING_DISABLE_GCC("-Wzero-as-null-pointer-constant") + friend constexpr bool is_eq (QPartialOrdering o) noexcept { return o == 0; } + friend constexpr bool is_neq (QPartialOrdering o) noexcept { return o != 0; } diff --git a/devel/qt6-base/files/patch-src_corelib_global_qcomparehelpers.h b/devel/qt6-base/files/patch-src_corelib_global_qcomparehelpers.h new file mode 100644 index 000000000000..f28c5a926a13 --- /dev/null +++ b/devel/qt6-base/files/patch-src_corelib_global_qcomparehelpers.h @@ -0,0 +1,49 @@ +Suppress spurious zero as null pointer constant warnings which cause errors +in www/dooble due to -Werror being passed. This is the same problem as in +qcompare.h that upstream suppresses for GCC. + +/usr/local/include/qt6/QtCore/qfloat16.h:209:5: error: zero as null pointer constant [-Werror,-Wzero-as-null-pointer-constant] +... +/usr/local/include/qt6/QtCore/qcomparehelpers.h:211:43: note: expanded from macro 'QT_DECLARE_ORDERING_HELPER_TEMPLATE' + 211 | { return compareThreeWay(lhs, rhs) >= 0; } + +--- src/corelib/global/qcomparehelpers.h.orig 2024-01-22 10:20:09 UTC ++++ src/corelib/global/qcomparehelpers.h +@@ -197,6 +197,8 @@ template <typename In> constexpr auto to_Qt(In in) noe + { return !comparesEqual(rhs, lhs); } + + #define QT_DECLARE_ORDERING_HELPER_TEMPLATE(OrderingType, LeftType, RightType, Constexpr) \ ++ QT_WARNING_PUSH \ ++ QT_WARNING_DISABLE_CLANG("-Wzero-as-null-pointer-constant") \ + friend Constexpr bool operator<(LeftType const &lhs, RightType const &rhs) \ + noexcept(noexcept(compareThreeWay(lhs, rhs))) \ + { return compareThreeWay(lhs, rhs) < 0; } \ +@@ -208,7 +210,8 @@ template <typename In> constexpr auto to_Qt(In in) noe + { return compareThreeWay(lhs, rhs) <= 0; } \ + friend Constexpr bool operator>=(LeftType const &lhs, RightType const &rhs) \ + noexcept(noexcept(compareThreeWay(lhs, rhs))) \ +- { return compareThreeWay(lhs, rhs) >= 0; } ++ { return compareThreeWay(lhs, rhs) >= 0; } \ ++ QT_WARNING_POP + + #define QT_DECLARE_ORDERING_HELPER_PARTIAL(LeftType, RightType, Constexpr) \ + QT_DECLARE_ORDERING_HELPER_TEMPLATE(Qt::partial_ordering, LeftType, RightType, Constexpr) +@@ -225,6 +228,8 @@ template <typename In> constexpr auto to_Qt(In in) noe + + // Helpers for reversed ordering, using the existing compareThreeWay() function. + #define QT_DECLARE_REVERSED_ORDERING_HELPER_TEMPLATE(OrderingType, LeftType, RightType, Constexpr) \ ++ QT_WARNING_PUSH \ ++ QT_WARNING_DISABLE_CLANG("-Wzero-as-null-pointer-constant") \ + friend Constexpr bool operator<(RightType const &lhs, LeftType const &rhs) \ + noexcept(noexcept(compareThreeWay(rhs, lhs))) \ + { return compareThreeWay(rhs, lhs) > 0; } \ +@@ -236,7 +241,8 @@ template <typename In> constexpr auto to_Qt(In in) noe + { return compareThreeWay(rhs, lhs) >= 0; } \ + friend Constexpr bool operator>=(RightType const &lhs, LeftType const &rhs) \ + noexcept(noexcept(compareThreeWay(rhs, lhs))) \ +- { return compareThreeWay(rhs, lhs) <= 0; } ++ { return compareThreeWay(rhs, lhs) <= 0; } \ ++ QT_WARNING_POP + + #define QT_DECLARE_REVERSED_ORDERING_HELPER_PARTIAL(LeftType, RightType, Constexpr) \ + QT_DECLARE_REVERSED_ORDERING_HELPER_TEMPLATE(Qt::partial_ordering, LeftType, RightType, Constexpr) diff --git a/devel/qt6-base/files/patch-src_corelib_global_qcompilerdetection.h b/devel/qt6-base/files/patch-src_corelib_global_qcompilerdetection.h new file mode 100644 index 000000000000..6766a7584185 --- /dev/null +++ b/devel/qt6-base/files/patch-src_corelib_global_qcompilerdetection.h @@ -0,0 +1,18 @@ +Suppress warnings when -pedantic is passed and using std < c++20, which could +also be errors if -Werror is also passed as is the case with www/dooble. + +error: use of the 'nodiscard' attribute is a C++20 extension + +https://github.com/llvm/llvm-project/issues/32865 + +--- src/corelib/global/qcompilerdetection.h.orig 2024-01-22 10:20:09 UTC ++++ src/corelib/global/qcompilerdetection.h +@@ -964,7 +964,7 @@ + # define Q_REQUIRED_RESULT [[nodiscard]] + #endif + +-#if __has_cpp_attribute(nodiscard) >= 201907L /* used for both P1771 and P1301... */ ++#if __has_cpp_attribute(nodiscard) >= 201907L && (!defined(Q_CC_CLANG) || __cplusplus >= 201907L) /* used for both P1771 and P1301... */ + // [[nodiscard]] constructor (P1771) + # ifndef Q_NODISCARD_CTOR + # define Q_NODISCARD_CTOR [[nodiscard]] diff --git a/devel/qt6-base/files/patch-src_corelib_tools_qspan.h b/devel/qt6-base/files/patch-src_corelib_tools_qspan.h new file mode 100644 index 000000000000..287d7ae418f0 --- /dev/null +++ b/devel/qt6-base/files/patch-src_corelib_tools_qspan.h @@ -0,0 +1,15 @@ +Fix warning which causes error in www/dooble due to -Werror being set. + +/usr/local/include/qt6/QtCore/qspan.h:278:5: error: '__cpp_lib_span' is not defined, evaluates to 0 + +--- src/corelib/tools/qspan.h.orig 2024-01-22 10:20:09 UTC ++++ src/corelib/tools/qspan.h +@@ -275,7 +275,7 @@ class QSpanBase<T, q20::dynamic_extent> : protected QS + : QSpanBase(other.data(), other.size()) + {} + +-#if __cpp_lib_span ++#ifdef __cpp_lib_span + template <typename S, size_t N, if_qualification_conversion<S> = true> + Q_IMPLICIT constexpr QSpanBase(std::span<S, N> other) noexcept + : QSpanBase(other.data(), other.size()) diff --git a/devel/qt6-base/files/patch-src_platformsupport_input_evdevtouch_qevdevtouchhandler.cpp b/devel/qt6-base/files/patch-src_platformsupport_input_evdevtouch_qevdevtouchhandler.cpp index 15331f44334e..1fae16c7af55 100644 --- a/devel/qt6-base/files/patch-src_platformsupport_input_evdevtouch_qevdevtouchhandler.cpp +++ b/devel/qt6-base/files/patch-src_platformsupport_input_evdevtouch_qevdevtouchhandler.cpp @@ -1,6 +1,6 @@ ---- src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp.orig 2023-09-21 19:24:26 UTC +--- src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp.orig 2023-09-15 10:20:51 UTC +++ src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp -@@ -17,11 +17,7 @@ +@@ -19,11 +19,7 @@ #include <mutex> diff --git a/devel/qt6-base/files/patch-src_plugins_tls_openssl_qsslcontext__openssl.cpp b/devel/qt6-base/files/patch-src_plugins_tls_openssl_qsslcontext__openssl.cpp index 3f0e8a5a8dc0..3f65f6206cf6 100644 --- a/devel/qt6-base/files/patch-src_plugins_tls_openssl_qsslcontext__openssl.cpp +++ b/devel/qt6-base/files/patch-src_plugins_tls_openssl_qsslcontext__openssl.cpp @@ -1,4 +1,4 @@ ---- src/plugins/tls/openssl/qsslcontext_openssl.cpp.orig 2023-09-21 19:24:26 UTC +--- src/plugins/tls/openssl/qsslcontext_openssl.cpp.orig 2023-09-15 10:20:51 UTC +++ src/plugins/tls/openssl/qsslcontext_openssl.cpp @@ -49,9 +49,9 @@ extern "C" int q_verify_cookie_callback(SSL *ssl, cons } @@ -41,7 +41,7 @@ #if QT_CONFIG(dtls) // DTLS cookies: -@@ -758,6 +760,7 @@ void QSslContext::applyBackendConfig(QSslContext *sslC +@@ -760,6 +762,7 @@ void QSslContext::applyBackendConfig(QSslContext *sslC } #endif // ocsp @@ -49,7 +49,7 @@ QSharedPointer<SSL_CONF_CTX> cctx(q_SSL_CONF_CTX_new(), &q_SSL_CONF_CTX_free); if (cctx) { q_SSL_CONF_CTX_set_ssl_ctx(cctx.data(), sslContext->ctx); -@@ -804,7 +807,9 @@ void QSslContext::applyBackendConfig(QSslContext *sslC +@@ -806,7 +809,9 @@ void QSslContext::applyBackendConfig(QSslContext *sslC sslContext->errorStr = msgErrorSettingBackendConfig(QSslSocket::tr("SSL_CONF_finish() failed")); sslContext->errorCode = QSslError::UnspecifiedError; } diff --git a/devel/qt6-base/files/patch-src_plugins_tls_openssl_qsslsocket__openssl__symbols__p.h b/devel/qt6-base/files/patch-src_plugins_tls_openssl_qsslsocket__openssl__symbols__p.h index 911ffd8d9f99..565d27f71f8f 100644 --- a/devel/qt6-base/files/patch-src_plugins_tls_openssl_qsslsocket__openssl__symbols__p.h +++ b/devel/qt6-base/files/patch-src_plugins_tls_openssl_qsslsocket__openssl__symbols__p.h @@ -1,4 +1,4 @@ ---- src/plugins/tls/openssl/qsslsocket_openssl_symbols_p.h.orig 2023-09-13 16:02:48 UTC +--- src/plugins/tls/openssl/qsslsocket_openssl_symbols_p.h.orig 2023-09-15 10:20:51 UTC +++ src/plugins/tls/openssl/qsslsocket_openssl_symbols_p.h @@ -46,6 +46,13 @@ QT_BEGIN_NAMESPACE @@ -78,7 +78,7 @@ void q_SSL_free(SSL *a); STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a); const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a); -@@ -536,14 +568,26 @@ void q_PKCS12_free(PKCS12 *pkcs12); +@@ -537,14 +569,26 @@ void q_PKCS12_free(PKCS12 *pkcs12); #define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp) #define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) #define q_SSL_CTX_set_mode(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) @@ -105,7 +105,7 @@ #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i)) #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \ q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) -@@ -645,7 +689,11 @@ int q_OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash +@@ -646,7 +690,11 @@ int q_OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash int q_OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, ASN1_OCTET_STRING **pikeyHash, ASN1_INTEGER **pserial, OCSP_CERTID *cid); @@ -117,7 +117,7 @@ OCSP_CERTID *q_OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer); void q_OCSP_CERTID_free(OCSP_CERTID *cid); int q_OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b); -@@ -664,8 +712,15 @@ void *q_CRYPTO_malloc(size_t num, const char *file, in +@@ -665,8 +713,15 @@ void *q_CRYPTO_malloc(size_t num, const char *file, in void *q_CRYPTO_malloc(size_t num, const char *file, int line); #define q_OPENSSL_malloc(num) q_CRYPTO_malloc(num, "", 0) @@ -133,7 +133,7 @@ int q_CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); void q_SSL_set_info_callback(SSL *ssl, void (*cb) (const SSL *ssl, int type, int val)); -@@ -729,7 +784,11 @@ int q_RSA_bits(RSA *a); +@@ -730,7 +785,11 @@ int q_RSA_bits(RSA *a); int q_DH_bits(DH *dh); int q_RSA_bits(RSA *a); diff --git a/devel/qt6-base/pkg-plist b/devel/qt6-base/pkg-plist index f9441889733f..4f219c9874f8 100644 --- a/devel/qt6-base/pkg-plist +++ b/devel/qt6-base/pkg-plist @@ -30,7 +30,6 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qabstractitemmodel_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qabstractproxymodel_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qanimationgroup_p.h -%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qatomicscopedvaluerollback_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qbytearray_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qbytedata_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcalendarbackend_p.h @@ -42,6 +41,7 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcore_unix_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcoreapplication_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcorecmdlineargs_p.h +%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qcoreevent_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qdatastream_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qdataurl_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qdatetime_p.h @@ -72,6 +72,7 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qfsfileengine_iterator_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qfsfileengine_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qfunctions_p.h +%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qfutex_freebsd_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qfutex_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qfutureinterface_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qfuturewatcher_p.h @@ -144,6 +145,7 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qsharedmemory_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qsimd_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qsimd_x86_p.h +%%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qsingleshottimer_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qspan_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qstorageinfo_p.h %%QT_INCDIR%%/QtCore/%%FULLVER%%/QtCore/private/qstringalgorithms_p.h @@ -200,6 +202,7 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/QAtomicInt %%QT_INCDIR%%/QtCore/QAtomicInteger %%QT_INCDIR%%/QtCore/QAtomicPointer +%%QT_INCDIR%%/QtCore/QAtomicScopedValueRollback %%QT_INCDIR%%/QtCore/QBEInteger %%QT_INCDIR%%/QtCore/QBaseIterator %%QT_INCDIR%%/QtCore/QBasicMutex @@ -252,7 +255,6 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/QDeadlineTimer %%QT_INCDIR%%/QtCore/QDebug %%QT_INCDIR%%/QtCore/QDebugStateSaver -%%QT_INCDIR%%/QtCore/QDeferredDeleteEvent %%QT_INCDIR%%/QtCore/QDir %%QT_INCDIR%%/QtCore/QDirIterator %%QT_INCDIR%%/QtCore/QDynamicPropertyChangeEvent @@ -461,11 +463,13 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/QSocketDescriptor %%QT_INCDIR%%/QtCore/QSocketNotifier %%QT_INCDIR%%/QtCore/QSortFilterProxyModel +%%QT_INCDIR%%/QtCore/QSpan %%QT_INCDIR%%/QtCore/QSpecialInteger %%QT_INCDIR%%/QtCore/QStack %%QT_INCDIR%%/QtCore/QStandardPaths %%QT_INCDIR%%/QtCore/QStaticByteArrayMatcher %%QT_INCDIR%%/QtCore/QStaticByteArrayMatcherBase +%%QT_INCDIR%%/QtCore/QStaticLatin1StringMatcher %%QT_INCDIR%%/QtCore/QStaticPlugin %%QT_INCDIR%%/QtCore/QStorageInfo %%QT_INCDIR%%/QtCore/QString @@ -487,6 +491,7 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/QSystemSemaphore %%QT_INCDIR%%/QtCore/QTaggedIterator %%QT_INCDIR%%/QtCore/QTaggedPointer +%%QT_INCDIR%%/QtCore/QTemplatedMetaMethodReturnArgument %%QT_INCDIR%%/QtCore/QTemporaryDir %%QT_INCDIR%%/QtCore/QTemporaryFile %%QT_INCDIR%%/QtCore/QTextBoundaryFinder @@ -589,8 +594,10 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/q20chrono.h %%QT_INCDIR%%/QtCore/q20functional.h %%QT_INCDIR%%/QtCore/q20iterator.h +%%QT_INCDIR%%/QtCore/q20map.h %%QT_INCDIR%%/QtCore/q20memory.h %%QT_INCDIR%%/QtCore/q20type_traits.h +%%QT_INCDIR%%/QtCore/q20vector.h %%QT_INCDIR%%/QtCore/q23functional.h %%QT_INCDIR%%/QtCore/q23utility.h %%QT_INCDIR%%/QtCore/qabstractanimation.h @@ -609,6 +616,7 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/qassociativeiterable.h %%QT_INCDIR%%/QtCore/qatomic.h %%QT_INCDIR%%/QtCore/qatomic_cxx11.h +%%QT_INCDIR%%/QtCore/qatomicscopedvaluerollback.h %%QT_INCDIR%%/QtCore/qbasicatomic.h %%QT_INCDIR%%/QtCore/qbasictimer.h %%QT_INCDIR%%/QtCore/qbindingstorage.h @@ -634,6 +642,7 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/qcommandlineparser.h %%QT_INCDIR%%/QtCore/qcompare.h %%QT_INCDIR%%/QtCore/qcompare_impl.h +%%QT_INCDIR%%/QtCore/qcomparehelpers.h %%QT_INCDIR%%/QtCore/qcompilerdetection.h %%QT_INCDIR%%/QtCore/qconcatenatetablesproxymodel.h %%QT_INCDIR%%/QtCore/qconfig.h @@ -765,8 +774,10 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/qsize.h %%QT_INCDIR%%/QtCore/qsocketnotifier.h %%QT_INCDIR%%/QtCore/qsortfilterproxymodel.h +%%QT_INCDIR%%/QtCore/qspan.h %%QT_INCDIR%%/QtCore/qstack.h %%QT_INCDIR%%/QtCore/qstandardpaths.h +%%QT_INCDIR%%/QtCore/qstaticlatin1stringmatcher.h %%QT_INCDIR%%/QtCore/qstorageinfo.h %%QT_INCDIR%%/QtCore/qstring.h %%QT_INCDIR%%/QtCore/qstringalgorithms.h @@ -813,6 +824,7 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/qtransposeproxymodel.h %%QT_INCDIR%%/QtCore/qtresource.h %%QT_INCDIR%%/QtCore/qtsan_impl.h +%%QT_INCDIR%%/QtCore/qtsymbolmacros.h %%QT_INCDIR%%/QtCore/qttranslation.h %%QT_INCDIR%%/QtCore/qttypetraits.h %%QT_INCDIR%%/QtCore/qtversion.h @@ -838,6 +850,7 @@ bin/qmake6 %%QT_INCDIR%%/QtCore/qxmlstream.h %%QT_INCDIR%%/QtCore/qxpfunctional.h %%QT_INCDIR%%/QtCore/qxptype_traits.h +%%QT_INCDIR%%/QtCore/qyieldcpu.h %%QT_INCDIR%%/QtDBus/%%FULLVER%%/QtDBus/private/dbus_minimal_p.h %%QT_INCDIR%%/QtDBus/%%FULLVER%%/QtDBus/private/qdbus_symbols_p.h %%QT_INCDIR%%/QtDBus/%%FULLVER%%/QtDBus/private/qdbusabstractadaptor_p.h @@ -892,7 +905,6 @@ bin/qmake6 %%QT_INCDIR%%/QtDBus/qdbuserror.h %%QT_INCDIR%%/QtDBus/qdbusextratypes.h %%QT_INCDIR%%/QtDBus/qdbusinterface.h -%%QT_INCDIR%%/QtDBus/qdbusmacros.h %%QT_INCDIR%%/QtDBus/qdbusmessage.h %%QT_INCDIR%%/QtDBus/qdbusmetatype.h %%QT_INCDIR%%/QtDBus/qdbuspendingcall.h @@ -1129,6 +1141,7 @@ bin/qmake6 %%QT_INCDIR%%/QtGui/%%FULLVER%%/QtGui/qpa/qplatformintegration.h %%QT_INCDIR%%/QtGui/%%FULLVER%%/QtGui/qpa/qplatformintegrationfactory_p.h %%QT_INCDIR%%/QtGui/%%FULLVER%%/QtGui/qpa/qplatformintegrationplugin.h +%%QT_INCDIR%%/QtGui/%%FULLVER%%/QtGui/qpa/qplatformkeymapper.h %%QT_INCDIR%%/QtGui/%%FULLVER%%/QtGui/qpa/qplatformmenu.h %%QT_INCDIR%%/QtGui/%%FULLVER%%/QtGui/qpa/qplatformmenu_p.h %%QT_INCDIR%%/QtGui/%%FULLVER%%/QtGui/qpa/qplatformnativeinterface.h @@ -1192,6 +1205,7 @@ bin/qmake6 %%QT_INCDIR%%/QtGui/QBrush %%QT_INCDIR%%/QtGui/QBrushData %%QT_INCDIR%%/QtGui/QBrushDataPointerDeleter +%%QT_INCDIR%%/QtGui/QChildWindowEvent %%QT_INCDIR%%/QtGui/QClipboard %%QT_INCDIR%%/QtGui/QCloseEvent %%QT_INCDIR%%/QtGui/QColor @@ -1462,6 +1476,7 @@ bin/qmake6 %%QT_INCDIR%%/QtGui/qrgba64.h %%QT_INCDIR%%/QtGui/qrgbafloat.h %%QT_INCDIR%%/QtGui/qscreen.h +%%QT_INCDIR%%/QtGui/qscreen_platform.h %%QT_INCDIR%%/QtGui/qsessionmanager.h %%QT_INCDIR%%/QtGui/qshortcut.h %%QT_INCDIR%%/QtGui/qstandarditemmodel.h @@ -1544,6 +1559,7 @@ bin/qmake6 %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qhostinfo_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qhsts_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qhstsstore_p.h +%%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qhttp2connection_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qhttp2protocolhandler_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qhttpheaderparser_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qhttpmultipart_p.h @@ -1581,8 +1597,11 @@ bin/qmake6 %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qnetworkreplyhttpimpl_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qnetworkreplyimpl_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qnetworkrequest_p.h +%%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qnetworkrequestfactory_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qocsp_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qocspresponse_p.h +%%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qrestaccessmanager_p.h +%%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qrestreply_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qsocks5socketengine_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qssl_p.h %%QT_INCDIR%%/QtNetwork/%%FULLVER%%/QtNetwork/private/qsslcertificate_p.h @@ -1612,6 +1631,7 @@ bin/qmake6 %%QT_INCDIR%%/QtNetwork/QDnsTextRecord %%DTLS%%%%QT_INCDIR%%/QtNetwork/QDtls %%DTLS%%%%QT_INCDIR%%/QtNetwork/QDtlsClientVerifier +%%QT_INCDIR%%/QtNetwork/QHttpHeaders %%QT_INCDIR%%/QtNetwork/QHostAddress %%QT_INCDIR%%/QtNetwork/QHostInfo %%QT_INCDIR%%/QtNetwork/QHstsPolicy @@ -1636,8 +1656,10 @@ bin/qmake6 %%QT_INCDIR%%/QtNetwork/QNetworkProxyQuery %%QT_INCDIR%%/QtNetwork/QNetworkReply %%QT_INCDIR%%/QtNetwork/QNetworkRequest +%%QT_INCDIR%%/QtNetwork/QNetworkRequestFactory %%QT_INCDIR%%/QtNetwork/QOcspResponse %%QT_INCDIR%%/QtNetwork/QPasswordDigestor +%%QT_INCDIR%%/QtNetwork/QRestReply %%QT_INCDIR%%/QtNetwork/QSsl %%QT_INCDIR%%/QtNetwork/QSslCertificate %%QT_INCDIR%%/QtNetwork/QSslCertificateExtension @@ -1667,6 +1689,7 @@ bin/qmake6 %%QT_INCDIR%%/QtNetwork/qhstspolicy.h %%QT_INCDIR%%/QtNetwork/qhttp1configuration.h %%QT_INCDIR%%/QtNetwork/qhttp2configuration.h +%%QT_INCDIR%%/QtNetwork/qhttpheaders.h %%QT_INCDIR%%/QtNetwork/qhttpmultipart.h %%QT_INCDIR%%/QtNetwork/qlocalserver.h %%QT_INCDIR%%/QtNetwork/qlocalsocket.h @@ -1680,8 +1703,11 @@ bin/qmake6 %%QT_INCDIR%%/QtNetwork/qnetworkproxy.h %%QT_INCDIR%%/QtNetwork/qnetworkreply.h %%QT_INCDIR%%/QtNetwork/qnetworkrequest.h +%%QT_INCDIR%%/QtNetwork/qnetworkrequestfactory.h %%QT_INCDIR%%/QtNetwork/qocspresponse.h %%QT_INCDIR%%/QtNetwork/qpassworddigestor.h +%%QT_INCDIR%%/QtNetwork/qrestaccessmanager.h +%%QT_INCDIR%%/QtNetwork/qrestreply.h %%QT_INCDIR%%/QtNetwork/qssl.h %%QT_INCDIR%%/QtNetwork/qsslcertificate.h %%QT_INCDIR%%/QtNetwork/qsslcertificateextension.h @@ -1887,7 +1913,6 @@ bin/qmake6 %%QT_INCDIR%%/QtSql/QtSql %%QT_INCDIR%%/QtSql/QtSqlDepends %%QT_INCDIR%%/QtSql/QtSqlVersion -%%QT_INCDIR%%/QtSql/qsql.h %%QT_INCDIR%%/QtSql/qsqldatabase.h %%QT_INCDIR%%/QtSql/qsqldriver.h %%QT_INCDIR%%/QtSql/qsqldriverplugin.h @@ -1913,6 +1938,7 @@ bin/qmake6 %%QT_INCDIR%%/QtTest/%%FULLVER%%/QtTest/private/qbenchmarkmetric_p.h %%QT_INCDIR%%/QtTest/%%FULLVER%%/QtTest/private/qbenchmarkperfevents_p.h %%QT_INCDIR%%/QtTest/%%FULLVER%%/QtTest/private/qbenchmarktimemeasurers_p.h +%%QT_INCDIR%%/QtTest/%%FULLVER%%/QtTest/private/qcomparisontesthelper_p.h %%QT_INCDIR%%/QtTest/%%FULLVER%%/QtTest/private/qcsvbenchmarklogger_p.h %%QT_INCDIR%%/QtTest/%%FULLVER%%/QtTest/private/qemulationdetector_p.h %%QT_INCDIR%%/QtTest/%%FULLVER%%/QtTest/private/qjunittestlogger_p.h @@ -1959,7 +1985,6 @@ bin/qmake6 %%QT_INCDIR%%/QtTest/qbenchmarkmetric.h %%QT_INCDIR%%/QtTest/qsignalspy.h %%QT_INCDIR%%/QtTest/qtest.h -%%QT_INCDIR%%/QtTest/qtest_global.h %%QT_INCDIR%%/QtTest/qtest_gui.h %%QT_INCDIR%%/QtTest/qtest_network.h %%QT_INCDIR%%/QtTest/qtest_widgets.h @@ -2052,6 +2077,7 @@ bin/qmake6 %%QT_INCDIR%%/QtWidgets/%%FULLVER%%/QtWidgets/private/qplaintextedit_p.h %%QT_INCDIR%%/QtWidgets/%%FULLVER%%/QtWidgets/private/qproxystyle_p.h %%QT_INCDIR%%/QtWidgets/%%FULLVER%%/QtWidgets/private/qpushbutton_p.h +%%QT_INCDIR%%/QtWidgets/%%FULLVER%%/QtWidgets/private/qrhiwidget_p.h %%QT_INCDIR%%/QtWidgets/%%FULLVER%%/QtWidgets/private/qscrollarea_p.h %%QT_INCDIR%%/QtWidgets/%%FULLVER%%/QtWidgets/private/qscrollbar_p.h %%QT_INCDIR%%/QtWidgets/%%FULLVER%%/QtWidgets/private/qscroller_p.h @@ -2205,6 +2231,7 @@ bin/qmake6 %%QT_INCDIR%%/QtWidgets/QProxyStyle %%QT_INCDIR%%/QtWidgets/QPushButton %%QT_INCDIR%%/QtWidgets/QRadioButton +%%QT_INCDIR%%/QtWidgets/QRhiWidget %%QT_INCDIR%%/QtWidgets/QRubberBand %%QT_INCDIR%%/QtWidgets/QScrollArea %%QT_INCDIR%%/QtWidgets/QScrollBar @@ -2369,6 +2396,7 @@ bin/qmake6 %%QT_INCDIR%%/QtWidgets/qproxystyle.h %%QT_INCDIR%%/QtWidgets/qpushbutton.h %%QT_INCDIR%%/QtWidgets/qradiobutton.h +%%QT_INCDIR%%/QtWidgets/qrhiwidget.h %%QT_INCDIR%%/QtWidgets/qrubberband.h %%QT_INCDIR%%/QtWidgets/qscrollarea.h %%QT_INCDIR%%/QtWidgets/qscrollbar.h @@ -2478,6 +2506,7 @@ lib/cmake/Qt6/FindMySQL.cmake lib/cmake/Qt6/FindOracle.cmake lib/cmake/Qt6/FindPPS.cmake lib/cmake/Qt6/FindPostgreSQL.cmake +lib/cmake/Qt6/FindRenderDoc.cmake lib/cmake/Qt6/FindSlog2.cmake lib/cmake/Qt6/FindTslib.cmake lib/cmake/Qt6/FindWrapAtomic.cmake @@ -2667,6 +2696,7 @@ lib/cmake/Qt6Core/Qt6CoreConfigureFileTemplate.in lib/cmake/Qt6Core/Qt6CoreDependencies.cmake lib/cmake/Qt6Core/Qt6CoreDeploySupport.cmake lib/cmake/Qt6Core/Qt6CoreMacros.cmake +lib/cmake/Qt6Core/Qt6CoreResourceInit.in.cpp lib/cmake/Qt6Core/Qt6CoreTargets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/Qt6Core/Qt6CoreTargets.cmake lib/cmake/Qt6Core/Qt6CoreVersionlessTargets.cmake @@ -3074,8 +3104,8 @@ lib/cmake/Qt6Xml/Qt6XmlVersionlessTargets.cmake %%QT_LIBDIR%%/metatypes/qt6widgets_%%CMAKE_BUILD_TYPE%%_metatypes.json %%X11%%%%QT_LIBDIR%%/metatypes/qt6xcbqpaprivate_%%CMAKE_BUILD_TYPE%%_metatypes.json %%QT_LIBDIR%%/metatypes/qt6xml_%%CMAKE_BUILD_TYPE%%_metatypes.json -%%DEBUG%%%%QT_LIBDIR%%/objects-Debug/ExampleIconsPrivate_resources_1/.rcc/qrc_example_icons.cpp.o -%%NO_DEBUG%%%%QT_LIBDIR%%/objects-Release/ExampleIconsPrivate_resources_1/.rcc/qrc_example_icons.cpp.o +%%DEBUG%%%%QT_LIBDIR%%/objects-Debug/ExampleIconsPrivate_resources_1/.rcc/qrc_example_icons_init.cpp.o +%%NO_DEBUG%%%%QT_LIBDIR%%/objects-Release/ExampleIconsPrivate_resources_1/.rcc/qrc_example_icons_init.cpp.o %%QT_MKSPECDIR%%/aix-g++-64/qmake.conf %%QT_MKSPECDIR%%/aix-g++-64/qplatformdefs.h %%QT_MKSPECDIR%%/aix-g++/qmake.conf @@ -3132,6 +3162,7 @@ lib/cmake/Qt6Xml/Qt6XmlVersionlessTargets.cmake %%QT_MKSPECDIR%%/common/uikit/clang.conf %%QT_MKSPECDIR%%/common/uikit/qmake.conf %%QT_MKSPECDIR%%/common/unix.conf +%%QT_MKSPECDIR%%/common/vxworks/qplatformdefs.h %%QT_MKSPECDIR%%/common/wasm/qplatformdefs.h %%QT_MKSPECDIR%%/common/wasm/wasm.conf %%QT_MKSPECDIR%%/common/watchos.conf @@ -3527,6 +3558,7 @@ lib/cmake/Qt6Xml/Qt6XmlVersionlessTargets.cmake %%QT_MKSPECDIR%%/unsupported/vxworks-simpentium-dcc/qplatformdefs.h %%QT_MKSPECDIR%%/unsupported/vxworks-simpentium-g++/qmake.conf %%QT_MKSPECDIR%%/unsupported/vxworks-simpentium-g++/qplatformdefs.h +%%QT_MKSPECDIR%%/vxworks-clang/qplatformdefs.h %%QT_MKSPECDIR%%/wasm-emscripten-64/qmake.conf %%QT_MKSPECDIR%%/wasm-emscripten-64/qplatformdefs.h %%QT_MKSPECDIR%%/wasm-emscripten/qmake.conf @@ -3582,7 +3614,6 @@ libdata/pkgconfig/Qt6Sql.pc libdata/pkgconfig/Qt6Test.pc libdata/pkgconfig/Qt6Widgets.pc libdata/pkgconfig/Qt6Xml.pc -%%QT_TOOLDIR%%/android_emulator_launcher.sh %%QT_TOOLDIR%%/cmake_automoc_parser %%QT_TOOLDIR%%/ensure_pro_file.cmake %%QT_TOOLDIR%%/moc @@ -3726,6 +3757,7 @@ libdata/pkgconfig/Qt6Xml.pc %%QT_DOCDIR%%/global/template/style/online.css %%QT_DOCDIR%%/global/template/style/tech_preview.svg %%QT_DOCDIR%%/global/template/style/theqtcompany.png +%%QT_DOCDIR%%/global/warninglimit.qdocconf %%QT_DATADIR%%/modules/Concurrent.json %%QT_DATADIR%%/modules/Core.json %%QT_DATADIR%%/modules/DBus.json diff --git a/devel/qt6-languageserver/distinfo b/devel/qt6-languageserver/distinfo index f4089cb0c0f8..7ae1f34fbcd7 100644 --- a/devel/qt6-languageserver/distinfo +++ b/devel/qt6-languageserver/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661023 -SHA256 (KDE/Qt/6.6.3/qtlanguageserver-everywhere-src-6.6.3.tar.xz) = 1021b4b9024bd23bef86292f4b6c15cc7db620b6c47be8cb6e539bfae7f6cf8c -SIZE (KDE/Qt/6.6.3/qtlanguageserver-everywhere-src-6.6.3.tar.xz) = 145420 +TIMESTAMP = 1712112792 +SHA256 (KDE/Qt/6.7.0/qtlanguageserver-everywhere-src-6.7.0.tar.xz) = a99ecb342abdf7b7ac24804c89830a7991de95f9402f45a1e337ae851f76c9fc +SIZE (KDE/Qt/6.7.0/qtlanguageserver-everywhere-src-6.7.0.tar.xz) = 145140 diff --git a/devel/qt6-location/distinfo b/devel/qt6-location/distinfo index 3b4044add279..a363028bbebd 100644 --- a/devel/qt6-location/distinfo +++ b/devel/qt6-location/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661029 -SHA256 (KDE/Qt/6.6.3/qtlocation-everywhere-src-6.6.3.tar.xz) = d7b42920f30a6a3fc4edffae541332fceaa6f5f7a4776c6809e0fd80fff801d1 -SIZE (KDE/Qt/6.6.3/qtlocation-everywhere-src-6.6.3.tar.xz) = 3028756 +TIMESTAMP = 1712112799 +SHA256 (KDE/Qt/6.7.0/qtlocation-everywhere-src-6.7.0.tar.xz) = bb044d66bc17db98f526ec1b52d8e94810e046310f288561380774e5903ad46a +SIZE (KDE/Qt/6.7.0/qtlocation-everywhere-src-6.7.0.tar.xz) = 3165588 diff --git a/devel/qt6-location/pkg-plist b/devel/qt6-location/pkg-plist index 4d37c40560a6..fdcc8e074803 100644 --- a/devel/qt6-location/pkg-plist +++ b/devel/qt6-location/pkg-plist @@ -6,6 +6,7 @@ %%QT_INCDIR%%/QtLocation/%%FULLVER%%/QtLocation/private/qdeclarativecirclemapitem_p_p.h %%QT_INCDIR%%/QtLocation/%%FULLVER%%/QtLocation/private/qdeclarativecontactdetails_p.h %%QT_INCDIR%%/QtLocation/%%FULLVER%%/QtLocation/private/qdeclarativegeocodemodel_p.h +%%QT_INCDIR%%/QtLocation/%%FULLVER%%/QtLocation/private/qdeclarativegeojsondata_p.h %%QT_INCDIR%%/QtLocation/%%FULLVER%%/QtLocation/private/qdeclarativegeomap_p.h %%QT_INCDIR%%/QtLocation/%%FULLVER%%/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h %%QT_INCDIR%%/QtLocation/%%FULLVER%%/QtLocation/private/qdeclarativegeomapitembase_p.h diff --git a/devel/qt6-positioning/distinfo b/devel/qt6-positioning/distinfo index 3c664af6107a..1f0ecbd8b816 100644 --- a/devel/qt6-positioning/distinfo +++ b/devel/qt6-positioning/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661032 -SHA256 (KDE/Qt/6.6.3/qtpositioning-everywhere-src-6.6.3.tar.xz) = 9a37b6502aa00f6caf6701d3d0ed95f6de13a8d0934ec8348e6631ad9bfd3fbb -SIZE (KDE/Qt/6.6.3/qtpositioning-everywhere-src-6.6.3.tar.xz) = 1505028 +TIMESTAMP = 1712112802 +SHA256 (KDE/Qt/6.7.0/qtpositioning-everywhere-src-6.7.0.tar.xz) = 1d601ba43c26c8a01db81eeaaeea5943c015da98caa59d7905b86e0e9d609ddf +SIZE (KDE/Qt/6.7.0/qtpositioning-everywhere-src-6.7.0.tar.xz) = 658368 diff --git a/devel/qt6-remoteobjects/distinfo b/devel/qt6-remoteobjects/distinfo index 243c822553c7..f06927cb6b8d 100644 --- a/devel/qt6-remoteobjects/distinfo +++ b/devel/qt6-remoteobjects/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661034 -SHA256 (KDE/Qt/6.6.3/qtremoteobjects-everywhere-src-6.6.3.tar.xz) = 5f7e573f64aeb0b9edf4c19ea2064663430435bcf0e283c0fcf43b3fda276d99 -SIZE (KDE/Qt/6.6.3/qtremoteobjects-everywhere-src-6.6.3.tar.xz) = 534172 +TIMESTAMP = 1712112805 +SHA256 (KDE/Qt/6.7.0/qtremoteobjects-everywhere-src-6.7.0.tar.xz) = a0ba60d625c9713fc8396b8db1e283df863bfaa06664d46496bd16fab5e4c695 +SIZE (KDE/Qt/6.7.0/qtremoteobjects-everywhere-src-6.7.0.tar.xz) = 536264 diff --git a/devel/qt6-scxml/distinfo b/devel/qt6-scxml/distinfo index fb549b237938..842029d3e219 100644 --- a/devel/qt6-scxml/distinfo +++ b/devel/qt6-scxml/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661037 -SHA256 (KDE/Qt/6.6.3/qtscxml-everywhere-src-6.6.3.tar.xz) = 0f1b6a4db03d30b8770bc1c0eb11280acb41bfaf91b577928bb9686d31e16cb5 -SIZE (KDE/Qt/6.6.3/qtscxml-everywhere-src-6.6.3.tar.xz) = 1167484 +TIMESTAMP = 1712112809 +SHA256 (KDE/Qt/6.7.0/qtscxml-everywhere-src-6.7.0.tar.xz) = 725b97bbb8766df733d7588488acd92375c218eeb376a95525572b4268a9257c +SIZE (KDE/Qt/6.7.0/qtscxml-everywhere-src-6.7.0.tar.xz) = 1167668 diff --git a/devel/qt6-tools/distinfo b/devel/qt6-tools/distinfo index a6b6b9a440b9..54c942e02bfc 100644 --- a/devel/qt6-tools/distinfo +++ b/devel/qt6-tools/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661051 -SHA256 (KDE/Qt/6.6.3/qttools-everywhere-src-6.6.3.tar.xz) = aa6d4c822d8cb74066ef30ab42283ac24e5cc702f33e6d78a9ebef5b0df91bc0 -SIZE (KDE/Qt/6.6.3/qttools-everywhere-src-6.6.3.tar.xz) = 8596272 +TIMESTAMP = 1712112826 +SHA256 (KDE/Qt/6.7.0/qttools-everywhere-src-6.7.0.tar.xz) = c8da6b239e82fe1e23465cbf0936c0da5a334438d3fb433e19c503cbb1abee7b +SIZE (KDE/Qt/6.7.0/qttools-everywhere-src-6.7.0.tar.xz) = 9012572 diff --git a/devel/qt6-tools/pkg-plist b/devel/qt6-tools/pkg-plist index 4f94015b3e5f..ed028d34a528 100644 --- a/devel/qt6-tools/pkg-plist +++ b/devel/qt6-tools/pkg-plist @@ -229,23 +229,23 @@ bin/qtplugininfo6 %%QT_INCDIR%%/QtHelp/qthelpversion.h %%QT_INCDIR%%/QtQDocCatch/QtQDocCatchDepends %%QT_INCDIR%%/QtQDocCatch/catch/catch.hpp -%%QT_INCDIR%%/QtQDocCatchConversionsPrivate/QtQDocCatchConversionsPrivateDepends -%%QT_INCDIR%%/QtQDocCatchConversionsPrivate/catch_conversions/qdoc_catch_conversions.h -%%QT_INCDIR%%/QtQDocCatchConversionsPrivate/catch_conversions/qt_catch_conversions.h -%%QT_INCDIR%%/QtQDocCatchConversionsPrivate/catch_conversions/std_catch_conversions.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/QtQDocCatchGeneratorsPrivateDepends -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/generators/combinators/cycle_generator.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/generators/combinators/oneof_generator.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/generators/k_partition_of_r_generator.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/generators/path_generator.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/generators/qchar_generator.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/generators/qstring_generator.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/namespaces.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/utilities/semantics/copy_value.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/utilities/semantics/generator_handler.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/utilities/semantics/move_into_vector.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/utilities/statistics/distribution.h -%%QT_INCDIR%%/QtQDocCatchGeneratorsPrivate/catch_generators/utilities/statistics/percentages.h +%%QT_INCDIR%%/QtQDocCatchConversions/QtQDocCatchConversionsDepends +%%QT_INCDIR%%/QtQDocCatchConversions/catch_conversions/qdoc_catch_conversions.h +%%QT_INCDIR%%/QtQDocCatchConversions/catch_conversions/qt_catch_conversions.h +%%QT_INCDIR%%/QtQDocCatchConversions/catch_conversions/std_catch_conversions.h +%%QT_INCDIR%%/QtQDocCatchGenerators/QtQDocCatchGeneratorsDepends +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/generators/combinators/cycle_generator.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/generators/combinators/oneof_generator.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/generators/k_partition_of_r_generator.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/generators/path_generator.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/generators/qchar_generator.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/generators/qstring_generator.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/namespaces.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/utilities/semantics/copy_value.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/utilities/semantics/generator_handler.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/utilities/semantics/move_into_vector.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/utilities/statistics/distribution.h +%%QT_INCDIR%%/QtQDocCatchGenerators/catch_generators/utilities/statistics/percentages.h %%QT_INCDIR%%/QtTools/%%FULLVER%%/QtTools/private/qttools-config_p.h %%QT_INCDIR%%/QtTools/QtTools %%QT_INCDIR%%/QtTools/QtToolsDepends @@ -407,12 +407,9 @@ lib/cmake/Qt6UiTools/Qt6UiToolsVersionlessTargets.cmake %%QT_MKSPECDIR%%/modules/qt_lib_help.pri %%QT_MKSPECDIR%%/modules/qt_lib_help_private.pri %%QT_MKSPECDIR%%/modules/qt_lib_linguist.pri -%%QT_MKSPECDIR%%/modules/qt_lib_linguist_private.pri %%QT_MKSPECDIR%%/modules/qt_lib_qdoccatch_private.pri -%%QT_MKSPECDIR%%/modules/qt_lib_qdoccatchconversionsprivate.pri -%%QT_MKSPECDIR%%/modules/qt_lib_qdoccatchconversionsprivate_private.pri -%%QT_MKSPECDIR%%/modules/qt_lib_qdoccatchgeneratorsprivate.pri -%%QT_MKSPECDIR%%/modules/qt_lib_qdoccatchgeneratorsprivate_private.pri +%%QT_MKSPECDIR%%/modules/qt_lib_qdoccatchconversions_private.pri +%%QT_MKSPECDIR%%/modules/qt_lib_qdoccatchgenerators_private.pri %%QT_MKSPECDIR%%/modules/qt_lib_tools_private.pri %%QT_MKSPECDIR%%/modules/qt_lib_uiplugin.pri %%QT_MKSPECDIR%%/modules/qt_lib_uitools.pri @@ -421,8 +418,6 @@ lib/cmake/Qt6UiTools/Qt6UiToolsVersionlessTargets.cmake libdata/pkgconfig/Qt6Designer.pc libdata/pkgconfig/Qt6Help.pc libdata/pkgconfig/Qt6Linguist.pc -libdata/pkgconfig/Qt6QDocCatchConversionsPrivate.pc -libdata/pkgconfig/Qt6QDocCatchGeneratorsPrivate.pc libdata/pkgconfig/Qt6UiPlugin.pc libdata/pkgconfig/Qt6UiTools.pc %%QT_TOOLDIR%%/lprodump diff --git a/devel/qt6-translations/distinfo b/devel/qt6-translations/distinfo index 5f809613ae4a..9c9b6208e8c7 100644 --- a/devel/qt6-translations/distinfo +++ b/devel/qt6-translations/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661068 -SHA256 (KDE/Qt/6.6.3/qttranslations-everywhere-src-6.6.3.tar.xz) = 12e35f2ac9a262e41827d95f168d4de6eb85c166bdaf7e5b3291f8f516cf73cf -SIZE (KDE/Qt/6.6.3/qttranslations-everywhere-src-6.6.3.tar.xz) = 1472412 +TIMESTAMP = 1712112830 +SHA256 (KDE/Qt/6.7.0/qttranslations-everywhere-src-6.7.0.tar.xz) = 26fc8047062ca4bacd1bd953be86fd39c6e0a5f5e9920c72ba9d40876cea4b56 +SIZE (KDE/Qt/6.7.0/qttranslations-everywhere-src-6.7.0.tar.xz) = 1475980 diff --git a/devel/shiboken6/Makefile b/devel/shiboken6/Makefile index 2e6cad8d62d9..cc180355b098 100644 --- a/devel/shiboken6/Makefile +++ b/devel/shiboken6/Makefile @@ -14,25 +14,25 @@ LICENSE_COMB= multi LIB_DEPENDS= libxslt.so:textproc/libxslt -USES= cmake compiler:c++17-lang gnome llvm:lib pathfix python qt:6 \ - tar:xz +USES= cmake compiler:c++17-lang gnome llvm:lib,noexport pathfix \ + python qt:6 tar:xz USE_GNOME= libxml2 USE_LDCONFIG= yes USE_PYTHON= flavors USE_QT= base +CONFIGURE_ENV= LLVM_INSTALL_DIR="${LLVM_PREFIX}/lib/cmake/llvm" CMAKE_ARGS= -DClang_DIR:PATH="${LLVM_PREFIX}/lib/cmake/clang" \ -DLLVM_DIR:PATH="${LLVM_PREFIX}/lib/cmake/llvm" \ - -DCMAKE_CXX_FLAGS=-lexecinfo \ - -DCMAKE_STANDARD_LIBRARIES=-lexecinfo \ -DCMAKE_CXX_STANDARD_LIBRARIES=-lexecinfo \ -DUSE_PYTHON_VERSION=${PYTHON_VER} \ -DBUILD_TESTS:BOOL=false -WRKSRC= ${WRKDIR}/pyside-setup-everywhere-src-${PYSIDE6_VERSION}/sources/shiboken6 +WRKSRC_SUBDIR= sources/shiboken6 PLIST_SUB= DISTVERSION=${DISTVERSION} -OPTIONS_DEFINE= DOCS +OPTIONS_DEFINE= DOCS NUMPY +OPTIONS_DEFAULT= NUMPY DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}furo>0:textproc/py-furo@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}myst-parser>0:textproc/py-myst-parser@${PY_FLAVOR} \ @@ -42,6 +42,10 @@ DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}furo>0:textproc/py-furo@${PY_FLAVOR} DOCS_ALL_TARGET= all doc DOCS_PORTDOCS= * +NUMPY_BUILD_DEPENDS= ${PYNUMPY} +NUMPY_RUN_DEPENDS= ${PYNUMPY} +NUMPY_CMAKE_ON= -DNUMPY_INCLUDE_DIR:PATH="${PYTHON_SITELIBDIR}/numpy/core/include" + post-install: ${RM} ${STAGEDIR}${PREFIX}/bin/shiboken_tool.py ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ diff --git a/devel/shiboken6/distinfo b/devel/shiboken6/distinfo index 1e9558b3237e..cc2142b76825 100644 --- a/devel/shiboken6/distinfo +++ b/devel/shiboken6/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1708228666 -SHA256 (pyside-setup-everywhere-src-6.6.2.tar.xz) = 14620b694d7af4c978443016292d3d2108ba5dc105f4170e3b71eadcaf04c9f0 -SIZE (pyside-setup-everywhere-src-6.6.2.tar.xz) = 13975896 +TIMESTAMP = 1714321386 +SHA256 (pyside-setup-everywhere-src-6.7.0.tar.xz) = 82eae370737df5ecf539c165d09d7c81d5fc6153a541b8d3d37b11275f9e3e8f +SIZE (pyside-setup-everywhere-src-6.7.0.tar.xz) = 14382456 diff --git a/devel/shiboken6/files/patch-cmake_ShibokenHelpers.cmake b/devel/shiboken6/files/patch-cmake_ShibokenHelpers.cmake index 4f4be866326a..1bf82a17406c 100644 --- a/devel/shiboken6/files/patch-cmake_ShibokenHelpers.cmake +++ b/devel/shiboken6/files/patch-cmake_ShibokenHelpers.cmake @@ -1,8 +1,8 @@ We don't need bash for a simple export command. ---- cmake/ShibokenHelpers.cmake.orig 2023-10-14 09:37:51 UTC +--- cmake/ShibokenHelpers.cmake.orig 2024-04-05 12:14:13 UTC +++ cmake/ShibokenHelpers.cmake -@@ -772,7 +772,7 @@ $@") +@@ -769,7 +769,7 @@ $@") $@") else() string(REPLACE ";" ":" path_dirs_native "${path_dirs_native}") diff --git a/devel/shiboken6/files/patch-data_shiboken6.pc.in b/devel/shiboken6/files/patch-data_shiboken6.pc.in index 2830d8e58633..6079806aa457 100644 --- a/devel/shiboken6/files/patch-data_shiboken6.pc.in +++ b/devel/shiboken6/files/patch-data_shiboken6.pc.in @@ -1,4 +1,4 @@ ---- data/shiboken6.pc.in.orig 2023-10-14 09:37:51 UTC +--- data/shiboken6.pc.in.orig 2024-04-05 12:14:13 UTC +++ data/shiboken6.pc.in @@ -8,5 +8,5 @@ Version: @shiboken6_VERSION@ Name: shiboken6 @@ -6,4 +6,4 @@ Version: @shiboken6_VERSION@ -Libs: @SHIBOKEN_PYTHON_LIBRARIES@ -L${libdir} -lshiboken6@shiboken6_SUFFIX@@PYTHON_SHARED_LIBRARY_SUFFIX@@LIBRARY_OUTPUT_SUFFIX@ +Libs: @SHIBOKEN_PYTHON_LIBRARIES@ -L${libdir} -lshiboken6@shiboken6_SUFFIX@@PYTHON_SHARED_LIBRARY_SUFFIX@@LIBRARY_OUTPUT_SUFFIX@ -lexecinfo - Cflags: -I@PYTHON_INCLUDE_DIRS@ -I${includedir}/@shiboken6_SUFFIX@@SBK_PKG_CONFIG_PY_DEBUG_DEFINITION@ + Cflags: -I@Python_INCLUDE_DIRS@ -I${includedir}/@shiboken6_SUFFIX@@SBK_PKG_CONFIG_PY_DEBUG_DEFINITION@ diff --git a/devel/shiboken6/files/patch-libshiboken_signature_signature__globals.cpp b/devel/shiboken6/files/patch-libshiboken_signature_signature__globals.cpp new file mode 100644 index 000000000000..0dae95aec43f --- /dev/null +++ b/devel/shiboken6/files/patch-libshiboken_signature_signature__globals.cpp @@ -0,0 +1,29 @@ +--- libshiboken/signature/signature_globals.cpp.orig 2024-04-29 02:02:21 UTC ++++ libshiboken/signature/signature_globals.cpp +@@ -210,7 +210,7 @@ static int init_phase_2(safe_globals_struc *p, PyMetho + //////////////////////////////////////////////////////////////////////////// + // a stack trace for linux-like platforms + #include <cstdio> +-#if defined(__GLIBC__) ++#if defined(__GLIBC__) || defined(__FreeBSD__) + # include <execinfo.h> + #endif + #include <signal.h> +@@ -218,7 +218,7 @@ static void handler(int sig) { + #include <unistd.h> + + static void handler(int sig) { +-#if defined(__GLIBC__) ++#if defined(__GLIBC__) || defined(__FreeBSD__) + void *array[30]; + size_t size; + +@@ -228,7 +228,7 @@ static void handler(int sig) { + // print out all the frames to stderr + #endif + std::fprintf(stderr, "Error: signal %d:\n", sig); +-#if defined(__GLIBC__) ++#if defined(__GLIBC__) || defined(__FreeBSD__) + backtrace_symbols_fd(array, size, STDERR_FILENO); + #endif + exit(1); diff --git a/devel/shiboken6/pkg-plist b/devel/shiboken6/pkg-plist index cbc90f9f6ac1..579d15768358 100644 --- a/devel/shiboken6/pkg-plist +++ b/devel/shiboken6/pkg-plist @@ -6,7 +6,9 @@ include/shiboken6/bindingmanager.h include/shiboken6/bufferprocs_py37.h include/shiboken6/gilstate.h include/shiboken6/helper.h +include/shiboken6/pep384ext.h include/shiboken6/pep384impl.h +include/shiboken6/pyobjectholder.h include/shiboken6/sbkarrayconverter.h include/shiboken6/sbkcontainer.h include/shiboken6/sbkconverter.h @@ -43,7 +45,7 @@ lib/cmake/Shiboken6Tools/Shiboken6ToolsConfigVersion.cmake lib/cmake/Shiboken6Tools/Shiboken6ToolsTargets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/Shiboken6Tools/Shiboken6ToolsTargets.cmake lib/libshiboken6.abi3.so -lib/libshiboken6.abi3.so.6.6 +lib/libshiboken6.abi3.so.6.7 lib/libshiboken6.abi3.so.%%DISTVERSION%% %%PYTHON_SITELIBDIR%%/shiboken6/Shiboken.abi3.so %%PYTHON_SITELIBDIR%%/shiboken6/Shiboken.pyi diff --git a/graphics/py-qt6-3d/Makefile b/graphics/py-qt6-3d/Makefile index 2f07d6714e78..506ec253c2c1 100644 --- a/graphics/py-qt6-3d/Makefile +++ b/graphics/py-qt6-3d/Makefile @@ -12,8 +12,7 @@ COMMENT= Python bindings for the Qt6 3D framework WWW= https://www.riverbankcomputing.com/software/pyqt3d/ USES= gl pyqt:6 python qt:6 -USE_GL= gl -USE_LOCALE= C.UTF-8 +USE_GL= opengl USE_PYQT= sip:build pyqt6 qtbuilder:build USE_PYTHON= concurrent flavors USE_QT= 3d base diff --git a/graphics/py-qt6-3d/distinfo b/graphics/py-qt6-3d/distinfo index f1658c3d4b99..bd44753804ba 100644 --- a/graphics/py-qt6-3d/distinfo +++ b/graphics/py-qt6-3d/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1698896095 -SHA256 (PyQt6_3D-6.6.0.tar.gz) = 372b206eb8185f2b6ff048629d3296cb137c9e5901b113119ffa46a317726988 -SIZE (PyQt6_3D-6.6.0.tar.gz) = 7469031 +TIMESTAMP = 1714271985 +SHA256 (PyQt6_3D-6.7.0.tar.gz) = 3e99bfc801918ab4758dd2660b2d2358e0057c943eb2bd9f8d0ddf156ea5ccd7 +SIZE (PyQt6_3D-6.7.0.tar.gz) = 7469641 diff --git a/graphics/qt6-3d/distinfo b/graphics/qt6-3d/distinfo index 51d2e618b592..729c6c0cddc2 100644 --- a/graphics/qt6-3d/distinfo +++ b/graphics/qt6-3d/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661369 -SHA256 (KDE/Qt/6.6.3/qt3d-everywhere-src-6.6.3.tar.xz) = a549747f0071542b4a12519e4ae755d2b054922566bc7aa48de4939c78bedf6c -SIZE (KDE/Qt/6.6.3/qt3d-everywhere-src-6.6.3.tar.xz) = 141571616 +TIMESTAMP = 1712113036 +SHA256 (KDE/Qt/6.7.0/qt3d-everywhere-src-6.7.0.tar.xz) = 803b82a8be8632b79f4fc717b236edba716100ab274a54349add439056896424 +SIZE (KDE/Qt/6.7.0/qt3d-everywhere-src-6.7.0.tar.xz) = 141570596 diff --git a/graphics/qt6-imageformats/distinfo b/graphics/qt6-imageformats/distinfo index f264978f66fe..0d69cf675afd 100644 --- a/graphics/qt6-imageformats/distinfo +++ b/graphics/qt6-imageformats/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661377 -SHA256 (KDE/Qt/6.6.3/qtimageformats-everywhere-src-6.6.3.tar.xz) = 3ca5ea60176603ce6ffc1bff59a4dcea139375233ce8e5e86c38f4e84c44627c -SIZE (KDE/Qt/6.6.3/qtimageformats-everywhere-src-6.6.3.tar.xz) = 1964752 +TIMESTAMP = 1712113041 +SHA256 (KDE/Qt/6.7.0/qtimageformats-everywhere-src-6.7.0.tar.xz) = 516ce07ec8dd5a11c59816fe33ddb71d4f691d0ebbc1798ac338f23b86c029a7 +SIZE (KDE/Qt/6.7.0/qtimageformats-everywhere-src-6.7.0.tar.xz) = 1968344 diff --git a/graphics/qt6-lottie/distinfo b/graphics/qt6-lottie/distinfo index 3c14f7641833..b459793011d5 100644 --- a/graphics/qt6-lottie/distinfo +++ b/graphics/qt6-lottie/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661379 -SHA256 (KDE/Qt/6.6.3/qtlottie-everywhere-src-6.6.3.tar.xz) = 9891fad0aef6fbc2f458f6d664698d9180b20255fc83e2c269960304c0920eb4 -SIZE (KDE/Qt/6.6.3/qtlottie-everywhere-src-6.6.3.tar.xz) = 83332 +TIMESTAMP = 1712113044 +SHA256 (KDE/Qt/6.7.0/qtlottie-everywhere-src-6.7.0.tar.xz) = 9c0ffbde3c99e006bd13c844a1d691e275c02db1c3db44d05154c939d23ba2ed +SIZE (KDE/Qt/6.7.0/qtlottie-everywhere-src-6.7.0.tar.xz) = 83008 diff --git a/graphics/qt6-quickeffectmaker/distinfo b/graphics/qt6-quickeffectmaker/distinfo index f358d2a2995b..8394bf0acb0d 100644 --- a/graphics/qt6-quickeffectmaker/distinfo +++ b/graphics/qt6-quickeffectmaker/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661390 -SHA256 (KDE/Qt/6.6.3/qtquickeffectmaker-everywhere-src-6.6.3.tar.xz) = bc242a13c9ab2ef4cbe6b739e63d7b8d116058f9056f451179e4c89918282357 -SIZE (KDE/Qt/6.6.3/qtquickeffectmaker-everywhere-src-6.6.3.tar.xz) = 4358424 +TIMESTAMP = 1712113053 +SHA256 (KDE/Qt/6.7.0/qtquickeffectmaker-everywhere-src-6.7.0.tar.xz) = 3d0fec664061ca35cc69162c8eb9ae3bc49628eb417ca9def5fb8946b8bc04d5 +SIZE (KDE/Qt/6.7.0/qtquickeffectmaker-everywhere-src-6.7.0.tar.xz) = 4358300 diff --git a/graphics/qt6-svg/distinfo b/graphics/qt6-svg/distinfo index aded8c1880c1..b5f58f467651 100644 --- a/graphics/qt6-svg/distinfo +++ b/graphics/qt6-svg/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661401 -SHA256 (KDE/Qt/6.6.3/qtsvg-everywhere-src-6.6.3.tar.xz) = 4acb1e576eca55e955cf2b0d15c914a200df290e737accd7c1901fa1e33a25c7 -SIZE (KDE/Qt/6.6.3/qtsvg-everywhere-src-6.6.3.tar.xz) = 1643424 +TIMESTAMP = 1712113058 +SHA256 (KDE/Qt/6.7.0/qtsvg-everywhere-src-6.7.0.tar.xz) = 1518f40e08ff5e6153a6e26e5b95b033413ac143b70795dc1317e7f73ebf922d +SIZE (KDE/Qt/6.7.0/qtsvg-everywhere-src-6.7.0.tar.xz) = 1790244 diff --git a/graphics/qt6-svg/pkg-plist b/graphics/qt6-svg/pkg-plist index 1dd398947c9f..1860fea0b599 100644 --- a/graphics/qt6-svg/pkg-plist +++ b/graphics/qt6-svg/pkg-plist @@ -1,10 +1,13 @@ +%%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvgfilter_p.h %%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvgfont_p.h %%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvggraphics_p.h %%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvghandler_p.h +%%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvghelper_p.h %%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvgnode_p.h %%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvgstructure_p.h %%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvgstyle_p.h %%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvgtinydocument_p.h +%%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qsvgvisitor_p.h %%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qtsvgexports_p.h %%QT_INCDIR%%/QtSvg/%%FULLVER%%/QtSvg/private/qtsvgglobal_p.h %%QT_INCDIR%%/QtSvg/QSvgGenerator diff --git a/graphics/qt6-wayland/distinfo b/graphics/qt6-wayland/distinfo index 971f48dac553..2d5d8f905c6b 100644 --- a/graphics/qt6-wayland/distinfo +++ b/graphics/qt6-wayland/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661408 -SHA256 (KDE/Qt/6.6.3/qtwayland-everywhere-src-6.6.3.tar.xz) = a96ecc0fecc05f9e18cfb7806fe5ebd7416be94e8f51ebeca75c80412f66553d -SIZE (KDE/Qt/6.6.3/qtwayland-everywhere-src-6.6.3.tar.xz) = 1120056 +TIMESTAMP = 1712113061 +SHA256 (KDE/Qt/6.7.0/qtwayland-everywhere-src-6.7.0.tar.xz) = d73470e4217da388d8cd2a517ee8bb373853f33c569306e80f04397845157aea +SIZE (KDE/Qt/6.7.0/qtwayland-everywhere-src-6.7.0.tar.xz) = 1121748 diff --git a/graphics/qt6-wayland/pkg-plist b/graphics/qt6-wayland/pkg-plist index 2dd0c39bc719..80cf5b266fdf 100644 --- a/graphics/qt6-wayland/pkg-plist +++ b/graphics/qt6-wayland/pkg-plist @@ -12,7 +12,7 @@ %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwayland-tablet-unstable-v2.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwayland-text-input-unstable-v1.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwayland-text-input-unstable-v2.h -%%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwayland-text-input-unstable-v4-wip.h +%%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwayland-text-input-unstable-v3.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwayland-touch-extension.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwayland-viewporter.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwayland-wayland.h @@ -68,6 +68,7 @@ %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwaylandtextinputinterface_p.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwaylandtextinputv1_p.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwaylandtextinputv2_p.h +%%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwaylandtextinputv3_p.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwaylandtouch_p.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwaylandviewport_p.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/qwaylandvulkaninstance_p.h @@ -86,7 +87,7 @@ %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/wayland-tablet-unstable-v2-client-protocol.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/wayland-text-input-unstable-v1-client-protocol.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/wayland-text-input-unstable-v2-client-protocol.h -%%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/wayland-text-input-unstable-v4-wip-client-protocol.h +%%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/wayland-text-input-unstable-v3-client-protocol.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/wayland-touch-extension-client-protocol.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/wayland-viewporter-client-protocol.h %%QT_INCDIR%%/QtWaylandClient/%%FULLVER%%/QtWaylandClient/private/wayland-wayland-client-protocol.h @@ -103,7 +104,6 @@ %%QT_INCDIR%%/QtWaylandClient/qtwaylandclientexports.h %%QT_INCDIR%%/QtWaylandClient/qtwaylandclientglobal.h %%QT_INCDIR%%/QtWaylandClient/qtwaylandclientversion.h -%%QT_INCDIR%%/QtWaylandClient/qwaylandclientexport.h %%QT_INCDIR%%/QtWaylandClient/qwaylandclientextension.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qtwaylandcompositor-config_p.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qtwaylandcompositorglobal_p.h @@ -118,7 +118,7 @@ %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwayland-server-scaler.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwayland-server-server-buffer-extension.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwayland-server-text-input-unstable-v2.h -%%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwayland-server-text-input-unstable-v4-wip.h +%%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwayland-server-text-input-unstable-v3.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwayland-server-touch-extension.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwayland-server-viewporter.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwayland-server-wayland.h @@ -154,6 +154,8 @@ %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwaylandsurface_p.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwaylandtextinput_p.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwaylandtextinputmanager_p.h +%%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwaylandtextinputmanagerv3_p.h +%%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwaylandtextinputv3_p.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwaylandtouch_p.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwaylandutils_p.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/qwaylandview_p.h @@ -196,7 +198,7 @@ %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/wayland-scaler-server-protocol.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/wayland-server-buffer-extension-server-protocol.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/wayland-text-input-unstable-v2-server-protocol.h -%%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/wayland-text-input-unstable-v4-wip-server-protocol.h +%%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/wayland-text-input-unstable-v3-server-protocol.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/wayland-touch-extension-server-protocol.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/wayland-viewporter-server-protocol.h %%QT_INCDIR%%/QtWaylandCompositor/%%FULLVER%%/QtWaylandCompositor/private/wayland-wayland-server-protocol.h @@ -242,6 +244,8 @@ %%QT_INCDIR%%/QtWaylandCompositor/QWaylandSurfaceRole %%QT_INCDIR%%/QtWaylandCompositor/QWaylandTextInput %%QT_INCDIR%%/QtWaylandCompositor/QWaylandTextInputManager +%%QT_INCDIR%%/QtWaylandCompositor/QWaylandTextInputManagerV3 +%%QT_INCDIR%%/QtWaylandCompositor/QWaylandTextInputV3 %%QT_INCDIR%%/QtWaylandCompositor/QWaylandTouch %%QT_INCDIR%%/QtWaylandCompositor/QWaylandView %%QT_INCDIR%%/QtWaylandCompositor/QWaylandViewporter @@ -268,7 +272,6 @@ %%QT_INCDIR%%/QtWaylandCompositor/qwaylandcompositorextension.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylanddestroylistener.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylanddrag.h -%%QT_INCDIR%%/QtWaylandCompositor/qwaylandexport.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylandidleinhibitv1.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylandinputmethodcontrol.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylandiviapplication.h @@ -298,6 +301,8 @@ %%QT_INCDIR%%/QtWaylandCompositor/qwaylandsurfacegrabber.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylandtextinput.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylandtextinputmanager.h +%%QT_INCDIR%%/QtWaylandCompositor/qwaylandtextinputmanagerv3.h +%%QT_INCDIR%%/QtWaylandCompositor/qwaylandtextinputv3.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylandtouch.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylandview.h %%QT_INCDIR%%/QtWaylandCompositor/qwaylandviewporter.h diff --git a/misc/qt6-doc/distinfo b/misc/qt6-doc/distinfo index d651634dca43..6afacbe9135b 100644 --- a/misc/qt6-doc/distinfo +++ b/misc/qt6-doc/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711661445 -SHA256 (KDE/Qt/6.6.3/qtdoc-everywhere-src-6.6.3.tar.xz) = 08850585ea4cae04909a38bcb1318487c546fa6a0c350afda21ab0f356e3eac8 -SIZE (KDE/Qt/6.6.3/qtdoc-everywhere-src-6.6.3.tar.xz) = 13238476 +TIMESTAMP = 1712113085 +SHA256 (KDE/Qt/6.7.0/qtdoc-everywhere-src-6.7.0.tar.xz) = 991e5e10c04de4b5cc14577adaad69375dd092ee95a1577c0ce377c4b2019c40 +SIZE (KDE/Qt/6.7.0/qtdoc-everywhere-src-6.7.0.tar.xz) = 13974180 diff --git a/misc/qt6-doc/pkg-plist b/misc/qt6-doc/pkg-plist index 1e946c46b5c7..373bde1aa6d6 100644 --- a/misc/qt6-doc/pkg-plist +++ b/misc/qt6-doc/pkg-plist @@ -37,7 +37,7 @@ %%QT_DOCDIR%%/qtdoc/activeqt-testcon.html %%QT_DOCDIR%%/qtdoc/android-3rdparty-libs.html %%QT_DOCDIR%%/qtdoc/android-build-environment-variables.html -%%QT_DOCDIR%%/qtdoc/android-building-user-projects.html +%%QT_DOCDIR%%/qtdoc/android-building-projects-from-commandline.html %%QT_DOCDIR%%/qtdoc/android-building.html %%QT_DOCDIR%%/qtdoc/android-emojis.html %%QT_DOCDIR%%/qtdoc/android-environment-variables.html @@ -116,12 +116,14 @@ %%QT_DOCDIR%%/qtdoc/images/btn_prev.png %%QT_DOCDIR%%/qtdoc/images/bullet_dn.png %%QT_DOCDIR%%/qtdoc/images/bullet_sq.png +%%QT_DOCDIR%%/qtdoc/images/car_configurator_overview.png %%QT_DOCDIR%%/qtdoc/images/coffee_machine_modify.png %%QT_DOCDIR%%/qtdoc/images/coffee_machine_overview.png %%QT_DOCDIR%%/qtdoc/images/coffee_machine_selection.png %%QT_DOCDIR%%/qtdoc/images/colorpalette_editing.png %%QT_DOCDIR%%/qtdoc/images/colorpalette_listing.png %%QT_DOCDIR%%/qtdoc/images/colorpalette_urlselection.png +%%QT_DOCDIR%%/qtdoc/images/colorpalette_userlisting.png %%QT_DOCDIR%%/qtdoc/images/controls.png %%QT_DOCDIR%%/qtdoc/images/deployment-mac-application.png %%QT_DOCDIR%%/qtdoc/images/deployment-mac-bundlestructure.png @@ -147,6 +149,7 @@ %%QT_DOCDIR%%/qtdoc/images/icon_Tools.png %%QT_DOCDIR%%/qtdoc/images/integrity-os.png %%QT_DOCDIR%%/qtdoc/images/layout-examples.png +%%QT_DOCDIR%%/qtdoc/images/lightningviewer.jpg %%QT_DOCDIR%%/qtdoc/images/logo.png %%QT_DOCDIR%%/qtdoc/images/mainscreen.png %%QT_DOCDIR%%/qtdoc/images/maintenancetool.png @@ -156,6 +159,7 @@ %%QT_DOCDIR%%/qtdoc/images/nmvurCcsWos.jpg %%QT_DOCDIR%%/qtdoc/images/ok.png %%QT_DOCDIR%%/qtdoc/images/open-project.png +%%QT_DOCDIR%%/qtdoc/images/osmbuildings.jpg %%QT_DOCDIR%%/qtdoc/images/piemenu.gif %%QT_DOCDIR%%/qtdoc/images/project-structure.png %%QT_DOCDIR%%/qtdoc/images/project_structure.png @@ -170,6 +174,7 @@ %%QT_DOCDIR%%/qtdoc/images/qml-uses-visual-opacity.png %%QT_DOCDIR%%/qtdoc/images/qml-uses-visual-rectangles.png %%QT_DOCDIR%%/qtdoc/images/qml-uses-visual-transforms.png +%%QT_DOCDIR%%/qtdoc/images/qt-android-architecture.drawio.svg %%QT_DOCDIR%%/qtdoc/images/qt-codesample.png %%QT_DOCDIR%%/qtdoc/images/qt-edu-apply.png %%QT_DOCDIR%%/qtdoc/images/qt-edu-browse-qbsp.png @@ -192,7 +197,6 @@ %%QT_DOCDIR%%/qtdoc/images/qt-edu-qbsp-download.png %%QT_DOCDIR%%/qtdoc/images/qt-edu-qbsp.png %%QT_DOCDIR%%/qtdoc/images/qt-embedded-fontfeatures.png -%%QT_DOCDIR%%/qtdoc/images/qt_android_architecture.png %%QT_DOCDIR%%/qtdoc/images/qtcreator-clazy-checks-for-porting-to-qt6.png %%QT_DOCDIR%%/qtdoc/images/qtcreator-create-templates.png %%QT_DOCDIR%%/qtdoc/images/qtcreator-qt-quick-editors.png @@ -279,6 +283,7 @@ %%QT_DOCDIR%%/qtdoc/newclasses64.html %%QT_DOCDIR%%/qtdoc/newclasses65.html %%QT_DOCDIR%%/qtdoc/newclasses66.html +%%QT_DOCDIR%%/qtdoc/newclasses67.html %%QT_DOCDIR%%/qtdoc/obsoleteclasses.html %%QT_DOCDIR%%/qtdoc/obsoleteqmltypes.html %%QT_DOCDIR%%/qtdoc/overviews-main.html @@ -325,6 +330,7 @@ %%QT_DOCDIR%%/qtdoc/qtdoc-attribution-thermostatexample-phosphoricons.html %%QT_DOCDIR%%/qtdoc/qtdoc-attribution-todolistexample-materialicons.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-calqlatr-example.html +%%QT_DOCDIR%%/qtdoc/qtdoc-demos-car-configurator-example.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-clocks-example.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-coffee-example.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-colorpaletteclient-example.html @@ -333,7 +339,9 @@ %%QT_DOCDIR%%/qtdoc/qtdoc-demos-documentviewer-plugins-txtviewer-example.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-fx-material-showroom-example.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-hangman-example.html +%%QT_DOCDIR%%/qtdoc/qtdoc-demos-lightningviewer-example.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-mediaplayer-example.html +%%QT_DOCDIR%%/qtdoc/qtdoc-demos-osmbuildings-example.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-photosurface-example.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-robotarm-example.html %%QT_DOCDIR%%/qtdoc/qtdoc-demos-rssnews-example.html @@ -406,6 +414,7 @@ %%QT_DOCDIR%%/qtdoc/uic.html %%QT_DOCDIR%%/qtdoc/unicode.html %%QT_DOCDIR%%/qtdoc/unix-signals.html +%%QT_DOCDIR%%/qtdoc/vxworks.html %%QT_DOCDIR%%/qtdoc/wasm.html %%QT_DOCDIR%%/qtdoc/wayland-and-qt.html %%QT_DOCDIR%%/qtdoc/webos.html @@ -416,6 +425,7 @@ %%QT_DOCDIR%%/qtdoc/whatsnew64.html %%QT_DOCDIR%%/qtdoc/whatsnew65.html %%QT_DOCDIR%%/qtdoc/whatsnew66.html +%%QT_DOCDIR%%/qtdoc/whatsnew67.html %%QT_DOCDIR%%/qtdoc/whatsnewqt6.html %%QT_DOCDIR%%/qtdoc/why-moc.html %%QT_DOCDIR%%/qtdoc/windows-building.html diff --git a/misc/qt6-examples/Makefile b/misc/qt6-examples/Makefile index 36d10bdbfd27..6fb8ea33badb 100644 --- a/misc/qt6-examples/Makefile +++ b/misc/qt6-examples/Makefile @@ -1,7 +1,7 @@ PORTNAME= examples DISTVERSION= ${QT6_VERSION} CATEGORIES= misc -MASTER_SITES= QT/official_releases/qt/${QT6_VERSION:R}/${QT6_VERSION}/single +MASTER_SITES= QT/${_QT6_RELEASE_TYPE}_releases/qt/${QT6_VERSION:R}/${QT6_VERSION}/single PKGNAMEPREFIX= qt6- DISTNAME= qt-everywhere-src-${QT6_VERSION} DIST_SUBDIR= KDE/Qt/${QT6_VERSION} diff --git a/misc/qt6-examples/distinfo b/misc/qt6-examples/distinfo index 5210a2ca11f0..22a0b03984a9 100644 --- a/misc/qt6-examples/distinfo +++ b/misc/qt6-examples/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711663435 -SHA256 (KDE/Qt/6.6.3/qt-everywhere-src-6.6.3.tar.xz) = 69d0348fef415da98aa890a34651e9cfb232f1bffcee289b7b4e21386bf36104 -SIZE (KDE/Qt/6.6.3/qt-everywhere-src-6.6.3.tar.xz) = 801192112 +TIMESTAMP = 1712114556 +SHA256 (KDE/Qt/6.7.0/qt-everywhere-src-6.7.0.tar.xz) = bf5089912364f99cf9baf6c109de76a3172eec6267f148c69800575c47f90087 +SIZE (KDE/Qt/6.7.0/qt-everywhere-src-6.7.0.tar.xz) = 934507900 diff --git a/misc/qt6-examples/pkg-plist b/misc/qt6-examples/pkg-plist index f61e820cbe6f..0921e2a98d94 100644 --- a/misc/qt6-examples/pkg-plist +++ b/misc/qt6-examples/pkg-plist @@ -27,14 +27,6 @@ %%QT_EXAMPLEDIR%%/activeqt/simple/simple.inf %%QT_EXAMPLEDIR%%/activeqt/simple/simple.pro %%QT_EXAMPLEDIR%%/activeqt/simple/simple.rc -%%QT_EXAMPLEDIR%%/activeqt/simpleqml/CMakeLists.txt -%%QT_EXAMPLEDIR%%/activeqt/simpleqml/main.cpp -%%QT_EXAMPLEDIR%%/activeqt/simpleqml/main.qml -%%QT_EXAMPLEDIR%%/activeqt/simpleqml/simpleqml.def -%%QT_EXAMPLEDIR%%/activeqt/simpleqml/simpleqml.ico -%%QT_EXAMPLEDIR%%/activeqt/simpleqml/simpleqml.pro -%%QT_EXAMPLEDIR%%/activeqt/simpleqml/simpleqml.qrc -%%QT_EXAMPLEDIR%%/activeqt/simpleqml/simpleqml.rc %%QT_EXAMPLEDIR%%/activeqt/wrapper/CMakeLists.txt %%QT_EXAMPLEDIR%%/activeqt/wrapper/doc/src/wrapper.qdoc %%QT_EXAMPLEDIR%%/activeqt/wrapper/main.cpp @@ -832,11 +824,17 @@ %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/car/main.cpp %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/common/car.xml %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/CMakeLists.txt +%%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/connected.svg +%%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/connecting.svg %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/controller.cpp %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/controller.h %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/controller.pro -%%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/controller.ui +%%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/down.svg +%%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/icons.qrc +%%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/left.svg %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/main.cpp +%%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/right.svg +%%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/controller/up.svg %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/doc/images/remotecontrolledcar-car-example.webp %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/doc/src/dbus-remotecontrolledcar.qdoc %%QT_EXAMPLEDIR%%/dbus/remotecontrolledcar/remotecontrolledcar.pro @@ -981,6 +979,7 @@ %%QT_EXAMPLEDIR%%/demos/FX_Material_Showroom/src/import_qml_plugins.h %%QT_EXAMPLEDIR%%/demos/FX_Material_Showroom/src/main.cpp %%QT_EXAMPLEDIR%%/demos/calqlatr/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/calqlatr/Main.qml %%QT_EXAMPLEDIR%%/demos/calqlatr/android/AndroidManifest.xml %%QT_EXAMPLEDIR%%/demos/calqlatr/android/res/drawable-hdpi/icon.png %%QT_EXAMPLEDIR%%/demos/calqlatr/android/res/drawable-ldpi/icon.png @@ -989,21 +988,105 @@ %%QT_EXAMPLEDIR%%/demos/calqlatr/android/res/drawable-xxhdpi/icon.png %%QT_EXAMPLEDIR%%/demos/calqlatr/android/res/drawable-xxxhdpi/icon.png %%QT_EXAMPLEDIR%%/demos/calqlatr/calqlatr.pro -%%QT_EXAMPLEDIR%%/demos/calqlatr/calqlatr.qml %%QT_EXAMPLEDIR%%/demos/calqlatr/calqlatr.qmlproject %%QT_EXAMPLEDIR%%/demos/calqlatr/calqlatr.qrc +%%QT_EXAMPLEDIR%%/demos/calqlatr/content/BackspaceButton.qml %%QT_EXAMPLEDIR%%/demos/calqlatr/content/CalculatorButton.qml %%QT_EXAMPLEDIR%%/demos/calqlatr/content/Display.qml %%QT_EXAMPLEDIR%%/demos/calqlatr/content/NumberPad.qml %%QT_EXAMPLEDIR%%/demos/calqlatr/content/calculator.js -%%QT_EXAMPLEDIR%%/demos/calqlatr/content/images/paper-edge-left.png -%%QT_EXAMPLEDIR%%/demos/calqlatr/content/images/paper-edge-right.png -%%QT_EXAMPLEDIR%%/demos/calqlatr/content/images/paper-grip.png +%%QT_EXAMPLEDIR%%/demos/calqlatr/content/images/backspace.svg +%%QT_EXAMPLEDIR%%/demos/calqlatr/content/images/backspace_fill.svg %%QT_EXAMPLEDIR%%/demos/calqlatr/doc/images/qtquick-demo-calqlatr.png %%QT_EXAMPLEDIR%%/demos/calqlatr/doc/src/calqlatr.qdoc %%QT_EXAMPLEDIR%%/demos/calqlatr/ios/Assets.xcassets/AppIcon.appiconset/AppleIconCalqlatr.png %%QT_EXAMPLEDIR%%/demos/calqlatr/ios/Assets.xcassets/AppIcon.appiconset/Contents.json %%QT_EXAMPLEDIR%%/demos/calqlatr/main.cpp +%%QT_EXAMPLEDIR%%/demos/car-configurator/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/CarRendering.qmlproject +%%QT_EXAMPLEDIR%%/demos/car-configurator/CarRendering.qmlproject.qtds +%%QT_EXAMPLEDIR%%/demos/car-configurator/CarRendering.qrc +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/CarPaintMaterial.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/_asset_ref.json +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/designer/carpaint.metainfo +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/designer/images/material.png +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/designer/images/material16.png +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/designer/images/material@2x.png +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/images/LDR_RGB1_3.png +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/qmldir +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/shaders/carmat_simple_nf.frag +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/ComponentBundles/MaterialBundle/shaders/carmat_simple_nf.vert +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/EV_SportsCar_low/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/EV_SportsCar_low/Ev_SportsCar_low.hints +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/EV_SportsCar_low/Ev_SportsCar_low.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/EV_SportsCar_low/qmldir +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5ofde_LOD0/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5ofde_LOD0/Uk5ofde_LOD0.hints +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5ofde_LOD0/Uk5ofde_LOD0.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5ofde_LOD0/_icons/Uk5ofde_LOD0_libicon +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5ofde_LOD0/_icons/Uk5ofde_LOD0_libicon@2x +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5ofde_LOD0/qmldir +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5pebv_LOD0/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5pebv_LOD0/Uk5pebv_LOD0.hints +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5pebv_LOD0/Uk5pebv_LOD0.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5pebv_LOD0/_icons/Uk5pebv_LOD0_libicon +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5pebv_LOD0/_icons/Uk5pebv_LOD0_libicon@2x +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Uk5pebv_LOD0/qmldir +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ulbrbdt_LOD0/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ulbrbdt_LOD0/Ulbrbdt_LOD0.hints +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ulbrbdt_LOD0/Ulbrbdt_LOD0.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ulbrbdt_LOD0/_icons/Ulbrbdt_LOD0_libicon +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ulbrbdt_LOD0/_icons/Ulbrbdt_LOD0_libicon@2x +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ulbrbdt_LOD0/qmldir +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Venodhb_LOD0/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Venodhb_LOD0/Venodhb_LOD0.hints +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Venodhb_LOD0/Venodhb_LOD0.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Venodhb_LOD0/_icons/Venodhb_LOD0_libicon +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Venodhb_LOD0/_icons/Venodhb_LOD0_libicon@2x +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Venodhb_LOD0/qmldir +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ventdee_LOD0/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ventdee_LOD0/Ventdee_LOD0.hints +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ventdee_LOD0/Ventdee_LOD0.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ventdee_LOD0/_icons/Ventdee_LOD0_libicon +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ventdee_LOD0/_icons/Ventdee_LOD0_libicon@2x +%%QT_EXAMPLEDIR%%/demos/car-configurator/asset_imports/Quick3DAssets/Ventdee_LOD0/qmldir +%%QT_EXAMPLEDIR%%/demos/car-configurator/assets/assets_download.json +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/App.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/CameraReset.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/DebugBox.ui.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/FigmaExportCarConfig/Icons.ui.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/FigmaExportCarConfig/Logo.ui.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/FigmaExportCarConfig/SvgPathItem.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/Headlights.ui.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/KissButton.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/KissButtonSeparator.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/MouseRotatorAndWASD.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/PinchWidget.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/ScreenPrimary.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/WallEffect1/WallEffect1.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/WallEffect2/WallEffect2.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/WallEffect3/WallEffect3.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/content/images/builtWithQt.png +%%QT_EXAMPLEDIR%%/demos/car-configurator/doc/images/car_configurator_overview.png +%%QT_EXAMPLEDIR%%/demos/car-configurator/doc/src/car_configurator.qdoc +%%QT_EXAMPLEDIR%%/demos/car-configurator/hdr.qrc +%%QT_EXAMPLEDIR%%/demos/car-configurator/hdr_low.qrc +%%QT_EXAMPLEDIR%%/demos/car-configurator/imports/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/imports/CarRendering/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/car-configurator/imports/CarRendering/Constants.qml +%%QT_EXAMPLEDIR%%/demos/car-configurator/imports/CarRendering/assetdownloader.cpp +%%QT_EXAMPLEDIR%%/demos/car-configurator/imports/CarRendering/assetdownloader.h +%%QT_EXAMPLEDIR%%/demos/car-configurator/imports/CarRendering/qmldir +%%QT_EXAMPLEDIR%%/demos/car-configurator/qmlmodules.cmake +%%QT_EXAMPLEDIR%%/demos/car-configurator/qtquickcontrols2.conf +%%QT_EXAMPLEDIR%%/demos/car-configurator/src/app_environment.h +%%QT_EXAMPLEDIR%%/demos/car-configurator/src/import_qml_components_plugins.h +%%QT_EXAMPLEDIR%%/demos/car-configurator/src/import_qml_plugins.h +%%QT_EXAMPLEDIR%%/demos/car-configurator/src/main.cpp %%QT_EXAMPLEDIR%%/demos/clocks/CMakeLists.txt %%QT_EXAMPLEDIR%%/demos/clocks/clocks.pro %%QT_EXAMPLEDIR%%/demos/clocks/clocks.qml @@ -1026,18 +1109,50 @@ %%QT_EXAMPLEDIR%%/demos/coffee/ApplicationFlowForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/CMakeLists.txt %%QT_EXAMPLEDIR%%/demos/coffee/ChoosingCoffee.qml +%%QT_EXAMPLEDIR%%/demos/coffee/ChoosingCoffeeForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/CoffeeCard.qml +%%QT_EXAMPLEDIR%%/demos/coffee/CoffeeCardForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/Colors.qml %%QT_EXAMPLEDIR%%/demos/coffee/Cup.qml +%%QT_EXAMPLEDIR%%/demos/coffee/Cup.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/CustomButton.qml +%%QT_EXAMPLEDIR%%/demos/coffee/CustomButtonForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/CustomSlider.qml +%%QT_EXAMPLEDIR%%/demos/coffee/CustomSliderForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/CustomToolBar.qml +%%QT_EXAMPLEDIR%%/demos/coffee/CustomToolBarForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/Home.qml +%%QT_EXAMPLEDIR%%/demos/coffee/HomeForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/Insert.qml -%%QT_EXAMPLEDIR%%/demos/coffee/LICENSE.txt +%%QT_EXAMPLEDIR%%/demos/coffee/InsertForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/Progress.qml +%%QT_EXAMPLEDIR%%/demos/coffee/ProgressForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/Ready.qml +%%QT_EXAMPLEDIR%%/demos/coffee/ReadyForm.ui.qml %%QT_EXAMPLEDIR%%/demos/coffee/Settings.qml +%%QT_EXAMPLEDIR%%/demos/coffee/SettingsForm.ui.qml +%%QT_EXAMPLEDIR%%/demos/coffee/android/AndroidManifest.xml +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-anydpi-v26/ic_launcher.xml +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-hdpi/ic_launcher.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-hdpi/ic_launcher_background.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-hdpi/ic_launcher_foreground.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-hdpi/ic_launcher_monochrome.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-mdpi/ic_launcher.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-mdpi/ic_launcher_background.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-mdpi/ic_launcher_foreground.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-mdpi/ic_launcher_monochrome.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xhdpi/ic_launcher.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xhdpi/ic_launcher_background.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xhdpi/ic_launcher_foreground.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xhdpi/ic_launcher_monochrome.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xxhdpi/ic_launcher.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xxhdpi/ic_launcher_background.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xxhdpi/ic_launcher_foreground.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xxhdpi/ic_launcher_monochrome.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xxxhdpi/ic_launcher.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xxxhdpi/ic_launcher_background.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xxxhdpi/ic_launcher_foreground.png +%%QT_EXAMPLEDIR%%/demos/coffee/android/res/mipmap-xxxhdpi/ic_launcher_monochrome.png %%QT_EXAMPLEDIR%%/demos/coffee/coffee.pro %%QT_EXAMPLEDIR%%/demos/coffee/coffeemachine.qrc %%QT_EXAMPLEDIR%%/demos/coffee/doc/images/coffee_machine_emptycup.png @@ -1067,60 +1182,55 @@ %%QT_EXAMPLEDIR%%/demos/coffee/images/icons/keyboard_backspace_white_left.svg %%QT_EXAMPLEDIR%%/demos/coffee/images/icons/keyboard_backspace_white_right.svg %%QT_EXAMPLEDIR%%/demos/coffee/images/icons/light_mode_black_24dp.svg +%%QT_EXAMPLEDIR%%/demos/coffee/ios/Assets.xcassets/AppIcon.appiconset/App Icon-Coffee.png +%%QT_EXAMPLEDIR%%/demos/coffee/ios/Assets.xcassets/AppIcon.appiconset/Contents.json %%QT_EXAMPLEDIR%%/demos/coffee/main.cpp %%QT_EXAMPLEDIR%%/demos/coffee/main.qml %%QT_EXAMPLEDIR%%/demos/coffee/qmldir %%QT_EXAMPLEDIR%%/demos/coffee/qtquickcontrols2.conf %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/CMakeLists.txt -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/MainWindow.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/ColorPalette/ColorDialogDelete.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/ColorPalette/ColorDialogEditor.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/ColorPalette/ColorView.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/ColorPalette/Main.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/ColorPalette/ServerSelection.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/ColorPalette/UserMenu.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/ColorPalette/qmldir +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/QtExampleStyle/Button.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/QtExampleStyle/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/QtExampleStyle/Popup.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/QtExampleStyle/TextField.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/QtExampleStyle/UIStyle.qml +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/QtExampleStyle/qmldir %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/abstractresource.h %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/basiclogin.cpp %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/basiclogin.h +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/colorpalette.qrc %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/colorpaletteclient.pro %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/doc/images/colorpalette_editing.png %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/doc/images/colorpalette_listing.png %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/doc/images/colorpalette_urlselection.png +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/doc/images/colorpalette_userlisting.png %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/doc/src/colorpaletteclient.qdoc -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20/add.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20/delete.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20/edit.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20/file_upload.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20/login.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20/logout.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20/refresh.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@2/add.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@2/delete.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@2/edit.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@2/file_upload.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@2/login.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@2/logout.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@2/refresh.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@3/add.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@3/delete.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@3/edit.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@3/file_upload.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@3/login.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@3/logout.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@3/refresh.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@4/add.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@4/delete.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@4/edit.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@4/file_upload.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@4/login.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@4/logout.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/20x20@4/refresh.png -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/index.theme -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/colorpaletteclient/qt_attribution.json +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/close.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/delete.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/dots.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/edit.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/login.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/logout.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/ok.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/plus.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/qt.png +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/qt_attribution.json +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/testserver.png +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/update.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/user.svg +%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/icons/userMask.svg %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/main.cpp %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/paginatedresource.cpp %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/paginatedresource.h -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/qmldir -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/restaccessmanager.cpp -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/restaccessmanager.h %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/restservice.cpp %%QT_EXAMPLEDIR%%/demos/colorpaletteclient/restservice.h -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/util.cpp -%%QT_EXAMPLEDIR%%/demos/colorpaletteclient/util.h %%QT_EXAMPLEDIR%%/demos/demos.pro %%QT_EXAMPLEDIR%%/demos/dice/CMakeLists.txt %%QT_EXAMPLEDIR%%/demos/dice/Carpet.qml @@ -1229,6 +1339,12 @@ %%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/pdfviewer/pdfviewer.json %%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/pdfviewer/zoomselector.cpp %%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/pdfviewer/zoomselector.h +%%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/q3dviewer/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/q3dviewer/q3dviewer.cpp +%%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/q3dviewer/q3dviewer.h +%%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/q3dviewer/q3dviewer.json +%%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/q3dviewer/q3dviewer.qml +%%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/q3dviewer/queryMimeTypes.qml %%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/txtviewer/CMakeLists.txt %%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/txtviewer/txtviewer.cpp %%QT_EXAMPLEDIR%%/demos/documentviewer/plugins/txtviewer/txtviewer.h @@ -1295,6 +1411,141 @@ %%QT_EXAMPLEDIR%%/demos/hangman/qml/StoreView.qml %%QT_EXAMPLEDIR%%/demos/hangman/qml/Word.qml %%QT_EXAMPLEDIR%%/demos/hangman/resources.qrc +%%QT_EXAMPLEDIR%%/demos/lightningviewer/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/lightningviewer/Info.plist +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/ActionsLayer.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/DistanceTimeLayer.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/LightningMapLayer.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/LightningView.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/LightningViewConfig.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/Main.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/MapLayersDrawer.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/MapLayersItem.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/MapType.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/MapView.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/SwitchMap.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/controller.cpp +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/controller.h +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/icons/distance.svg +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/icons/globe.svg +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/icons/lightning-layer.svg +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/icons/lightning-strike.svg +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/icons/map-layers.svg +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/icons/map.svg +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/icons/recenter.svg +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/icons/user-location.svg +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/laststrikeinfo.h +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/lightningitemdata.cpp +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/lightningitemdata.h +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/lightningitemmodel.cpp +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/lightningitemmodel.h +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/lightningprovider.cpp +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewer/lightningprovider.h +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/Button.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/Config.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/RoundButton.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/StyleImage.qml +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-checked-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-checked-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-checked-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-checked-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-checked-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-checked-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-checked.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-checked@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/button-background@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-checked-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-checked-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-checked-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-checked-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-checked-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-checked-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-checked.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-checked@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/flatbutton-background@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-checked-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-checked-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-checked-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-checked-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-checked-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-checked-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-checked.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-checked@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/dark/images/roundbutton-background@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-checked-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-checked-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-checked-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-checked-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-checked-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-checked-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-checked.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-checked@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/button-background@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-checked-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-checked-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-checked-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-checked-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-checked-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-checked-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-checked.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-checked@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/flatbutton-background@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-checked-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-checked-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-checked-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-checked-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-checked-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-checked-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-checked.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-checked@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-disabled.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-disabled@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-hovered.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-hovered@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-pressed.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background-pressed@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/LightningViewerStyle/light/images/roundbutton-background@2x.png +%%QT_EXAMPLEDIR%%/demos/lightningviewer/doc/images/lightningviewer.jpg +%%QT_EXAMPLEDIR%%/demos/lightningviewer/doc/src/lightningviewer.qdoc +%%QT_EXAMPLEDIR%%/demos/lightningviewer/main.cpp %%QT_EXAMPLEDIR%%/demos/maroon/CMakeLists.txt %%QT_EXAMPLEDIR%%/demos/maroon/content/BuildButton.qml %%QT_EXAMPLEDIR%%/demos/maroon/content/GameCanvas.qml @@ -1457,6 +1708,23 @@ %%QT_EXAMPLEDIR%%/demos/mediaplayer/main.cpp %%QT_EXAMPLEDIR%%/demos/mediaplayer/mediaplayer.py %%QT_EXAMPLEDIR%%/demos/mediaplayer/mediaplayer.pyproject +%%QT_EXAMPLEDIR%%/demos/osmbuildings/3rdparty/mapbox/earcut.h +%%QT_EXAMPLEDIR%%/demos/osmbuildings/CMakeLists.txt +%%QT_EXAMPLEDIR%%/demos/osmbuildings/Main.qml +%%QT_EXAMPLEDIR%%/demos/osmbuildings/OSMCameraController.qml +%%QT_EXAMPLEDIR%%/demos/osmbuildings/customshaderbuildings.frag +%%QT_EXAMPLEDIR%%/demos/osmbuildings/customshaderbuildings.vert +%%QT_EXAMPLEDIR%%/demos/osmbuildings/customshadertiles.frag +%%QT_EXAMPLEDIR%%/demos/osmbuildings/doc/images/osmbuildings.jpg +%%QT_EXAMPLEDIR%%/demos/osmbuildings/doc/src/osmbuildings.qdoc +%%QT_EXAMPLEDIR%%/demos/osmbuildings/geometry.cpp +%%QT_EXAMPLEDIR%%/demos/osmbuildings/geometry.h +%%QT_EXAMPLEDIR%%/demos/osmbuildings/main.cpp +%%QT_EXAMPLEDIR%%/demos/osmbuildings/manager.cpp +%%QT_EXAMPLEDIR%%/demos/osmbuildings/manager.h +%%QT_EXAMPLEDIR%%/demos/osmbuildings/qml.qrc +%%QT_EXAMPLEDIR%%/demos/osmbuildings/request.cpp +%%QT_EXAMPLEDIR%%/demos/osmbuildings/request.h %%QT_EXAMPLEDIR%%/demos/photosurface/CMakeLists.txt %%QT_EXAMPLEDIR%%/demos/photosurface/doc/images/qtquick-demo-photosurface-small.png %%QT_EXAMPLEDIR%%/demos/photosurface/doc/src/photosurface.qdoc @@ -1620,6 +1888,7 @@ %%QT_EXAMPLEDIR%%/demos/samegame/samegame.qml %%QT_EXAMPLEDIR%%/demos/samegame/samegame.qmlproject %%QT_EXAMPLEDIR%%/demos/samegame/samegame.qrc +%%QT_EXAMPLEDIR%%/demos/shared/QtBundleQmlModuleForMacOS.cmake %%QT_EXAMPLEDIR%%/demos/stocqt/CMakeLists.txt %%QT_EXAMPLEDIR%%/demos/stocqt/Main.qml %%QT_EXAMPLEDIR%%/demos/stocqt/content/CMakeLists.txt @@ -2130,33 +2399,6 @@ %%QT_EXAMPLEDIR%%/demos/todolist/src/app_environment.h %%QT_EXAMPLEDIR%%/demos/todolist/src/import_qml_plugins.h %%QT_EXAMPLEDIR%%/demos/todolist/src/main.cpp -%%QT_EXAMPLEDIR%%/demos/tweetsearch/CMakeLists.txt -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/FlipBar.qml -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/LineInput.qml -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/ListFooter.qml -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/ListHeader.qml -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/SearchDelegate.qml -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/TweetDelegate.qml -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/TweetsModel.qml -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/resources/anonymous.png -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/resources/bird-anim-sprites.png -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/resources/icon-clear.png -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/resources/icon-loading.png -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/resources/icon-refresh.png -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/resources/icon-search.png -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/shaders/compile.bat -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/shaders/effect.frag -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/shaders/effect.frag.qsb -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/shaders/effect.vert -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/shaders/effect.vert.qsb -%%QT_EXAMPLEDIR%%/demos/tweetsearch/content/tweetsearch.mjs -%%QT_EXAMPLEDIR%%/demos/tweetsearch/doc/images/qtquick-demo-tweetsearch-med-1.png -%%QT_EXAMPLEDIR%%/demos/tweetsearch/doc/images/qtquick-demo-tweetsearch-med-2.png -%%QT_EXAMPLEDIR%%/demos/tweetsearch/doc/src/tweetsearch.qdoc -%%QT_EXAMPLEDIR%%/demos/tweetsearch/main.cpp -%%QT_EXAMPLEDIR%%/demos/tweetsearch/tweetsearch.pro -%%QT_EXAMPLEDIR%%/demos/tweetsearch/tweetsearch.qml -%%QT_EXAMPLEDIR%%/demos/tweetsearch/tweetsearch.qmlproject %%QT_EXAMPLEDIR%%/designer/CMakeLists.txt %%QT_EXAMPLEDIR%%/designer/README %%QT_EXAMPLEDIR%%/designer/calculatorbuilder/CMakeLists.txt @@ -2219,159 +2461,134 @@ %%QT_EXAMPLEDIR%%/designer/taskmenuextension/tictactoeplugin.h %%QT_EXAMPLEDIR%%/designer/taskmenuextension/tictactoetaskmenu.cpp %%QT_EXAMPLEDIR%%/designer/taskmenuextension/tictactoetaskmenu.h -%%QT_EXAMPLEDIR%%/embedded/CMakeLists.txt -%%QT_EXAMPLEDIR%%/embedded/digiflip/CMakeLists.txt -%%QT_EXAMPLEDIR%%/embedded/digiflip/digiflip.cpp -%%QT_EXAMPLEDIR%%/embedded/digiflip/digiflip.pro -%%QT_EXAMPLEDIR%%/embedded/embedded.pro -%%QT_EXAMPLEDIR%%/embedded/flickable/CMakeLists.txt -%%QT_EXAMPLEDIR%%/embedded/flickable/flickable.cpp -%%QT_EXAMPLEDIR%%/embedded/flickable/flickable.h -%%QT_EXAMPLEDIR%%/embedded/flickable/flickable.pro -%%QT_EXAMPLEDIR%%/embedded/flickable/main.cpp -%%QT_EXAMPLEDIR%%/embedded/flightinfo/CMakeLists.txt -%%QT_EXAMPLEDIR%%/embedded/flightinfo/aircraft.png -%%QT_EXAMPLEDIR%%/embedded/flightinfo/flightinfo.cpp -%%QT_EXAMPLEDIR%%/embedded/flightinfo/flightinfo.pro -%%QT_EXAMPLEDIR%%/embedded/flightinfo/flightinfo.qrc -%%QT_EXAMPLEDIR%%/embedded/flightinfo/form.ui -%%QT_EXAMPLEDIR%%/embedded/lightmaps/CMakeLists.txt -%%QT_EXAMPLEDIR%%/embedded/lightmaps/lightmaps.cpp -%%QT_EXAMPLEDIR%%/embedded/lightmaps/lightmaps.h -%%QT_EXAMPLEDIR%%/embedded/lightmaps/lightmaps.pro -%%QT_EXAMPLEDIR%%/embedded/lightmaps/main.cpp -%%QT_EXAMPLEDIR%%/embedded/lightmaps/mapzoom.cpp -%%QT_EXAMPLEDIR%%/embedded/lightmaps/mapzoom.h -%%QT_EXAMPLEDIR%%/embedded/lightmaps/slippymap.cpp -%%QT_EXAMPLEDIR%%/embedded/lightmaps/slippymap.h -%%QT_EXAMPLEDIR%%/embedded/raycasting/CMakeLists.txt -%%QT_EXAMPLEDIR%%/embedded/raycasting/raycasting.cpp -%%QT_EXAMPLEDIR%%/embedded/raycasting/raycasting.pro -%%QT_EXAMPLEDIR%%/embedded/raycasting/raycasting.qrc -%%QT_EXAMPLEDIR%%/embedded/raycasting/textures.png -%%QT_EXAMPLEDIR%%/embedded/styleexample/CMakeLists.txt -%%QT_EXAMPLEDIR%%/embedded/styleexample/files/add.png -%%QT_EXAMPLEDIR%%/embedded/styleexample/files/application.qss -%%QT_EXAMPLEDIR%%/embedded/styleexample/files/blue.qss -%%QT_EXAMPLEDIR%%/embedded/styleexample/files/khaki.qss -%%QT_EXAMPLEDIR%%/embedded/styleexample/files/nature_1.jpg -%%QT_EXAMPLEDIR%%/embedded/styleexample/files/nostyle.qss -%%QT_EXAMPLEDIR%%/embedded/styleexample/files/remove.png -%%QT_EXAMPLEDIR%%/embedded/styleexample/files/transparent.qss -%%QT_EXAMPLEDIR%%/embedded/styleexample/main.cpp -%%QT_EXAMPLEDIR%%/embedded/styleexample/styleexample.pro -%%QT_EXAMPLEDIR%%/embedded/styleexample/styleexample.qrc -%%QT_EXAMPLEDIR%%/embedded/styleexample/stylewidget.cpp -%%QT_EXAMPLEDIR%%/embedded/styleexample/stylewidget.h -%%QT_EXAMPLEDIR%%/embedded/styleexample/stylewidget.ui %%QT_EXAMPLEDIR%%/examples.pro -%%QT_EXAMPLEDIR%%/graphs/CMakeLists.txt -%%QT_EXAMPLEDIR%%/graphs/axishandling/CMakeLists.txt -%%QT_EXAMPLEDIR%%/graphs/axishandling/axishandling.pro -%%QT_EXAMPLEDIR%%/graphs/axishandling/axishandling.qrc -%%QT_EXAMPLEDIR%%/graphs/axishandling/customformatter.cpp -%%QT_EXAMPLEDIR%%/graphs/axishandling/customformatter.h -%%QT_EXAMPLEDIR%%/graphs/axishandling/doc/images/axishandling-example.png -%%QT_EXAMPLEDIR%%/graphs/axishandling/doc/src/axishandling.qdoc -%%QT_EXAMPLEDIR%%/graphs/axishandling/main.cpp -%%QT_EXAMPLEDIR%%/graphs/axishandling/qml/axishandling/AxisDragging.qml -%%QT_EXAMPLEDIR%%/graphs/axishandling/qml/axishandling/AxisFormatting.qml -%%QT_EXAMPLEDIR%%/graphs/axishandling/qml/axishandling/Data.qml -%%QT_EXAMPLEDIR%%/graphs/axishandling/qml/axishandling/cube.mesh -%%QT_EXAMPLEDIR%%/graphs/axishandling/qml/axishandling/cubetexture.png -%%QT_EXAMPLEDIR%%/graphs/axishandling/qml/axishandling/main.qml -%%QT_EXAMPLEDIR%%/graphs/axishandling/qmldir -%%QT_EXAMPLEDIR%%/graphs/bars/CMakeLists.txt -%%QT_EXAMPLEDIR%%/graphs/bars/bars.pro -%%QT_EXAMPLEDIR%%/graphs/bars/bars.qrc -%%QT_EXAMPLEDIR%%/graphs/bars/doc/images/bars-example.png -%%QT_EXAMPLEDIR%%/graphs/bars/doc/src/bars.qdoc -%%QT_EXAMPLEDIR%%/graphs/bars/main.cpp -%%QT_EXAMPLEDIR%%/graphs/bars/qml/bars/Axes.qml -%%QT_EXAMPLEDIR%%/graphs/bars/qml/bars/Data.qml -%%QT_EXAMPLEDIR%%/graphs/bars/qml/bars/main.qml -%%QT_EXAMPLEDIR%%/graphs/examples.pri -%%QT_EXAMPLEDIR%%/graphs/graphs.pro -%%QT_EXAMPLEDIR%%/graphs/scatter/CMakeLists.txt -%%QT_EXAMPLEDIR%%/graphs/scatter/doc/images/scatter-example.png -%%QT_EXAMPLEDIR%%/graphs/scatter/doc/src/scatter.qdoc -%%QT_EXAMPLEDIR%%/graphs/scatter/main.cpp -%%QT_EXAMPLEDIR%%/graphs/scatter/qml/scatter/Data.qml -%%QT_EXAMPLEDIR%%/graphs/scatter/qml/scatter/main.qml -%%QT_EXAMPLEDIR%%/graphs/scatter/scatter.pro -%%QT_EXAMPLEDIR%%/graphs/scatter/scatter.qrc -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/CMakeLists.txt -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/datasource.cpp -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/datasource.h -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/doc/images/surfacegallery-example.png -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/doc/src/surfacegallery.qdoc -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/main.cpp -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/qml/surfacegallery/SpectrogramData.qml -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/qml/surfacegallery/SurfaceHeightMap.qml -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/qml/surfacegallery/SurfaceOscilloscope.qml -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/qml/surfacegallery/SurfaceSpectrogram.qml -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/qml/surfacegallery/heightmap.png -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/qml/surfacegallery/heightmap.readme -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/qml/surfacegallery/main.qml -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/surfacegallery.pro -%%QT_EXAMPLEDIR%%/graphs/surfacegallery/surfacegallery.qrc -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/CMakeLists.txt -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/axesinputhandler.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/axesinputhandler.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/bargraph.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/bargraph.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/custominputhandler.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/custominputhandler.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/layer_1.png -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/layer_2.png -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/layer_3.png -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/license.txt -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/maptexture.jpg -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/narrowarrow.mesh -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/oilrig.mesh -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/pipe.mesh -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/raindata.txt -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/refinery.mesh -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/refinery.obj -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/data/topography.png -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/doc/images/widgetgraphgallery-example.png -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/doc/src/widgetgraphgallery.qdoc -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/graphmodifier.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/graphmodifier.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/highlightseries.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/highlightseries.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/main.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/rainfalldata.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/rainfalldata.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/scatterdatamodifier.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/scatterdatamodifier.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/scattergraph.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/scattergraph.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/surfacegraph.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/surfacegraph.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/surfacegraphmodifier.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/surfacegraphmodifier.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/topographicseries.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/topographicseries.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/variantbardatamapping.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/variantbardatamapping.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/variantbardataproxy.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/variantbardataproxy.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/variantdataset.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/variantdataset.h -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/widgetgraphgallery.pro -%%QT_EXAMPLEDIR%%/graphs/widgetgraphgallery/widgetgraphgallery.qrc -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/CMakeLists.txt -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/doc/images/widgetvolumetric-example.png -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/doc/src/widgetvolumetric.qdoc -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/layer_ground.png -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/layer_magma.png -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/layer_water.png -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/main.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/volumetric.cpp -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/volumetric.h -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/widgetvolumetric.pro -%%QT_EXAMPLEDIR%%/graphs/widgetvolumetric/widgetvolumetric.qrc +%%QT_EXAMPLEDIR%%/graphs/2d/2d.pro +%%QT_EXAMPLEDIR%%/graphs/2d/CMakeLists.txt +%%QT_EXAMPLEDIR%%/graphs/2d/examples.pri +%%QT_EXAMPLEDIR%%/graphs/2d/hellographs/CMakeLists.txt +%%QT_EXAMPLEDIR%%/graphs/2d/hellographs/doc/images/hellographs-example.png +%%QT_EXAMPLEDIR%%/graphs/2d/hellographs/doc/src/hellographs.qdoc +%%QT_EXAMPLEDIR%%/graphs/2d/hellographs/hellographs.pro +%%QT_EXAMPLEDIR%%/graphs/2d/hellographs/hellographs.qrc +%%QT_EXAMPLEDIR%%/graphs/2d/hellographs/main.cpp +%%QT_EXAMPLEDIR%%/graphs/2d/hellographs/qml/hellographs/main.qml +%%QT_EXAMPLEDIR%%/graphs/3d/3d.pro +%%QT_EXAMPLEDIR%%/graphs/3d/CMakeLists.txt +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/CMakeLists.txt +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/axishandling.pro +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/axishandling.qrc +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/customformatter.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/customformatter.h +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/doc/images/axishandling-example.png +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/doc/src/axishandling.qdoc +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/main.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/qml/axishandling/AxisDragging.qml +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/qml/axishandling/AxisFormatting.qml +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/qml/axishandling/Data.qml +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/qml/axishandling/cube.mesh +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/qml/axishandling/cubetexture.png +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/qml/axishandling/main.qml +%%QT_EXAMPLEDIR%%/graphs/3d/axishandling/qmldir +%%QT_EXAMPLEDIR%%/graphs/3d/bars/CMakeLists.txt +%%QT_EXAMPLEDIR%%/graphs/3d/bars/bars.pro +%%QT_EXAMPLEDIR%%/graphs/3d/bars/bars.qrc +%%QT_EXAMPLEDIR%%/graphs/3d/bars/doc/images/bars-example.png +%%QT_EXAMPLEDIR%%/graphs/3d/bars/doc/src/bars.qdoc +%%QT_EXAMPLEDIR%%/graphs/3d/bars/main.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/bars/qml/bars/Axes.qml +%%QT_EXAMPLEDIR%%/graphs/3d/bars/qml/bars/Data.qml +%%QT_EXAMPLEDIR%%/graphs/3d/bars/qml/bars/main.qml +%%QT_EXAMPLEDIR%%/graphs/3d/examples.pri +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/CMakeLists.txt +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/doc/images/scatter-example.png +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/doc/src/scatter.qdoc +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/images/background.svg +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/images/background_hide.svg +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/images/camera.svg +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/images/camera2.svg +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/images/flatten.svg +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/images/shadow.svg +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/images/shadow_hide.svg +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/images/smooth_curve.svg +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/images/theme.svg +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/main.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/qml/scatter/Data.qml +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/qml/scatter/Graph.qml +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/qml/scatter/main.qml +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/scatter.pro +%%QT_EXAMPLEDIR%%/graphs/3d/scatter/scatter.qrc +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/CMakeLists.txt +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/datasource.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/datasource.h +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/doc/images/surfacegallery-example.png +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/doc/src/surfacegallery.qdoc +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/main.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/qml/surfacegallery/SpectrogramData.qml +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/qml/surfacegallery/SurfaceHeightMap.qml +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/qml/surfacegallery/SurfaceOscilloscope.qml +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/qml/surfacegallery/SurfaceSpectrogram.qml +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/qml/surfacegallery/heightmap.png +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/qml/surfacegallery/heightmap.readme +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/qml/surfacegallery/main.qml +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/surfacegallery.pro +%%QT_EXAMPLEDIR%%/graphs/3d/surfacegallery/surfacegallery.qrc +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/CMakeLists.txt +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/axesinputhandler.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/axesinputhandler.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/bargraph.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/bargraph.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/custominputhandler.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/custominputhandler.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/layer_1.png +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/layer_2.png +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/layer_3.png +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/license.txt +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/maptexture.jpg +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/narrowarrow.mesh +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/oilrig.mesh +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/pipe.mesh +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/raindata.txt +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/refinery.mesh +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/refinery.obj +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/data/topography.png +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/doc/images/widgetgraphgallery-example.png +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/doc/src/widgetgraphgallery.qdoc +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/graphmodifier.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/graphmodifier.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/highlightseries.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/highlightseries.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/main.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/rainfalldata.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/rainfalldata.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/scatterdatamodifier.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/scatterdatamodifier.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/scattergraph.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/scattergraph.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/surfacegraph.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/surfacegraph.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/surfacegraphmodifier.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/surfacegraphmodifier.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/topographicseries.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/topographicseries.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/variantbardatamapping.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/variantbardatamapping.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/variantbardataproxy.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/variantbardataproxy.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/variantdataset.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/variantdataset.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/widgetgraphgallery.pro +%%QT_EXAMPLEDIR%%/graphs/3d/widgetgraphgallery/widgetgraphgallery.qrc +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/CMakeLists.txt +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/doc/images/widgetvolumetric-example.png +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/doc/src/widgetvolumetric.qdoc +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/layer_ground.png +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/layer_magma.png +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/layer_water.png +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/main.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/volumetric.cpp +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/volumetric.h +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/widgetvolumetric.pro +%%QT_EXAMPLEDIR%%/graphs/3d/widgetvolumetric/widgetvolumetric.qrc %%QT_EXAMPLEDIR%%/gui/CMakeLists.txt %%QT_EXAMPLEDIR%%/gui/doc/images/rhiwindow_example.jpg %%QT_EXAMPLEDIR%%/gui/doc/src/rasterwindow.qdoc @@ -2819,63 +3036,69 @@ %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/doc/src/qmlvideo.qdoc %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/frequencymonitor.cpp %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/frequencymonitor.h +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/frequencymonitor/CMakeLists.txt +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/frequencymonitor/FrequencyItem.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/frequencymonitor/qmldir %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/frequencymonitordeclarative.cpp -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/images/folder.png -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/images/leaves.jpg -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/images/up.png %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/main.cpp %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/performancemonitor.cpp %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/performancemonitor.h +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/performancemonitor/CMakeLists.txt +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/performancemonitor/PerformanceItem.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/performancemonitor/qmldir %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/performancemonitordeclarative.cpp %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/performancemonitordeclarative.h -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/frequencymonitor/FrequencyItem.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/performancemonitor/PerformanceItem.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/Button.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraBasic.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraDrag.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraDummy.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraFullScreen.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraFullScreenInverted.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraItem.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraMove.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraOverlay.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraResize.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraRotate.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/CameraSpin.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/Content.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/ErrorDialog.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/Scene.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneBasic.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneDrag.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneFullScreen.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneFullScreenInverted.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneMove.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneMulti.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneOverlay.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneResize.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneRotate.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneSelectionPanel.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SceneSpin.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/SeekControl.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoBasic.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoDrag.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoDummy.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoFillMode.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoFullScreen.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoFullScreenInverted.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoItem.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoMetadata.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoMove.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoOverlay.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoPlaybackRate.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoResize.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoRotate.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoSeek.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/VideoSpin.qml -%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qml/qmlvideo/main.qml %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo.png %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo.pro %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo.svg +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/Button.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CMakeLists.txt +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraBasic.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraDrag.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraDummy.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraFullScreen.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraFullScreenInverted.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraItem.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraMove.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraOverlay.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraResize.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraRotate.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/CameraSpin.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/Content.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/ErrorDialog.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/Main.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/Scene.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneBasic.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneDrag.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneFullScreen.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneFullScreenInverted.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneMove.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneMulti.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneOverlay.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneResize.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneRotate.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneSelectionPanel.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SceneSpin.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/SeekControl.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoBasic.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoDrag.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoDummy.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoFillMode.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoFullScreen.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoFullScreenInverted.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoItem.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoMetadata.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoMove.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoOverlay.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoPlaybackRate.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoResize.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoRotate.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoSeek.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/VideoSpin.qml +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/images/folder.png +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/images/leaves.jpg +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/images/up.png +%%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/qmlvideo/qmldir %%QT_EXAMPLEDIR%%/multimedia/video/qmlvideo/trace.h %%QT_EXAMPLEDIR%%/multimedia/video/recorder/AudioInputSelect.qml %%QT_EXAMPLEDIR%%/multimedia/video/recorder/CMakeLists.txt @@ -2940,15 +3163,17 @@ %%QT_EXAMPLEDIR%%/network/doc/images/blockingfortuneclient-example.png %%QT_EXAMPLEDIR%%/network/doc/images/broadcastreceiver-example.png %%QT_EXAMPLEDIR%%/network/doc/images/broadcastsender-example.png +%%QT_EXAMPLEDIR%%/network/doc/images/dnslookup-example.webp %%QT_EXAMPLEDIR%%/network/doc/images/fortuneclient-example.png %%QT_EXAMPLEDIR%%/network/doc/images/fortuneserver-example.png %%QT_EXAMPLEDIR%%/network/doc/images/http-example.webp +%%QT_EXAMPLEDIR%%/network/doc/images/multi-stream-client-example.webp +%%QT_EXAMPLEDIR%%/network/doc/images/multi-stream-server-example.webp %%QT_EXAMPLEDIR%%/network/doc/images/multicastreceiver-example.webp %%QT_EXAMPLEDIR%%/network/doc/images/multicastsender-example.webp -%%QT_EXAMPLEDIR%%/network/doc/images/network-chat-example.png +%%QT_EXAMPLEDIR%%/network/doc/images/network-chat-example.webp %%QT_EXAMPLEDIR%%/network/doc/images/rsslisting.png -%%QT_EXAMPLEDIR%%/network/doc/images/securesocketclient.png -%%QT_EXAMPLEDIR%%/network/doc/images/securesocketclient2.png +%%QT_EXAMPLEDIR%%/network/doc/images/securesocketclient-example.webp %%QT_EXAMPLEDIR%%/network/doc/images/secureudpclient-example.png %%QT_EXAMPLEDIR%%/network/doc/images/secureudpserver-example.png %%QT_EXAMPLEDIR%%/network/doc/images/threadedfortuneserver-example.png @@ -2956,11 +3181,14 @@ %%QT_EXAMPLEDIR%%/network/doc/src/blockingfortuneclient.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/broadcastreceiver.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/broadcastsender.qdoc +%%QT_EXAMPLEDIR%%/network/doc/src/dnslookup.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/fortuneclient.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/fortuneserver.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/http.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/multicastreceiver.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/multicastsender.qdoc +%%QT_EXAMPLEDIR%%/network/doc/src/multistreamclient.qdoc +%%QT_EXAMPLEDIR%%/network/doc/src/multistreamserver.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/network-chat.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/rsslisting.qdoc %%QT_EXAMPLEDIR%%/network/doc/src/securesocketclient.qdoc @@ -3094,17 +3322,17 @@ %%QT_EXAMPLEDIR%%/network/torrent/filemanager.cpp %%QT_EXAMPLEDIR%%/network/torrent/filemanager.h %%QT_EXAMPLEDIR%%/network/torrent/icons.qrc -%%QT_EXAMPLEDIR%%/network/torrent/icons/1downarrow.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/1uparrow.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/bottom.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/edit_add.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/edit_remove.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/exit.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/peertopeer.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/player_pause.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/player_play.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/player_stop.png -%%QT_EXAMPLEDIR%%/network/torrent/icons/stop.png +%%QT_EXAMPLEDIR%%/network/torrent/icons/1downarrow.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/1uparrow.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/about.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/bottom.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/edit_add.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/edit_remove.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/exit.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/peertopeer.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/player_pause.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/player_play.svg +%%QT_EXAMPLEDIR%%/network/torrent/icons/player_stop.svg %%QT_EXAMPLEDIR%%/network/torrent/main.cpp %%QT_EXAMPLEDIR%%/network/torrent/mainwindow.cpp %%QT_EXAMPLEDIR%%/network/torrent/mainwindow.h @@ -3216,6 +3444,7 @@ %%QT_EXAMPLEDIR%%/opcua/opcuaviewer/treeitem.h %%QT_EXAMPLEDIR%%/opcua/waterpump/CMakeLists.txt %%QT_EXAMPLEDIR%%/opcua/waterpump/simulationserver/CMakeLists.txt +%%QT_EXAMPLEDIR%%/opcua/waterpump/simulationserver/doc/simulationserver.qdoc %%QT_EXAMPLEDIR%%/opcua/waterpump/simulationserver/main.cpp %%QT_EXAMPLEDIR%%/opcua/waterpump/simulationserver/simulationserver.cpp %%QT_EXAMPLEDIR%%/opcua/waterpump/simulationserver/simulationserver.h @@ -3244,7 +3473,7 @@ %%QT_EXAMPLEDIR%%/opcua/waterpump/waterpump-qmlcpp/Tank2Unit.qml %%QT_EXAMPLEDIR%%/opcua/waterpump/waterpump-qmlcpp/TankSimulation.qml %%QT_EXAMPLEDIR%%/opcua/waterpump/waterpump-qmlcpp/ValueDisplay.qml -%%QT_EXAMPLEDIR%%/opcua/waterpump/waterpump-qmlcpp/doc/images/tankexample.jpg +%%QT_EXAMPLEDIR%%/opcua/waterpump/waterpump-qmlcpp/doc/images/tankexample.png %%QT_EXAMPLEDIR%%/opcua/waterpump/waterpump-qmlcpp/doc/waterpump-qmlcpp.qdoc %%QT_EXAMPLEDIR%%/opcua/waterpump/waterpump-qmlcpp/main.cpp %%QT_EXAMPLEDIR%%/opcua/waterpump/waterpump-qmlcpp/main.qml @@ -3270,13 +3499,6 @@ %%QT_EXAMPLEDIR%%/opengl/2dpainting/window.h %%QT_EXAMPLEDIR%%/opengl/CMakeLists.txt %%QT_EXAMPLEDIR%%/opengl/README -%%QT_EXAMPLEDIR%%/opengl/contextinfo/CMakeLists.txt -%%QT_EXAMPLEDIR%%/opengl/contextinfo/contextinfo.pro -%%QT_EXAMPLEDIR%%/opengl/contextinfo/main.cpp -%%QT_EXAMPLEDIR%%/opengl/contextinfo/renderwindow.cpp -%%QT_EXAMPLEDIR%%/opengl/contextinfo/renderwindow.h -%%QT_EXAMPLEDIR%%/opengl/contextinfo/widget.cpp -%%QT_EXAMPLEDIR%%/opengl/contextinfo/widget.h %%QT_EXAMPLEDIR%%/opengl/cube/CMakeLists.txt %%QT_EXAMPLEDIR%%/opengl/cube/cube.png %%QT_EXAMPLEDIR%%/opengl/cube/cube.pro @@ -3380,27 +3602,28 @@ %%QT_EXAMPLEDIR%%/pdf/multipage/viewer.qml %%QT_EXAMPLEDIR%%/pdf/multipage/viewer.qrc %%QT_EXAMPLEDIR%%/pdf/pdf.pro -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/CMakeLists.txt -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/main.cpp -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/pdfviewer.pro -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/document-open.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/edit-clear.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/edit-copy.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/edit-select-all.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/go-down-search.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/go-next-view-page.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/go-previous-view-page.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/go-up-search.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/rotate-left.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/rotate-right.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/test.pdf -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/zoom-fit-best.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/zoom-fit-width.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/zoom-in.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/zoom-original.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/resources/zoom-out.svg -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/viewer.qml -%%QT_EXAMPLEDIR%%/pdf/pdfviewer/viewer.qrc +%%QT_EXAMPLEDIR%%/pdf/singlepage/CMakeLists.txt +%%QT_EXAMPLEDIR%%/pdf/singlepage/doc/src/singlepage.qdoc +%%QT_EXAMPLEDIR%%/pdf/singlepage/main.cpp +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/document-open.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/edit-clear.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/edit-copy.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/edit-select-all.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/go-down-search.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/go-next-view-page.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/go-previous-view-page.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/go-up-search.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/rotate-left.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/rotate-right.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/test.pdf +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/zoom-fit-best.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/zoom-fit-width.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/zoom-in.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/zoom-original.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/resources/zoom-out.svg +%%QT_EXAMPLEDIR%%/pdf/singlepage/singlepage.pro +%%QT_EXAMPLEDIR%%/pdf/singlepage/viewer.qml +%%QT_EXAMPLEDIR%%/pdf/singlepage/viewer.qrc %%QT_EXAMPLEDIR%%/pdfwidgets/CMakeLists.txt %%QT_EXAMPLEDIR%%/pdfwidgets/pdfviewer/CMakeLists.txt %%QT_EXAMPLEDIR%%/pdfwidgets/pdfviewer/doc/src/pdfviewer.qdoc @@ -3503,21 +3726,20 @@ %%QT_EXAMPLEDIR%%/positioning/weatherinfo/appmodel.h %%QT_EXAMPLEDIR%%/positioning/weatherinfo/doc/images/example-weatherinfo.png %%QT_EXAMPLEDIR%%/positioning/weatherinfo/doc/src/weatherinfo.qdoc -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/README.txt -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/qt_attribution.json -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-few-clouds.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-fog.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-haze.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-icy.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-overcast.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-showers-scattered.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-showers.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-sleet.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-snow.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-storm.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-sunny-very-few-clouds.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-sunny.png -%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-thundershower.png +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/waypoint.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-few-clouds.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-fog.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-haze.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-icy.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-overcast.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-showers-scattered.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-showers.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-sleet.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-snow.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-storm.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-sunny-very-few-clouds.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-sunny.svg +%%QT_EXAMPLEDIR%%/positioning/weatherinfo/icons/weather-thundershower.svg %%QT_EXAMPLEDIR%%/positioning/weatherinfo/main.cpp %%QT_EXAMPLEDIR%%/positioning/weatherinfo/openmeteobackend.cpp %%QT_EXAMPLEDIR%%/positioning/weatherinfo/openmeteobackend.h @@ -3544,28 +3766,6 @@ %%QT_EXAMPLEDIR%%/qmake/tutorial/hellowin.cpp %%QT_EXAMPLEDIR%%/qmake/tutorial/main.cpp %%QT_EXAMPLEDIR%%/qml/CMakeLists.txt -%%QT_EXAMPLEDIR%%/qml/dynamicscene/CMakeLists.txt -%%QT_EXAMPLEDIR%%/qml/dynamicscene/GenericSceneItem.qml -%%QT_EXAMPLEDIR%%/qml/dynamicscene/PaletteItem.qml -%%QT_EXAMPLEDIR%%/qml/dynamicscene/PerspectiveItem.qml -%%QT_EXAMPLEDIR%%/qml/dynamicscene/Sun.qml -%%QT_EXAMPLEDIR%%/qml/dynamicscene/doc/images/qml-dynamicscene-example.png -%%QT_EXAMPLEDIR%%/qml/dynamicscene/doc/src/dynamicscene.qdoc -%%QT_EXAMPLEDIR%%/qml/dynamicscene/dynamicscene.pro -%%QT_EXAMPLEDIR%%/qml/dynamicscene/dynamicscene.qml -%%QT_EXAMPLEDIR%%/qml/dynamicscene/dynamicscene.qmlproject -%%QT_EXAMPLEDIR%%/qml/dynamicscene/dynamicscene.qrc -%%QT_EXAMPLEDIR%%/qml/dynamicscene/images/NOTE -%%QT_EXAMPLEDIR%%/qml/dynamicscene/images/face-smile.png -%%QT_EXAMPLEDIR%%/qml/dynamicscene/images/moon.png -%%QT_EXAMPLEDIR%%/qml/dynamicscene/images/rabbit_brown.png -%%QT_EXAMPLEDIR%%/qml/dynamicscene/images/rabbit_bw.png -%%QT_EXAMPLEDIR%%/qml/dynamicscene/images/star.png -%%QT_EXAMPLEDIR%%/qml/dynamicscene/images/sun.png -%%QT_EXAMPLEDIR%%/qml/dynamicscene/images/tree_s.png -%%QT_EXAMPLEDIR%%/qml/dynamicscene/itemCreation.js -%%QT_EXAMPLEDIR%%/qml/dynamicscene/main.cpp -%%QT_EXAMPLEDIR%%/qml/locale/locale.qml %%QT_EXAMPLEDIR%%/qml/qml-i18n/CMakeLists.txt %%QT_EXAMPLEDIR%%/qml/qml-i18n/doc/images/qml-i18n-example.png %%QT_EXAMPLEDIR%%/qml/qml-i18n/doc/src/i18n.qdoc @@ -3579,8 +3779,6 @@ %%QT_EXAMPLEDIR%%/qml/qml-i18n/qml-i18n.qmlproject %%QT_EXAMPLEDIR%%/qml/qml-i18n/qml-i18n.qrc %%QT_EXAMPLEDIR%%/qml/qml.pro -%%QT_EXAMPLEDIR%%/qml/qmldom/CMakeLists.txt -%%QT_EXAMPLEDIR%%/qml/qmldom/qmldomloadeditwrite.cpp %%QT_EXAMPLEDIR%%/qml/tutorials/CMakeLists.txt %%QT_EXAMPLEDIR%%/qml/tutorials/extending-qml-advanced/CMakeLists.txt %%QT_EXAMPLEDIR%%/qml/tutorials/extending-qml-advanced/advanced1-Base-project/CMakeLists.txt @@ -3735,13 +3933,6 @@ %%QT_EXAMPLEDIR%%/qmlcompiler/tutorials/helloworld/chapter3/helloplugin.h %%QT_EXAMPLEDIR%%/qmlcompiler/tutorials/helloworld/chapter3/plugin.json %%QT_EXAMPLEDIR%%/qmlcompiler/tutorials/helloworld/chapter3/test.qml -%%QT_EXAMPLEDIR%%/qmltest/CMakeLists.txt -%%QT_EXAMPLEDIR%%/qmltest/qmltest.pro -%%QT_EXAMPLEDIR%%/qmltest/qmltest/CMakeLists.txt -%%QT_EXAMPLEDIR%%/qmltest/qmltest/qmltest.pro -%%QT_EXAMPLEDIR%%/qmltest/qmltest/tst_basic.qml -%%QT_EXAMPLEDIR%%/qmltest/qmltest/tst_item.qml -%%QT_EXAMPLEDIR%%/qmltest/qmltest/tst_qmltest.cpp %%QT_EXAMPLEDIR%%/qt3d/3d-text/3d-text.pro %%QT_EXAMPLEDIR%%/qt3d/3d-text/CMakeLists.txt %%QT_EXAMPLEDIR%%/qt3d/3d-text/main.cpp @@ -4014,17 +4205,6 @@ %%QT_EXAMPLEDIR%%/quick/customitems/flipable/flipable.qmlproject %%QT_EXAMPLEDIR%%/quick/customitems/flipable/flipable.qrc %%QT_EXAMPLEDIR%%/quick/customitems/flipable/main.cpp -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/CMakeLists.txt -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/images/cloud_1.png -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/images/cloud_2.png -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/images/moon.png -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/main.cpp -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/maskedmousearea.cpp -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/maskedmousearea.h -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/maskedmousearea.pro -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/maskedmousearea.qml -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/maskedmousearea.qmlproject -%%QT_EXAMPLEDIR%%/quick/customitems/maskedmousearea/maskedmousearea.qrc %%QT_EXAMPLEDIR%%/quick/customitems/painteditem/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick/customitems/painteditem/TextBalloon/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick/customitems/painteditem/TextBalloon/plugin.h @@ -4040,11 +4220,6 @@ %%QT_EXAMPLEDIR%%/quick/customitems/painteditem/painteditem.qrc %%QT_EXAMPLEDIR%%/quick/customitems/painteditem/textballoons.qml %%QT_EXAMPLEDIR%%/quick/customitems/painteditem/textballoonuser.pro -%%QT_EXAMPLEDIR%%/quick/delegatechooser/CMakeLists.txt -%%QT_EXAMPLEDIR%%/quick/delegatechooser/delegatechooser.pro -%%QT_EXAMPLEDIR%%/quick/delegatechooser/delegatechooser.qml -%%QT_EXAMPLEDIR%%/quick/delegatechooser/main.cpp -%%QT_EXAMPLEDIR%%/quick/delegatechooser/qml.qrc %%QT_EXAMPLEDIR%%/quick/draganddrop/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick/draganddrop/doc/images/qml-draganddrop-example.png %%QT_EXAMPLEDIR%%/quick/draganddrop/doc/src/draganddrop.qdoc @@ -4060,12 +4235,12 @@ %%QT_EXAMPLEDIR%%/quick/draganddrop/views/Icon.qml %%QT_EXAMPLEDIR%%/quick/draganddrop/views/gridview.qml %%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/CMakeLists.txt +%%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/Main.qml %%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/doc/images/qml-embeddedinwidgets-example.jpg %%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/doc/src/embeddedinwidgets.qdoc %%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/embeddedinwidgets.pro -%%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/embeddedinwidgets.qrc %%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/main.cpp -%%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/main.qml +%%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/qmldir %%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/reflect.frag %%QT_EXAMPLEDIR%%/quick/embeddedinwidgets/reflect.frag.qsb %%QT_EXAMPLEDIR%%/quick/imageelements/BorderImageSelector.qml @@ -4330,14 +4505,6 @@ %%QT_EXAMPLEDIR%%/quick/particles/imageparticle/rotation.qml %%QT_EXAMPLEDIR%%/quick/particles/imageparticle/sharing.qml %%QT_EXAMPLEDIR%%/quick/particles/imageparticle/sprites.qml -%%QT_EXAMPLEDIR%%/quick/particles/itemparticle/CMakeLists.txt -%%QT_EXAMPLEDIR%%/quick/particles/itemparticle/delegates.qml -%%QT_EXAMPLEDIR%%/quick/particles/itemparticle/images/rocket.png -%%QT_EXAMPLEDIR%%/quick/particles/itemparticle/itemparticle.pro -%%QT_EXAMPLEDIR%%/quick/particles/itemparticle/itemparticle.qml -%%QT_EXAMPLEDIR%%/quick/particles/itemparticle/itemparticle.qrc -%%QT_EXAMPLEDIR%%/quick/particles/itemparticle/main.cpp -%%QT_EXAMPLEDIR%%/quick/particles/itemparticle/script.js %%QT_EXAMPLEDIR%%/quick/particles/particles.pro %%QT_EXAMPLEDIR%%/quick/particles/system/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick/particles/system/doc/images/qml-system-example.png @@ -4443,6 +4610,91 @@ %%QT_EXAMPLEDIR%%/quick/quick-accessibility/main.cpp %%QT_EXAMPLEDIR%%/quick/quick-accessibility/quick-accessibility.pro %%QT_EXAMPLEDIR%%/quick/quick.pro +%%QT_EXAMPLEDIR%%/quick/quickshapes/CMakeLists.txt +%%QT_EXAMPLEDIR%%/quick/quickshapes/quickshapes.pro +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/CMakeLists.txt +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/arcDirection.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/arcRotation.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/capStyles.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/clippedtigers.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/cubicCurve.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/dashPattern.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/doc/images/qml-shapes-example.png +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/doc/src/shapes.qdoc +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/ellipticalArcs.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/fillRules.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/gradientSpreadModes.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/interactive.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/joinStyles.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/largeOrSmallArc.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/linearGradient.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/main.cpp +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/main.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/quadraticCurve.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/radialGradient.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/sampling.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/shapegallery.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/shapes.pro +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/shapes.qrc +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/strokeOrFill.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/tapableTriangle.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/text.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/tiger.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/tigerLoader.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/shapes/zoomtiger.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/BouncyShape.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/CMakeLists.txt +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/Cloud.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/CloudWithLightning.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/CloudWithLightningAndRain_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/CloudWithLightning_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/CloudWithRain.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/CloudWithRain_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/CloudWithSnow.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/CloudWithSnow_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/Cloud_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/DemoShape.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/Europe.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/Europe_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/Gear.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/Gear_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/MapLabel.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/SettingsDrawer.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/Sun.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/SunBehindCloud.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/SunBehindCloud_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/SunBehindLargeCloud_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/SunBehindRainCloud.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/SunBehindRainCloud_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/SunBehindSmallCloud.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/SunBehindSmallCloud_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/Sun_generated.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/Europe.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/OFL.txt +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/WorkSans-Regular.ttf +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/apache.txt +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/attribution.txt +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/cloud-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/cloud-with-lightning-and-rain-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/cloud-with-lightning-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/cloud-with-rain-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/cloud-with-snow-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/gear-alt-stroke.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/sun-behind-cloud-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/sun-behind-large-cloud-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/sun-behind-rain-cloud-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/sun-behind-small-cloud-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/assets/sun-svgrepo-com.svg +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/doc/images/qml-weatherforecast-example.png +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/doc/images/settings.png +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/doc/images/zoomed.png +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/doc/src/weatherforecast.qdoc +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/main.cpp +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/main.qml +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/qt_attribution.json +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/qtquickcontrols2.conf +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/weatherforecast.pro +%%QT_EXAMPLEDIR%%/quick/quickshapes/weatherforecast/weatherforecast.qrc %%QT_EXAMPLEDIR%%/quick/quickwidgets/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick/quickwidgets/qquickwidgetversuswindow_opengl/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick/quickwidgets/qquickwidgetversuswindow_opengl/doc/images/qquickwidgetversuswindow-opengl-example.jpg @@ -4496,9 +4748,19 @@ %%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pro %%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.cpp %%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.h +%%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_rhi/CMakeLists.txt +%%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_rhi/demo.qml +%%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_rhi/doc/images/rendercontrol-rhi-example.jpg +%%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_rhi/doc/src/rendercontrol_rhi.qdoc +%%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_rhi/main.cpp +%%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_rhi/rendercontrol_rhi.pro +%%QT_EXAMPLEDIR%%/quick/rendercontrol/rendercontrol_rhi/rendercontrol_rhi.qrc %%QT_EXAMPLEDIR%%/quick/responsivelayouts/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick/responsivelayouts/doc/images/qtquicklayouts-example-responsivelayouts.png %%QT_EXAMPLEDIR%%/quick/responsivelayouts/doc/src/qtquickresponsiveLayouts-examples.qdoc +%%QT_EXAMPLEDIR%%/quick/responsivelayouts/icons/grid.svg +%%QT_EXAMPLEDIR%%/quick/responsivelayouts/icons/settings.svg +%%QT_EXAMPLEDIR%%/quick/responsivelayouts/icons/text.svg %%QT_EXAMPLEDIR%%/quick/responsivelayouts/main.cpp %%QT_EXAMPLEDIR%%/quick/responsivelayouts/responsivelayouts.pro %%QT_EXAMPLEDIR%%/quick/responsivelayouts/responsivelayouts.qml @@ -4602,20 +4864,25 @@ %%QT_EXAMPLEDIR%%/quick/scenegraph/openglunderqml/squircle.cpp %%QT_EXAMPLEDIR%%/quick/scenegraph/openglunderqml/squircle.h %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/CMakeLists.txt +%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/SettingsDrawer.qml %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/doc/images/rhitextureitem-example.jpg %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/doc/src/rhitextureitem.qdoc +%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/icon_settings.png +%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/icon_settings@2x.png +%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/icon_settings@3x.png +%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/icon_settings@4x.png %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/main.cpp %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/main.qml %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/prebuilts_for_qmake/checker.frag.qsb -%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/prebuilts_for_qmake/logo.frag.qsb -%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/prebuilts_for_qmake/logo.vert.qsb +%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/prebuilts_for_qmake/color.frag.qsb +%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/prebuilts_for_qmake/color.vert.qsb %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/rhitextureitem.cpp %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/rhitextureitem.h %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/rhitextureitem.pro %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/rhitextureitem.qrc %%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/shaders/checker.frag -%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/shaders/logo.frag -%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/shaders/logo.vert +%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/shaders/color.frag +%%QT_EXAMPLEDIR%%/quick/scenegraph/rhitextureitem/shaders/color.vert %%QT_EXAMPLEDIR%%/quick/scenegraph/rhiunderqml/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick/scenegraph/rhiunderqml/doc/images/rhiunderqml-example.jpg %%QT_EXAMPLEDIR%%/quick/scenegraph/rhiunderqml/doc/src/rhiunderqml.qdoc @@ -4631,6 +4898,8 @@ %%QT_EXAMPLEDIR%%/quick/scenegraph/shared/squircle_rhi.frag %%QT_EXAMPLEDIR%%/quick/scenegraph/shared/squircle_rhi.vert %%QT_EXAMPLEDIR%%/quick/scenegraph/threadedanimation/CMakeLists.txt +%%QT_EXAMPLEDIR%%/quick/scenegraph/threadedanimation/doc/images/threadedanimation-example.jpg +%%QT_EXAMPLEDIR%%/quick/scenegraph/threadedanimation/doc/src/threadedanimation.qdoc %%QT_EXAMPLEDIR%%/quick/scenegraph/threadedanimation/main.cpp %%QT_EXAMPLEDIR%%/quick/scenegraph/threadedanimation/main.qml %%QT_EXAMPLEDIR%%/quick/scenegraph/threadedanimation/spinner.cpp @@ -4697,40 +4966,9 @@ %%QT_EXAMPLEDIR%%/quick/shadereffects/shadereffects.qml %%QT_EXAMPLEDIR%%/quick/shadereffects/shadereffects.qmlproject %%QT_EXAMPLEDIR%%/quick/shadereffects/shadereffects.qrc -%%QT_EXAMPLEDIR%%/quick/shapes/CMakeLists.txt -%%QT_EXAMPLEDIR%%/quick/shapes/arcDirection.qml -%%QT_EXAMPLEDIR%%/quick/shapes/arcRotation.qml -%%QT_EXAMPLEDIR%%/quick/shapes/capStyles.qml -%%QT_EXAMPLEDIR%%/quick/shapes/clippedtigers.qml -%%QT_EXAMPLEDIR%%/quick/shapes/cubicCurve.qml -%%QT_EXAMPLEDIR%%/quick/shapes/dashPattern.qml -%%QT_EXAMPLEDIR%%/quick/shapes/doc/images/qml-shapes-example.png -%%QT_EXAMPLEDIR%%/quick/shapes/doc/src/shapes.qdoc -%%QT_EXAMPLEDIR%%/quick/shapes/ellipticalArcs.qml -%%QT_EXAMPLEDIR%%/quick/shapes/fillRules.qml -%%QT_EXAMPLEDIR%%/quick/shapes/gradientSpreadModes.qml -%%QT_EXAMPLEDIR%%/quick/shapes/interactive.qml -%%QT_EXAMPLEDIR%%/quick/shapes/joinStyles.qml -%%QT_EXAMPLEDIR%%/quick/shapes/largeOrSmallArc.qml -%%QT_EXAMPLEDIR%%/quick/shapes/linearGradient.qml -%%QT_EXAMPLEDIR%%/quick/shapes/main.cpp -%%QT_EXAMPLEDIR%%/quick/shapes/main.qml -%%QT_EXAMPLEDIR%%/quick/shapes/quadraticCurve.qml -%%QT_EXAMPLEDIR%%/quick/shapes/radialGradient.qml -%%QT_EXAMPLEDIR%%/quick/shapes/sampling.qml -%%QT_EXAMPLEDIR%%/quick/shapes/shapegallery.qml -%%QT_EXAMPLEDIR%%/quick/shapes/shapes.pro -%%QT_EXAMPLEDIR%%/quick/shapes/shapes.qrc -%%QT_EXAMPLEDIR%%/quick/shapes/strokeOrFill.qml -%%QT_EXAMPLEDIR%%/quick/shapes/tapableTriangle.qml -%%QT_EXAMPLEDIR%%/quick/shapes/text.qml -%%QT_EXAMPLEDIR%%/quick/shapes/tiger.qml -%%QT_EXAMPLEDIR%%/quick/shapes/tigerLoader.qml -%%QT_EXAMPLEDIR%%/quick/shapes/zoomtiger.qml %%QT_EXAMPLEDIR%%/quick/shared/Button.qml %%QT_EXAMPLEDIR%%/quick/shared/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick/shared/CheckBox.qml -%%QT_EXAMPLEDIR%%/quick/shared/FlickrRssModel.qml %%QT_EXAMPLEDIR%%/quick/shared/Images.qml %%QT_EXAMPLEDIR%%/quick/shared/Label.qml %%QT_EXAMPLEDIR%%/quick/shared/LauncherList.qml @@ -4886,12 +5124,7 @@ %%QT_EXAMPLEDIR%%/quick/tutorials/samegame/samegame4/samegame4.qrc %%QT_EXAMPLEDIR%%/quick/tutorials/tutorials.pro %%QT_EXAMPLEDIR%%/quick/views/CMakeLists.txt -%%QT_EXAMPLEDIR%%/quick/views/delegatemodel/delegatemodel.qmlproject %%QT_EXAMPLEDIR%%/quick/views/delegatemodel/dragselection.qml -%%QT_EXAMPLEDIR%%/quick/views/delegatemodel/flipable.pro -%%QT_EXAMPLEDIR%%/quick/views/delegatemodel/flipable.qrc -%%QT_EXAMPLEDIR%%/quick/views/delegatemodel/main.cpp -%%QT_EXAMPLEDIR%%/quick/views/delegatemodel/slideshow.qml %%QT_EXAMPLEDIR%%/quick/views/doc/images/qml-modelviews-example.png %%QT_EXAMPLEDIR%%/quick/views/doc/src/views.qdoc %%QT_EXAMPLEDIR%%/quick/views/gridview/gridview-example.qml @@ -5059,6 +5292,26 @@ %%QT_EXAMPLEDIR%%/quick3d/dynamiccreation/main.qml %%QT_EXAMPLEDIR%%/quick3d/dynamiccreation/qml.qrc %%QT_EXAMPLEDIR%%/quick3d/dynamiccreation/weirdShape.mesh +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/CMakeLists.txt +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/ColorPicker.qml +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/Main.qml +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/SectionLayout.qml +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/doc/images/stencil_outline.jpg +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/doc/src/qtquick3d-examples-outline_extension.qdoc +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/images/TreeExpanded.png +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/images/TreeExpanded@2x.png +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/images/TreeExpanded@3x.png +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/images/TreeExpanded@4x.png +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/images/TreeUnexpanded.png +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/images/TreeUnexpanded@2x.png +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/images/TreeUnexpanded@3x.png +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/images/TreeUnexpanded@4x.png +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/images/grid_8x8.png +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/main.cpp +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/models/suzanne.mesh +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/outlinerenderextension.cpp +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/outlinerenderextension.h +%%QT_EXAMPLEDIR%%/quick3d/extensions/stenciloutline/shaders/huesaturation.frag %%QT_EXAMPLEDIR%%/quick3d/hellocube/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick3d/hellocube/doc/images/hellocube.png %%QT_EXAMPLEDIR%%/quick3d/hellocube/doc/src/hellocube.qdoc @@ -5140,6 +5393,8 @@ %%QT_EXAMPLEDIR%%/quick3d/offlineshaders/CMakeLists.txt %%QT_EXAMPLEDIR%%/quick3d/offlineshaders/MaterialRed.qml %%QT_EXAMPLEDIR%%/quick3d/offlineshaders/MaterialRedExtended.qml +%%QT_EXAMPLEDIR%%/quick3d/offlineshaders/doc/images/offlineshaders-example.jpg +%%QT_EXAMPLEDIR%%/quick3d/offlineshaders/doc/src/qtquick3d-examples-offlineshaders.qdoc %%QT_EXAMPLEDIR%%/quick3d/offlineshaders/main.cpp %%QT_EXAMPLEDIR%%/quick3d/offlineshaders/main.qml %%QT_EXAMPLEDIR%%/quick3d/offlineshaders/maps/metallic/basecolor.jpg @@ -6004,8 +6259,6 @@ %%QT_EXAMPLEDIR%%/quickcontrols/texteditor/doc/images/qtquickcontrols-texteditor-desktop.jpg %%QT_EXAMPLEDIR%%/quickcontrols/texteditor/doc/images/qtquickcontrols-texteditor-touch.jpg %%QT_EXAMPLEDIR%%/quickcontrols/texteditor/doc/src/qtquickcontrols-texteditor.qdoc -%%QT_EXAMPLEDIR%%/quickcontrols/texteditor/documenthandler.cpp -%%QT_EXAMPLEDIR%%/quickcontrols/texteditor/documenthandler.h %%QT_EXAMPLEDIR%%/quickcontrols/texteditor/einstein.png %%QT_EXAMPLEDIR%%/quickcontrols/texteditor/example.md %%QT_EXAMPLEDIR%%/quickcontrols/texteditor/fonts/fontello.ttf @@ -6026,8 +6279,11 @@ %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/DemoModeIndicator.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/FitnessPage.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/LauncherPage.qml +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/ListHeaderItem.qml +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/ListItem.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/Main.qml -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/NaviButton.qml +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/MenuHeader.qml +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/NavigationFallbackPage.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/NavigationPage.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/NotificationsPage.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/RouteElement.qml @@ -6035,147 +6291,101 @@ %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/SwipeViewPage.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/WeatherPage.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/WorldClockPage.qml +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/fallbackroute.json %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/fitness.js -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36/alarms.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36/fitness.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36/navigation.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36/notifications.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36/settings.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36/weather.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36/worldclock.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36@2/alarms.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36@2/fitness.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36@2/navigation.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36@2/notifications.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36@2/settings.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36@2/weather.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/36x36@2/worldclock.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wearable/index.theme -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/back.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/back@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/back@3x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/back@4x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/background-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/background-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-running-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-running-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-running-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-running-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-walking-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-walking-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-walking-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-walking-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/home.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/home@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/home@3x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/home@4x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-end.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-end@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-leftturn-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-leftturn-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-leftturn-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-leftturn-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-marker.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-rightturn-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-rightturn-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-rightturn-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-rightturn-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-start.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-start@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-straight-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-straight-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-straight-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-straight-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-uturn.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/navigation-uturn@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-avatarf-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-avatarf-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-avatarf-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-avatarf-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-avatarm-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-avatarm-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-avatarm-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-avatarm-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-missedcall-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-missedcall-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-missedcall-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/notifications-missedcall-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-bluetooth-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-bluetooth-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-bluetooth-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-bluetooth-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-brightness-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-brightness-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-brightness-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-brightness-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-demo-mode-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-demo-mode-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-demo-mode-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-demo-mode-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-demo-mode-white.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-demo-mode-white@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-demo-mode.svg -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-theme-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-theme-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-theme-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-theme-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-theme.svg -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-wifi-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-wifi-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-wifi-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/settings-wifi-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-humidity-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-humidity-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-humidity-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-humidity-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-pressure-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-pressure-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-pressure-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-pressure-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-sunrise-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-sunrise-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-sunrise-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-sunrise-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-sunset-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-sunset-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-sunset-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-sunset-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-temperature-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-temperature-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-temperature-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-temperature-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-wind-dark.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-wind-dark@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-wind-light.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/weather-wind-light@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-center.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-center@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-clock-night.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-clock-night@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-clock.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-second.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-second@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissdaydial.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissdaydial@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissdayhour.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissdayhour@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissdayminute.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissdayminute@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissnightdial.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissnightdial@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissnighthour.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissnighthour@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissnightminute.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissnightminute@2x.png -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/world-clock-swissseconds.png +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/back-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/back-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/bearleft-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/bearleft-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/bearright-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/bearright-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/bell-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/bell-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/bluetooth-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/bluetooth-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/clock-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/clock-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/darkmode-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/darkmode-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/demomode-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/demomode-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/drop-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/drop-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/forward-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/forward-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/hearth-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/hearth-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/left-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/left-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/lightleft-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/lightleft-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/lightright-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/lightright-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/maps-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/maps-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/notification-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/notification-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/plus-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/plus-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/pressure-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/pressure-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/right-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/right-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/settings-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/settings-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/sun-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/sun-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/sunrise-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/sunrise-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/sunset-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/sunset-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/thermometer-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/thermometer-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/uturnleft-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/uturnleft-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/uturnright-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/uturnright-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-few-clouds-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-few-clouds-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-fog-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-fog-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-haze-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-haze-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-icy-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-icy-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-overcast-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-overcast-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-showers-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-showers-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-showers-scattered-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-showers-scattered-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-sleet-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-sleet-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-snow-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-snow-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-storm-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-storm-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-sunny-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-sunny-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-sunny-very-few-clouds-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-sunny-very-few-clouds-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-thundershower-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/weather-thundershower-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wifi-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wifi-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wind-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/wind-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/icons/yellowsun.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fallbackmap.png +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-running-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-running-light.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-walking-dark.svg +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/images/fitness-man-walking-light.svg %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/navigation.js %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/notifications.js %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/qmldir -%%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/walk_route.json %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/weather.js %%QT_EXAMPLEDIR%%/quickcontrols/wearable/Wearable/weather.json %%QT_EXAMPLEDIR%%/quickcontrols/wearable/WearableSettings/CMakeLists.txt @@ -6186,6 +6396,10 @@ %%QT_EXAMPLEDIR%%/quickcontrols/wearable/WearableStyle/Slider.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/WearableStyle/Switch.qml %%QT_EXAMPLEDIR%%/quickcontrols/wearable/WearableStyle/UIStyle.qml +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/WearableStyle/fonts/OFL.txt +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/WearableStyle/fonts/TitilliumWeb-Bold.ttf +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/WearableStyle/fonts/TitilliumWeb-Regular.ttf +%%QT_EXAMPLEDIR%%/quickcontrols/wearable/WearableStyle/fonts/TitilliumWeb-SemiBold.ttf %%QT_EXAMPLEDIR%%/quickcontrols/wearable/WearableStyle/qmldir %%QT_EXAMPLEDIR%%/quickcontrols/wearable/doc/images/qtquickcontrols-wearable.png %%QT_EXAMPLEDIR%%/quickcontrols/wearable/doc/src/qtquickcontrols-wearable.qdoc @@ -6825,6 +7039,7 @@ %%QT_EXAMPLEDIR%%/svg/textobject/textobject.pro %%QT_EXAMPLEDIR%%/svg/textobject/window.cpp %%QT_EXAMPLEDIR%%/svg/textobject/window.h +%%QT_EXAMPLEDIR%%/tutorials/CMakeLists.txt %%QT_EXAMPLEDIR%%/tutorials/alarms/AlarmDelegate.qml %%QT_EXAMPLEDIR%%/tutorials/alarms/AlarmDialog.qml %%QT_EXAMPLEDIR%%/tutorials/alarms/AlarmModel.qml @@ -6836,6 +7051,7 @@ %%QT_EXAMPLEDIR%%/tutorials/alarms/main.qml %%QT_EXAMPLEDIR%%/tutorials/alarms/qml.qrc %%QT_EXAMPLEDIR%%/tutorials/alarms/qtquickcontrols2.conf +%%QT_EXAMPLEDIR%%/tutorials/tutorials.pro %%QT_EXAMPLEDIR%%/uitools/CMakeLists.txt %%QT_EXAMPLEDIR%%/uitools/doc/images/textfinder-example-userinterface.webp %%QT_EXAMPLEDIR%%/uitools/doc/src/textfinder.qdoc @@ -7124,6 +7340,7 @@ %%QT_EXAMPLEDIR%%/webenginequick/quicknanobrowser/FindBar.qml %%QT_EXAMPLEDIR%%/webenginequick/quicknanobrowser/FullScreenNotification.qml %%QT_EXAMPLEDIR%%/webenginequick/quicknanobrowser/Info.cmake.macos.plist +%%QT_EXAMPLEDIR%%/webenginequick/quicknanobrowser/WebAuthDialog.qml %%QT_EXAMPLEDIR%%/webenginequick/quicknanobrowser/doc/images/quicknanobrowser-demo.jpg %%QT_EXAMPLEDIR%%/webenginequick/quicknanobrowser/doc/src/quicknanobrowser.qdoc %%QT_EXAMPLEDIR%%/webenginequick/quicknanobrowser/icons/3rdparty/COPYING @@ -7303,6 +7520,9 @@ %%QT_EXAMPLEDIR%%/webenginewidgets/simplebrowser/simplebrowser.pro %%QT_EXAMPLEDIR%%/webenginewidgets/simplebrowser/tabwidget.cpp %%QT_EXAMPLEDIR%%/webenginewidgets/simplebrowser/tabwidget.h +%%QT_EXAMPLEDIR%%/webenginewidgets/simplebrowser/webauthdialog.cpp +%%QT_EXAMPLEDIR%%/webenginewidgets/simplebrowser/webauthdialog.h +%%QT_EXAMPLEDIR%%/webenginewidgets/simplebrowser/webauthdialog.ui %%QT_EXAMPLEDIR%%/webenginewidgets/simplebrowser/webpage.cpp %%QT_EXAMPLEDIR%%/webenginewidgets/simplebrowser/webpage.h %%QT_EXAMPLEDIR%%/webenginewidgets/simplebrowser/webpopupwindow.cpp @@ -7488,8 +7708,6 @@ %%QT_EXAMPLEDIR%%/widgets/doc/images/completer-example-word.png %%QT_EXAMPLEDIR%%/widgets/doc/images/completer-example.png %%QT_EXAMPLEDIR%%/widgets/doc/images/dropsite-example.png -%%QT_EXAMPLEDIR%%/widgets/doc/images/echoplugin.png -%%QT_EXAMPLEDIR%%/widgets/doc/images/echopluginexample.png %%QT_EXAMPLEDIR%%/widgets/doc/images/geometry.png %%QT_EXAMPLEDIR%%/widgets/doc/images/graphicssimpleanchorlayout-example.png %%QT_EXAMPLEDIR%%/widgets/doc/images/icons_monkey.png @@ -7501,7 +7719,7 @@ %%QT_EXAMPLEDIR%%/widgets/doc/images/icons_qt_extended_48x48.png %%QT_EXAMPLEDIR%%/widgets/doc/images/icons_qt_extended_64x64.png %%QT_EXAMPLEDIR%%/widgets/doc/images/icons_qt_extended_8x8.png -%%QT_EXAMPLEDIR%%/widgets/doc/images/imagegestures-example.jpg +%%QT_EXAMPLEDIR%%/widgets/doc/images/imagegestures-example.png %%QT_EXAMPLEDIR%%/widgets/doc/images/itemviews-editabletreemodel-indexes.png %%QT_EXAMPLEDIR%%/widgets/doc/images/itemviews-editabletreemodel-items.png %%QT_EXAMPLEDIR%%/widgets/doc/images/itemviews-editabletreemodel-model.png @@ -7518,10 +7736,8 @@ %%QT_EXAMPLEDIR%%/widgets/doc/images/orderform-example.png %%QT_EXAMPLEDIR%%/widgets/doc/images/regexp-example.png %%QT_EXAMPLEDIR%%/widgets/doc/images/regularexpression-example.png -%%QT_EXAMPLEDIR%%/widgets/doc/images/settingseditor-example.png %%QT_EXAMPLEDIR%%/widgets/doc/images/sipdialog-closed.png %%QT_EXAMPLEDIR%%/widgets/doc/images/sipdialog-opened.png -%%QT_EXAMPLEDIR%%/widgets/doc/images/stylepluginexample.png %%QT_EXAMPLEDIR%%/widgets/doc/images/systemtray-editor.png %%QT_EXAMPLEDIR%%/widgets/doc/images/systemtray-example.png %%QT_EXAMPLEDIR%%/widgets/doc/images/treemodel-structure.png @@ -7534,7 +7750,6 @@ %%QT_EXAMPLEDIR%%/widgets/doc/src/basicgraphicslayouts.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/basiclayouts.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/basicsortfiltermodel.qdoc -%%QT_EXAMPLEDIR%%/widgets/doc/src/blurpicker.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/calculator.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/calendarwidget.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/chip.qdoc @@ -7543,6 +7758,7 @@ %%QT_EXAMPLEDIR%%/widgets/doc/src/combowidgetmapper.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/completer.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/composition.qdoc +%%QT_EXAMPLEDIR%%/widgets/doc/src/cuberhiwidget.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/customsortfiltermodel.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/deform.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/diagramscene.qdoc @@ -7550,7 +7766,6 @@ %%QT_EXAMPLEDIR%%/widgets/doc/src/draggableicons.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/draggabletext.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/easing.qdoc -%%QT_EXAMPLEDIR%%/widgets/doc/src/echoplugin.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/editabletreemodel.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/elasticnodes.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/fetchmore.qdoc @@ -7570,17 +7785,15 @@ %%QT_EXAMPLEDIR%%/widgets/doc/src/regularexpression.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/screenshot.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/scribble.qdoc -%%QT_EXAMPLEDIR%%/widgets/doc/src/settingseditor.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/shapedclock.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/shortcuteditor.qdoc +%%QT_EXAMPLEDIR%%/widgets/doc/src/simplerhiwidget.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/simpletreemodel.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/sliders.qdoc -%%QT_EXAMPLEDIR%%/widgets/doc/src/spinboxdelegate.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/spinboxes.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/spreadsheet.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/standarddialogs.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/stardelegate.qdoc -%%QT_EXAMPLEDIR%%/widgets/doc/src/styleplugin.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/syntaxhighlighter.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/tabdialog.qdoc %%QT_EXAMPLEDIR%%/widgets/doc/src/tablet.qdoc @@ -7615,24 +7828,6 @@ %%QT_EXAMPLEDIR%%/widgets/draganddrop/dropsite/dropsitewindow.cpp %%QT_EXAMPLEDIR%%/widgets/draganddrop/dropsite/dropsitewindow.h %%QT_EXAMPLEDIR%%/widgets/draganddrop/dropsite/main.cpp -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/CMakeLists.txt -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/blureffect.cpp -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/blureffect.h -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/blurpicker.cpp -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/blurpicker.h -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/blurpicker.pro -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/blurpicker.qrc -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/README.txt -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/accessories-calculator.png -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/accessories-text-editor.png -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/background.jpg -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/help-browser.png -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/internet-group-chat.png -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/internet-mail.png -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/internet-web-browser.png -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/office-calendar.png -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/images/system-users.png -%%QT_EXAMPLEDIR%%/widgets/effects/blurpicker/main.cpp %%QT_EXAMPLEDIR%%/widgets/gallery/CMakeLists.txt %%QT_EXAMPLEDIR%%/widgets/gallery/gallery.pro %%QT_EXAMPLEDIR%%/widgets/gallery/main.cpp @@ -7814,11 +8009,6 @@ %%QT_EXAMPLEDIR%%/widgets/itemviews/simpletreemodel/treeitem.h %%QT_EXAMPLEDIR%%/widgets/itemviews/simpletreemodel/treemodel.cpp %%QT_EXAMPLEDIR%%/widgets/itemviews/simpletreemodel/treemodel.h -%%QT_EXAMPLEDIR%%/widgets/itemviews/spinboxdelegate/CMakeLists.txt -%%QT_EXAMPLEDIR%%/widgets/itemviews/spinboxdelegate/delegate.cpp -%%QT_EXAMPLEDIR%%/widgets/itemviews/spinboxdelegate/delegate.h -%%QT_EXAMPLEDIR%%/widgets/itemviews/spinboxdelegate/main.cpp -%%QT_EXAMPLEDIR%%/widgets/itemviews/spinboxdelegate/spinboxdelegate.pro %%QT_EXAMPLEDIR%%/widgets/itemviews/spreadsheet/CMakeLists.txt %%QT_EXAMPLEDIR%%/widgets/itemviews/spreadsheet/images/interview.png %%QT_EXAMPLEDIR%%/widgets/itemviews/spreadsheet/main.cpp @@ -7937,8 +8127,6 @@ %%QT_EXAMPLEDIR%%/widgets/painting/shared/arthurstyle.h %%QT_EXAMPLEDIR%%/widgets/painting/shared/arthurwidgets.cpp %%QT_EXAMPLEDIR%%/widgets/painting/shared/arthurwidgets.h -%%QT_EXAMPLEDIR%%/widgets/painting/shared/fbopaintdevice.cpp -%%QT_EXAMPLEDIR%%/widgets/painting/shared/fbopaintdevice.h %%QT_EXAMPLEDIR%%/widgets/painting/shared/hoverpoints.cpp %%QT_EXAMPLEDIR%%/widgets/painting/shared/hoverpoints.h %%QT_EXAMPLEDIR%%/widgets/painting/shared/images/bg_pattern.png @@ -7994,6 +8182,29 @@ %%QT_EXAMPLEDIR%%/widgets/qnx/foreignwindows/collector.h %%QT_EXAMPLEDIR%%/widgets/qnx/foreignwindows/foreignwindows.pro %%QT_EXAMPLEDIR%%/widgets/qnx/foreignwindows/main.cpp +%%QT_EXAMPLEDIR%%/widgets/rhi/CMakeLists.txt +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/CMakeLists.txt +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/cube.h +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/cuberhiwidget.pro +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/cuberhiwidget.qrc +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/examplewidget.cpp +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/examplewidget.h +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/main.cpp +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/shader_assets/texture.frag.qsb +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/shader_assets/texture.vert.qsb +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/shaders/texture.frag +%%QT_EXAMPLEDIR%%/widgets/rhi/cuberhiwidget/shaders/texture.vert +%%QT_EXAMPLEDIR%%/widgets/rhi/rhi.pro +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/CMakeLists.txt +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/examplewidget.cpp +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/examplewidget.h +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/main.cpp +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/shader_assets/color.frag.qsb +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/shader_assets/color.vert.qsb +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/shaders/color.frag +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/shaders/color.vert +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/simplerhiwidget.pro +%%QT_EXAMPLEDIR%%/widgets/rhi/simplerhiwidget/simplerhiwidget.qrc %%QT_EXAMPLEDIR%%/widgets/richtext/CMakeLists.txt %%QT_EXAMPLEDIR%%/widgets/richtext/README %%QT_EXAMPLEDIR%%/widgets/richtext/orderform/CMakeLists.txt @@ -8032,19 +8243,6 @@ %%QT_EXAMPLEDIR%%/widgets/tools/customcompleter/resources/wordlist.txt %%QT_EXAMPLEDIR%%/widgets/tools/customcompleter/textedit.cpp %%QT_EXAMPLEDIR%%/widgets/tools/customcompleter/textedit.h -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/CMakeLists.txt -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/echoplugin.pro -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/echowindow/CMakeLists.txt -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/echowindow/echointerface.h -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/echowindow/echowindow.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/echowindow/echowindow.h -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/echowindow/echowindow.pro -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/echowindow/main.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/plugin/CMakeLists.txt -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/plugin/echoplugin.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/plugin/echoplugin.h -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/plugin/echoplugin.json -%%QT_EXAMPLEDIR%%/widgets/tools/echoplugin/plugin/plugin.pro %%QT_EXAMPLEDIR%%/widgets/tools/regularexpression/CMakeLists.txt %%QT_EXAMPLEDIR%%/widgets/tools/regularexpression/images/copy.png %%QT_EXAMPLEDIR%%/widgets/tools/regularexpression/main.cpp @@ -8052,33 +8250,6 @@ %%QT_EXAMPLEDIR%%/widgets/tools/regularexpression/regularexpression.qrc %%QT_EXAMPLEDIR%%/widgets/tools/regularexpression/regularexpressiondialog.cpp %%QT_EXAMPLEDIR%%/widgets/tools/regularexpression/regularexpressiondialog.h -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/CMakeLists.txt -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/inifiles/licensepage.ini -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/inifiles/qsa.ini -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/locationdialog.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/locationdialog.h -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/main.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/mainwindow.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/mainwindow.h -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/settingseditor.pro -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/settingstree.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/settingstree.h -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/variantdelegate.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/settingseditor/variantdelegate.h -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/CMakeLists.txt -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/plugin/CMakeLists.txt -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/plugin/plugin.pro -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/plugin/simplestyle.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/plugin/simplestyle.h -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/plugin/simplestyle.json -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/plugin/simplestyleplugin.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/plugin/simplestyleplugin.h -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/styleplugin.pro -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/stylewindow/CMakeLists.txt -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/stylewindow/main.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/stylewindow/stylewindow.cpp -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/stylewindow/stylewindow.h -%%QT_EXAMPLEDIR%%/widgets/tools/styleplugin/stylewindow/stylewindow.pro %%QT_EXAMPLEDIR%%/widgets/tools/tools.pro %%QT_EXAMPLEDIR%%/widgets/tools/treemodelcompleter/CMakeLists.txt %%QT_EXAMPLEDIR%%/widgets/tools/treemodelcompleter/main.cpp diff --git a/multimedia/qt6-multimedia/Makefile b/multimedia/qt6-multimedia/Makefile index 08660da6d670..88c6f844cb8e 100644 --- a/multimedia/qt6-multimedia/Makefile +++ b/multimedia/qt6-multimedia/Makefile @@ -3,6 +3,9 @@ DISTVERSION= ${QT6_VERSION} CATEGORIES= multimedia PKGNAMEPREFIX= qt6- +PATCH_SITES= https://github.com/qt/qtmultimedia/commit/ +PATCHFILES+= 7fcea568c9c64f3bcebda21f0df02aa0107dfd0c.patch:-p1 + MAINTAINER= kde@FreeBSD.org COMMENT= Qt audio, video, radio and camera support module diff --git a/multimedia/qt6-multimedia/distinfo b/multimedia/qt6-multimedia/distinfo index 5becbb32f2b0..58d29a34a088 100644 --- a/multimedia/qt6-multimedia/distinfo +++ b/multimedia/qt6-multimedia/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1711663460 -SHA256 (KDE/Qt/6.6.3/qtmultimedia-everywhere-src-6.6.3.tar.xz) = be00f830d2b14c9a12f3b6812ba3a23fdaaceb2dd9c1c6394c329c8bf6e53ab2 -SIZE (KDE/Qt/6.6.3/qtmultimedia-everywhere-src-6.6.3.tar.xz) = 8266612 +TIMESTAMP = 1712784204 +SHA256 (KDE/Qt/6.7.0/qtmultimedia-everywhere-src-6.7.0.tar.xz) = f394bae49e3d4ee6a3b0c9e1e5e31bb870cc04a4b44f4cda3615baf7bd078c70 +SIZE (KDE/Qt/6.7.0/qtmultimedia-everywhere-src-6.7.0.tar.xz) = 8315312 +SHA256 (KDE/Qt/6.7.0/7fcea568c9c64f3bcebda21f0df02aa0107dfd0c.patch) = ccaf3db6425e43ae19354ae797dbff66176e63a7c31238bbeb90dd10cf940e03 +SIZE (KDE/Qt/6.7.0/7fcea568c9c64f3bcebda21f0df02aa0107dfd0c.patch) = 8797 diff --git a/multimedia/qt6-multimedia/pkg-plist b/multimedia/qt6-multimedia/pkg-plist index 6e320bc0920e..01459b6f8ff3 100644 --- a/multimedia/qt6-multimedia/pkg-plist +++ b/multimedia/qt6-multimedia/pkg-plist @@ -45,7 +45,6 @@ %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qsamplecache_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qtmultimedia-config_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qtmultimediaglobal_p.h -%%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qtvideo_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qvideoframe_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qvideoframeconversionhelper_p.h %%QT_INCDIR%%/QtMultimedia/%%FULLVER%%/QtMultimedia/private/qvideoframeconverter_p.h @@ -81,6 +80,7 @@ %%QT_INCDIR%%/QtMultimedia/QVideoSink %%QT_INCDIR%%/QtMultimedia/QWaveDecoder %%QT_INCDIR%%/QtMultimedia/QWindowCapture +%%QT_INCDIR%%/QtMultimedia/QtAudio %%QT_INCDIR%%/QtMultimedia/QtMultimedia %%QT_INCDIR%%/QtMultimedia/QtMultimediaDepends %%QT_INCDIR%%/QtMultimedia/QtMultimediaVersion @@ -107,11 +107,12 @@ %%QT_INCDIR%%/QtMultimedia/qmediatimerange.h %%QT_INCDIR%%/QtMultimedia/qscreencapture.h %%QT_INCDIR%%/QtMultimedia/qsoundeffect.h +%%QT_INCDIR%%/QtMultimedia/qtaudio.h %%QT_INCDIR%%/QtMultimedia/qtmultimedia-config.h -%%QT_INCDIR%%/QtMultimedia/qtmultimediadefs.h %%QT_INCDIR%%/QtMultimedia/qtmultimediaexports.h %%QT_INCDIR%%/QtMultimedia/qtmultimediaglobal.h %%QT_INCDIR%%/QtMultimedia/qtmultimediaversion.h +%%QT_INCDIR%%/QtMultimedia/qtvideo.h %%QT_INCDIR%%/QtMultimedia/qvideoframe.h %%QT_INCDIR%%/QtMultimedia/qvideoframeformat.h %%QT_INCDIR%%/QtMultimedia/qvideosink.h @@ -139,7 +140,6 @@ %%QT_INCDIR%%/QtMultimediaWidgets/QtMultimediaWidgetsDepends %%QT_INCDIR%%/QtMultimediaWidgets/QtMultimediaWidgetsVersion %%QT_INCDIR%%/QtMultimediaWidgets/qgraphicsvideoitem.h -%%QT_INCDIR%%/QtMultimediaWidgets/qtmultimediawidgetdefs.h %%QT_INCDIR%%/QtMultimediaWidgets/qtmultimediawidgetsexports.h %%QT_INCDIR%%/QtMultimediaWidgets/qtmultimediawidgetsglobal.h %%QT_INCDIR%%/QtMultimediaWidgets/qtmultimediawidgetsversion.h diff --git a/net/py-qt6-networkauth/Makefile b/net/py-qt6-networkauth/Makefile index f9c25118f7f1..ad5d0e107f92 100644 --- a/net/py-qt6-networkauth/Makefile +++ b/net/py-qt6-networkauth/Makefile @@ -11,11 +11,8 @@ MAINTAINER= kde@FreeBSD.org COMMENT= Python bindings for the Qt6 toolkit, QtNetworkAuth module WWW= https://riverbankcomputing.com/software/pyqt -LIB_DEPENDS= libqscintilla2_qt6.so:devel/qscintilla2-qt6 - USES= gl pyqt:6 python qt:6 -USE_GL= gl -USE_LOCALE= C.UTF-8 +USE_GL= opengl USE_PYQT= sip:build pyqt6 qtbuilder USE_PYTHON= concurrent flavors USE_QT= base networkauth diff --git a/net/py-qt6-networkauth/distinfo b/net/py-qt6-networkauth/distinfo index a7675b2301fe..e7358e253955 100644 --- a/net/py-qt6-networkauth/distinfo +++ b/net/py-qt6-networkauth/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1698901185 -SHA256 (PyQt6_NetworkAuth-6.6.0.tar.gz) = cdfc0bfaea16a9e09f075bdafefb996aa9fdec392052ba4fb3cbac233c1958fb -SIZE (PyQt6_NetworkAuth-6.6.0.tar.gz) = 20114 +TIMESTAMP = 1714272075 +SHA256 (PyQt6_NetworkAuth-6.7.0.tar.gz) = 974983525437633a0f016c0ffa0dc311847089f253dfe6840b0ec8ce21dc8685 +SIZE (PyQt6_NetworkAuth-6.7.0.tar.gz) = 20275 diff --git a/net/qt6-coap/distinfo b/net/qt6-coap/distinfo index 7a0dc440ea7e..4dba11e699fb 100644 --- a/net/qt6-coap/distinfo +++ b/net/qt6-coap/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711663462 -SHA256 (KDE/Qt/6.6.3/qt-qtcoap-v6.6.3_GH0.tar.gz) = ae5b67fc48f13da0a2353527fb0c6e6ac9f56374f0d17a66208116c3f3e1ae71 -SIZE (KDE/Qt/6.6.3/qt-qtcoap-v6.6.3_GH0.tar.gz) = 183074 +TIMESTAMP = 1712114578 +SHA256 (KDE/Qt/6.7.0/qt-qtcoap-v6.7.0_GH0.tar.gz) = fb3c8b7b49a642139840130a603c05f9d8413e963d644b0c897de863baad118e +SIZE (KDE/Qt/6.7.0/qt-qtcoap-v6.7.0_GH0.tar.gz) = 183108 diff --git a/net/qt6-networkauth/distinfo b/net/qt6-networkauth/distinfo index 6e823a89607c..81e9b9b96490 100644 --- a/net/qt6-networkauth/distinfo +++ b/net/qt6-networkauth/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711663464 -SHA256 (KDE/Qt/6.6.3/qtnetworkauth-everywhere-src-6.6.3.tar.xz) = 5db9a30b42d7ff22ce1a0048474c36b3b84e1e55f3af991ba3cc8e0dc9bb7594 -SIZE (KDE/Qt/6.6.3/qtnetworkauth-everywhere-src-6.6.3.tar.xz) = 143676 +TIMESTAMP = 1712114580 +SHA256 (KDE/Qt/6.7.0/qtnetworkauth-everywhere-src-6.7.0.tar.xz) = 993105616ff0223d3d826e2a497440035721c6e1acdae232935fae3bcfa74a45 +SIZE (KDE/Qt/6.7.0/qtnetworkauth-everywhere-src-6.7.0.tar.xz) = 143660 diff --git a/science/qt6-quick3dphysics/distinfo b/science/qt6-quick3dphysics/distinfo index f124b0eca149..593b62984e53 100644 --- a/science/qt6-quick3dphysics/distinfo +++ b/science/qt6-quick3dphysics/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711663491 -SHA256 (KDE/Qt/6.6.3/qtquick3dphysics-everywhere-src-6.6.3.tar.xz) = 67e19b482ea1ac8ba14afda8f804e90e0a68ff68e7da58b454deffda3051f546 -SIZE (KDE/Qt/6.6.3/qtquick3dphysics-everywhere-src-6.6.3.tar.xz) = 4692928 +TIMESTAMP = 1712114589 +SHA256 (KDE/Qt/6.7.0/qtquick3dphysics-everywhere-src-6.7.0.tar.xz) = 80045f261109f3f3807c0b405d056e935210a36499c3a9aff78296d8940e04e6 +SIZE (KDE/Qt/6.7.0/qtquick3dphysics-everywhere-src-6.7.0.tar.xz) = 4702492 diff --git a/www/py-qt6-webengine/Makefile b/www/py-qt6-webengine/Makefile index ba2317eff1da..8a6e942bdb93 100644 --- a/www/py-qt6-webengine/Makefile +++ b/www/py-qt6-webengine/Makefile @@ -12,7 +12,7 @@ COMMENT= Python bindings for the Qt6 toolkit, QtWebEngine module WWW= https://riverbankcomputing.com/software/pyqt USES= gl python pyqt:6 qt:6 -USE_GL= gl +USE_GL= opengl USE_PYQT= sip:build pyqt6 USE_PYTHON= concurrent flavors USE_QT= base declarative positioning webchannel webengine diff --git a/www/py-qt6-webengine/distinfo b/www/py-qt6-webengine/distinfo index a47e084a2044..4e4a1ee59e1d 100644 --- a/www/py-qt6-webengine/distinfo +++ b/www/py-qt6-webengine/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1698900348 -SHA256 (PyQt6_WebEngine-6.6.0.tar.gz) = d50b984c3f85e409e692b156132721522d4e8cf9b6c25e0cf927eea2dfb39487 -SIZE (PyQt6_WebEngine-6.6.0.tar.gz) = 31817 +TIMESTAMP = 1714272046 +SHA256 (PyQt6_WebEngine-6.7.0.tar.gz) = 68edc7adb6d9e275f5de956881e79cca0d71fad439abeaa10d823bff5ac55001 +SIZE (PyQt6_WebEngine-6.7.0.tar.gz) = 32593 diff --git a/www/py-qt6-webengine/pkg-plist b/www/py-qt6-webengine/pkg-plist index c223a7b9147b..d569bcec7b29 100644 --- a/www/py-qt6-webengine/pkg-plist +++ b/www/py-qt6-webengine/pkg-plist @@ -7,6 +7,7 @@ %%PYQT_SIPDIR%%/QtWebEngineCore/qwebengineclientcertificatestore.sip %%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginecontextmenurequest.sip %%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginecookiestore.sip +%%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginedesktopmediarequest.sip %%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginedownloadrequest.sip %%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginefilesystemaccessrequest.sip %%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginefindtextresult.sip @@ -30,6 +31,7 @@ %%PYQT_SIPDIR%%/QtWebEngineCore/qwebengineurlrequestjob.sip %%PYQT_SIPDIR%%/QtWebEngineCore/qwebengineurlscheme.sip %%PYQT_SIPDIR%%/QtWebEngineCore/qwebengineurlschemehandler.sip +%%PYQT_SIPDIR%%/QtWebEngineCore/qwebenginewebauthuxrequest.sip %%PYQT_SIPDIR%%/QtWebEngineQuick/QtWebEngineQuick.toml %%PYQT_SIPDIR%%/QtWebEngineQuick/QtWebEngineQuickmod.sip %%PYQT_SIPDIR%%/QtWebEngineQuick/qquickwebengineprofile.sip diff --git a/www/qt6-httpserver/distinfo b/www/qt6-httpserver/distinfo index f14fe9dc69fc..3034098790ec 100644 --- a/www/qt6-httpserver/distinfo +++ b/www/qt6-httpserver/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711663494 -SHA256 (KDE/Qt/6.6.3/qthttpserver-everywhere-src-6.6.3.tar.xz) = 41ac78d745d00eef1c3866dda5119d3649a64fa08d44d72d89b83aeecde87835 -SIZE (KDE/Qt/6.6.3/qthttpserver-everywhere-src-6.6.3.tar.xz) = 162228 +TIMESTAMP = 1712114591 +SHA256 (KDE/Qt/6.7.0/qthttpserver-everywhere-src-6.7.0.tar.xz) = c2e2e38b2b21537eeef20d097bb5f216081462c44b78d63045e60d6fd9f89bfa +SIZE (KDE/Qt/6.7.0/qthttpserver-everywhere-src-6.7.0.tar.xz) = 163044 diff --git a/www/qt6-webchannel/distinfo b/www/qt6-webchannel/distinfo index f0fb96133280..efd443f28aec 100644 --- a/www/qt6-webchannel/distinfo +++ b/www/qt6-webchannel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711663498 -SHA256 (KDE/Qt/6.6.3/qtwebchannel-everywhere-src-6.6.3.tar.xz) = 7c7b2ae5d1b496f76a7ece3ac5728a8d209af4ac7853207dbc01a4982f718c33 -SIZE (KDE/Qt/6.6.3/qtwebchannel-everywhere-src-6.6.3.tar.xz) = 206396 +TIMESTAMP = 1712114594 +SHA256 (KDE/Qt/6.7.0/qtwebchannel-everywhere-src-6.7.0.tar.xz) = 26bfbd404e0c82bfbeeaef81796eb7a7cf931c5c1a5e942a315ca7126322efff +SIZE (KDE/Qt/6.7.0/qtwebchannel-everywhere-src-6.7.0.tar.xz) = 206600 diff --git a/www/qt6-webengine/Makefile b/www/qt6-webengine/Makefile index dd2051eed7e0..b6f2d157f127 100644 --- a/www/qt6-webengine/Makefile +++ b/www/qt6-webengine/Makefile @@ -12,7 +12,7 @@ PORTNAME?= webengine DISTVERSION= ${QT6_VERSION} -PORTREVISION?= 1 # Master port for print/qt6-pdf. Please keep this line. +PORTREVISION?= 0 # Master port for print/qt6-pdf. Please keep this line. CATEGORIES?= www PKGNAMEPREFIX= qt6- @@ -101,10 +101,11 @@ DO_MAKE_BUILD= ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} -j1 $ BINARY_ALIAS= python3=${PYTHON_CMD} .if !defined(BUILD_QTPDF) -OPTIONS_DEFINE= CUPS -OPTIONS_DEFAULT= ALSA CUPS +OPTIONS_DEFINE= CUPS DRIVER +OPTIONS_DEFAULT= ALSA CUPS DRIVER OPTIONS_SINGLE= AUDIO OPTIONS_SINGLE_AUDIO= ALSA PULSEAUDIO SNDIO +OPTIONS_SUB= yes AUDIO_DESC= Audio backend @@ -122,6 +123,10 @@ CUPS_LIB_DEPENDS= libcups.so:print/cups \ CUPS_CMAKE_ON= -DQT_FEATURE_webengine_printing_and_pdf:BOOL=ON CUPS_CMAKE_OFF= -DQT_FEATURE_webengine_printing_and_pdf:BOOL=OFF +DRIVER_DESC= Install WebEngineDriver +DRIVER_CMAKE_ON= -DQT_FEATURE_webenginedriver:BOOL=ON +DRIVER_CMAKE_OFF= -DQT_FEATURE_webenginedriver:BOOL=OFF + PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CMAKE_ON= -DQT_FEATURE_webengine_system_pulseaudio:BOOL=ON PULSEAUDIO_CMAKE_OFF= -DQT_FEATURE_webengine_system_pulseaudio:BOOL=OFF @@ -165,4 +170,15 @@ pre-configure: ./build/linux/unbundle/replace_gn_files.py --system-libraries \ ${SYS_LIBS} || ${FALSE} +.if !defined(BUILD_QTPDF) +post-install: +# Fix for deskutils/calibre, perhaps others, where this empty directory +# is created during build causing a fs-violation. + ${MKDIR} ${STAGEDIR}${QT_DATADIR}/resources/locales + +post-install-DRIVER-on: + ${STRIP_CMD} ${STAGEDIR}${QT_TOOLDIR}/webenginedriver + +.endif + .include <bsd.port.post.mk> diff --git a/www/qt6-webengine/distinfo b/www/qt6-webengine/distinfo index f963466e7f5c..a6a5a71622f1 100644 --- a/www/qt6-webengine/distinfo +++ b/www/qt6-webengine/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1711664649 -SHA256 (KDE/Qt/6.6.3/qtwebengine-everywhere-src-6.6.3.tar.xz) = 7c2bdc83b21b82a179a7bf098df47ebf66ba7693d67ebda55a4a28d9eadad804 -SIZE (KDE/Qt/6.6.3/qtwebengine-everywhere-src-6.6.3.tar.xz) = 421076320 +TIMESTAMP = 1712115499 +SHA256 (KDE/Qt/6.7.0/qtwebengine-everywhere-src-6.7.0.tar.xz) = 1a5ba443635dc1f439ab802ac6d761b8def5ebb24e5219bb7289288e72c147de +SIZE (KDE/Qt/6.7.0/qtwebengine-everywhere-src-6.7.0.tar.xz) = 550907592 diff --git a/www/qt6-webengine/files/patch-cmake_Functions.cmake b/www/qt6-webengine/files/patch-cmake_Functions.cmake index 7dcc0eee40f7..e4c938996ef3 100644 --- a/www/qt6-webengine/files/patch-cmake_Functions.cmake +++ b/www/qt6-webengine/files/patch-cmake_Functions.cmake @@ -1,4 +1,4 @@ ---- cmake/Functions.cmake.orig 2024-02-10 00:23:21 UTC +--- cmake/Functions.cmake.orig 2024-02-10 00:27:53 UTC +++ cmake/Functions.cmake @@ -416,7 +416,7 @@ function(add_linker_options target buildDir completeSt set(libs_rsp "${buildDir}/${ninjaTarget}_libs.rsp") @@ -9,7 +9,7 @@ get_gn_arch(cpu ${TEST_architecture_arch}) if(CMAKE_CROSSCOMPILING AND cpu STREQUAL "arm" AND ${config} STREQUAL "Debug") target_link_options(${cmakeTarget} PRIVATE "LINKER:--long-plt") -@@ -673,6 +673,8 @@ function(get_gn_os result) +@@ -675,6 +675,8 @@ function(get_gn_os result) set(${result} "mac" PARENT_SCOPE) elseif(IOS) set(${result} "ios" PARENT_SCOPE) @@ -18,7 +18,7 @@ else() message(DEBUG "Unrecognized OS") endif() -@@ -865,7 +867,7 @@ macro(append_build_type_setup) +@@ -878,7 +880,7 @@ macro(append_build_type_setup) extend_gn_list(gnArgArg ARGS enable_precompiled_headers @@ -27,7 +27,7 @@ ) extend_gn_list(gnArgArg ARGS dcheck_always_on -@@ -917,7 +919,7 @@ macro(append_compiler_linker_sdk_setup) +@@ -932,7 +934,7 @@ macro(append_compiler_linker_sdk_setup) use_libcxx=true ) endif() @@ -36,7 +36,7 @@ extend_gn_list(gnArgArg ARGS use_libcxx CONDITION QT_FEATURE_stdlib_libcpp ) -@@ -955,7 +957,7 @@ macro(append_compiler_linker_sdk_setup) +@@ -970,7 +972,7 @@ macro(append_compiler_linker_sdk_setup) ) endif() get_gn_arch(cpu ${TEST_architecture_arch}) @@ -45,7 +45,7 @@ extend_gn_list_cflag(gnArgArg ARG arm_tune -@@ -1040,7 +1042,7 @@ macro(append_toolchain_setup) +@@ -1060,7 +1062,7 @@ macro(append_toolchain_setup) host_cpu="${cpu}" ) endif() @@ -54,16 +54,7 @@ get_gn_arch(cpu ${TEST_architecture_arch}) list(APPEND gnArgArg custom_toolchain="${buildDir}/target_toolchain:target" -@@ -1073,7 +1075,7 @@ macro(append_pkg_config_setup) - - - macro(append_pkg_config_setup) -- if(LINUX) -+ if(LINUX OR FREEBSD) - list(APPEND gnArgArg - pkg_config="${PKG_CONFIG_EXECUTABLE}" - host_pkg_config="${PKG_CONFIG_HOST_EXECUTABLE}" -@@ -1166,6 +1168,20 @@ function(add_gn_build_artifacts_to_target) +@@ -1198,6 +1200,20 @@ function(add_gn_build_artifacts_to_target) set_target_properties(${arg_CMAKE_TARGET} PROPERTIES LINK_DEPENDS ${arg_BUILDDIR}/${config}/${arch}/${arg_NINJA_STAMP} ) @@ -84,7 +75,7 @@ if(QT_IS_MACOS_UNIVERSAL) add_intermediate_archive(${target} ${arg_BUILDDIR}/${config}/${arch} ${arg_COMPLETE_STATIC}) elseif(IOS) -@@ -1283,7 +1299,7 @@ function(check_for_ulimit) +@@ -1313,7 +1329,7 @@ function(check_for_ulimit) function(check_for_ulimit) message("-- Checking 'ulimit -n'") @@ -93,7 +84,7 @@ OUTPUT_VARIABLE ulimitOutput ) string(REGEX MATCHALL "[0-9]+" limit "${ulimitOutput}") -@@ -1292,7 +1308,7 @@ function(check_for_ulimit) +@@ -1322,7 +1338,7 @@ function(check_for_ulimit) if(NOT ${CMAKE_VERSION} VERSION_LESS "3.21.0") message(" -- Creating linker launcher") file(GENERATE OUTPUT ${PROJECT_BINARY_DIR}/linker_ulimit.sh diff --git a/www/qt6-webengine/files/patch-configure.cmake b/www/qt6-webengine/files/patch-configure.cmake index ff2e426fbc47..7fdd8b60d800 100644 --- a/www/qt6-webengine/files/patch-configure.cmake +++ b/www/qt6-webengine/files/patch-configure.cmake @@ -1,6 +1,6 @@ ---- configure.cmake.orig 2024-02-10 00:23:21 UTC +--- configure.cmake.orig 2023-12-12 22:08:45 UTC +++ configure.cmake -@@ -67,7 +67,7 @@ endif() +@@ -68,7 +68,7 @@ endif() endif() #### Tests @@ -9,7 +9,7 @@ check_for_ulimit() endif() -@@ -427,7 +427,7 @@ qt_feature("webengine-ozone-x11" PRIVATE +@@ -428,7 +428,7 @@ qt_feature("webengine-ozone-x11" PRIVATE qt_feature("webengine-ozone-x11" PRIVATE LABEL "Support GLX on qpa-xcb" @@ -18,7 +18,7 @@ AND TARGET Qt::Gui AND QT_FEATURE_xcb AND X11_FOUND -@@ -464,12 +464,12 @@ add_check_for_support( +@@ -465,12 +465,12 @@ add_check_for_support( ) add_check_for_support( MODULES QtWebEngine @@ -28,9 +28,9 @@ ) add_check_for_support( MODULES QtPdf -- CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS OR (ANDROID AND NOT CMAKE_HOST_WIN32) -+ CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS OR (ANDROID AND NOT CMAKE_HOST_WIN32) OR FREEBSD - MESSAGE "Build can be done only on Linux, Windows, macO, iOS and Android(on non-Windows hosts only)." +- CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS OR ANDROID ++ CONDITION LINUX OR (WIN32 AND NOT WIN_ARM_64) OR MACOS OR IOS OR ANDROID OR FREEBSD + MESSAGE "Build can be done only on Linux, Windows, macO, iOS and Android." ) if(LINUX AND CMAKE_CROSSCOMPILING) @@ -492,13 +492,6 @@ add_check_for_support( diff --git a/www/qt6-webengine/files/patch-security-rollup b/www/qt6-webengine/files/patch-security-rollup index cc5eefd44e79..a3d1a6bc69d2 100644 --- a/www/qt6-webengine/files/patch-security-rollup +++ b/www/qt6-webengine/files/patch-security-rollup @@ -3,6 +3,34 @@ Add security patches to this file. Addresses the following security issues: - CVE-2023-7104 +- CVE-2024-2625 +- CVE-2024-2626 +- Security bug 40066823 +- Security bug 41495984 +- CVE-2024-2885 +- CVE-2024-2887 +- Security bug 329674887 +- Security bug 327183408 +- CVE-2024-3159 +- Security bug 326349405 +- CVE-2024-3157 +- CVE-2024-3516 +- Security bug 326521449 +- CVE-2024-3839 +- CVE-2024-3837 +- Security bug 327698060 +- Security bug 40940917 +- CVE-2024-3914 +- Security bug 326498393 +- CVE-2024-3840 +- Security bug 323898565 +- CVE-2024-4058 +- CVE-2024-4060 +- Security bug 332724843 +- CVE-2024-4331 +- CVE-2024-4368 +- CVE-2024-4671 +- Security bug 339458194 From b8c9622b71d032a48412e342cff91fc0f3f5e3d9 Mon Sep 17 00:00:00 2001 From: Michal Klocek <michal.klocek@qt.io> @@ -56,3 +84,6008 @@ index b353aa88348..a0feb5d200c 100644 } } } +From a907a6cbc18a04d791b0c97918a558d49f696cd4 Mon Sep 17 00:00:00 2001 +From: Shu-yu Guo <syg@chromium.org> +Date: Thu, 7 Mar 2024 14:55:28 -0800 +Subject: [PATCH] [Backport] CVE-2024-2625: Object lifecycle issue in V8 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Manual cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/v8/v8/+/5350482: +Fix home object proxy to work off-thread + +Because the home object has special scope lookup rules due to class +heritage position, VariableProxies of the home object are currently +directly created on the correct scope during parsing. However, during +off-thread parsing the main thread is parked, and the correct scope +may try to dereference a main-thread Handle. + +This CL moves the logic into ResolveVariable instead, which happens +during postprocessing, with the main thread unparked. + +Fixed: chromium:327740539 +Change-Id: I3a123d5e37b6764067e58255dd5a67c07e648d02 +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5350482 +Reviewed-by: Marja Hölttä <marja@chromium.org> +Commit-Queue: Marja Hölttä <marja@chromium.org> +Auto-Submit: Shu-yu Guo <syg@chromium.org> +Cr-Commit-Position: refs/heads/main@{#92722} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551089 +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> +--- + chromium/v8/src/ast/ast.h | 10 +++- + chromium/v8/src/ast/scopes.cc | 78 ++++++++++++--------------- + chromium/v8/src/ast/scopes.h | 7 +-- + chromium/v8/src/parsing/parser-base.h | 4 +- + chromium/v8/src/parsing/parser.cc | 11 ++-- + chromium/v8/src/parsing/parser.h | 2 +- + chromium/v8/src/parsing/preparser.h | 3 +- + 7 files changed, 52 insertions(+), 63 deletions(-) + +diff --git a/chromium/v8/src/ast/ast.h b/chromium/v8/src/ast/ast.h +index cf9d52eeed6..7bb30723607 100644 +--- src/3rdparty/chromium/v8/src/ast/ast.h ++++ src/3rdparty/chromium/v8/src/ast/ast.h +@@ -1534,6 +1534,12 @@ class VariableProxy final : public Expression { + bit_field_ = IsRemovedFromUnresolvedField::update(bit_field_, true); + } + ++ bool is_home_object() const { return IsHomeObjectField::decode(bit_field_); } ++ ++ void set_is_home_object() { ++ bit_field_ = IsHomeObjectField::update(bit_field_, true); ++ } ++ + // Provides filtered access to the unresolved variable proxy threaded list. + struct UnresolvedNext { + static VariableProxy** filter(VariableProxy** t) { +@@ -1565,6 +1571,7 @@ class VariableProxy final : public Expression { + bit_field_ |= IsAssignedField::encode(false) | + IsResolvedField::encode(false) | + IsRemovedFromUnresolvedField::encode(false) | ++ IsHomeObjectField::encode(false) | + HoleCheckModeField::encode(HoleCheckMode::kElided); + } + +@@ -1574,7 +1581,8 @@ class VariableProxy final : public Expression { + using IsResolvedField = IsAssignedField::Next<bool, 1>; + using IsRemovedFromUnresolvedField = IsResolvedField::Next<bool, 1>; + using IsNewTargetField = IsRemovedFromUnresolvedField::Next<bool, 1>; +- using HoleCheckModeField = IsNewTargetField::Next<HoleCheckMode, 1>; ++ using IsHomeObjectField = IsNewTargetField::Next<bool, 1>; ++ using HoleCheckModeField = IsHomeObjectField::Next<HoleCheckMode, 1>; + + union { + const AstRawString* raw_name_; // if !is_resolved_ +diff --git a/chromium/v8/src/ast/scopes.cc b/chromium/v8/src/ast/scopes.cc +index 003bd0f2736..34415941556 100644 +--- src/3rdparty/chromium/v8/src/ast/scopes.cc ++++ src/3rdparty/chromium/v8/src/ast/scopes.cc +@@ -491,7 +491,6 @@ Scope* Scope::DeserializeScopeChain(IsolateT* isolate, Zone* zone, + if (cache_scope_found) { + outer_scope->set_deserialized_scope_uses_external_cache(); + } else { +- DCHECK(!cache_scope_found); + cache_scope_found = + outer_scope->is_declaration_scope() && !outer_scope->is_eval_scope(); + } +@@ -970,9 +969,14 @@ Variable* Scope::LookupInScopeInfo(const AstRawString* name, Scope* cache) { + DCHECK(!cache->deserialized_scope_uses_external_cache()); + // The case where where the cache can be another scope is when the cache scope + // is the last scope that doesn't use an external cache. ++ // ++ // The one exception to this is when looking up the home object, which may ++ // skip multiple scopes that don't use an external cache (e.g., several arrow ++ // functions). + DCHECK_IMPLIES( + cache != this, +- cache->outer_scope()->deserialized_scope_uses_external_cache()); ++ cache->outer_scope()->deserialized_scope_uses_external_cache() || ++ cache->GetHomeObjectScope() == this); + DCHECK_NULL(cache->variables_.Lookup(name)); + DisallowGarbageCollection no_gc; + +@@ -2282,7 +2286,33 @@ Variable* Scope::LookupSloppyEval(VariableProxy* proxy, Scope* scope, + + void Scope::ResolveVariable(VariableProxy* proxy) { + DCHECK(!proxy->is_resolved()); +- Variable* var = Lookup<kParsedScope>(proxy, this, nullptr); ++ Variable* var; ++ if (V8_UNLIKELY(proxy->is_home_object())) { ++ // VariableProxies of the home object cannot be resolved like a normal ++ // variable. Consider the case of a super.property usage in heritage ++ // position: ++ // ++ // class C extends super.foo { m() { super.bar(); } } ++ // ++ // The super.foo property access is logically nested under C's class scope, ++ // which also has a home object due to its own method m's usage of ++ // super.bar(). However, super.foo must resolve super in C's outer scope. ++ // ++ // Because of the above, start resolving home objects directly at the home ++ // object scope instead of the current scope. ++ Scope* scope = GetDeclarationScope()->GetHomeObjectScope(); ++ DCHECK_NOT_NULL(scope); ++ if (scope->scope_info_.is_null()) { ++ var = Lookup<kParsedScope>(proxy, scope, nullptr); ++ } else { ++ Scope* entry_cache = scope->deserialized_scope_uses_external_cache() ++ ? GetNonEvalDeclarationScope() ++ : scope; ++ var = Lookup<kDeserializedScope>(proxy, scope, nullptr, entry_cache); ++ } ++ } else { ++ var = Lookup<kParsedScope>(proxy, this, nullptr); ++ } + DCHECK_NOT_NULL(var); + ResolveTo(proxy, var); + } +@@ -2752,48 +2782,6 @@ int Scope::ContextLocalCount() const { + (is_function_var_in_context ? 1 : 0); + } + +-VariableProxy* Scope::NewHomeObjectVariableProxy(AstNodeFactory* factory, +- const AstRawString* name, +- int start_pos) { +- // VariableProxies of the home object cannot be resolved like a normal +- // variable. Consider the case of a super.property usage in heritage position: +- // +- // class C extends super.foo { m() { super.bar(); } } +- // +- // The super.foo property access is logically nested under C's class scope, +- // which also has a home object due to its own method m's usage of +- // super.bar(). However, super.foo must resolve super in C's outer scope. +- // +- // Because of the above, home object VariableProxies are always made directly +- // on the Scope that needs the home object instead of the innermost scope. +- DCHECK(needs_home_object()); +- if (!scope_info_.is_null()) { +- // This is a lazy compile, so the home object's context slot is already +- // known. +- Variable* home_object = variables_.Lookup(name); +- if (home_object == nullptr) { +- VariableLookupResult lookup_result; +- int index = scope_info_->ContextSlotIndex(name->string(), &lookup_result); +- DCHECK_GE(index, 0); +- bool was_added; +- home_object = variables_.Declare(zone(), this, name, lookup_result.mode, +- NORMAL_VARIABLE, lookup_result.init_flag, +- lookup_result.maybe_assigned_flag, +- IsStaticFlag::kNotStatic, &was_added); +- DCHECK(was_added); +- home_object->AllocateTo(VariableLocation::CONTEXT, index); +- } +- return factory->NewVariableProxy(home_object, start_pos); +- } +- // This is not a lazy compile. Add the unresolved home object VariableProxy to +- // the unresolved list of the home object scope, which is not necessarily the +- // innermost scope. +- VariableProxy* proxy = +- factory->NewVariableProxy(name, NORMAL_VARIABLE, start_pos); +- AddUnresolved(proxy); +- return proxy; +-} +- + bool IsComplementaryAccessorPair(VariableMode a, VariableMode b) { + switch (a) { + case VariableMode::kPrivateGetterOnly: +diff --git a/chromium/v8/src/ast/scopes.h b/chromium/v8/src/ast/scopes.h +index b4c2e8b2136..751aaee3d11 100644 +--- src/3rdparty/chromium/v8/src/ast/scopes.h ++++ src/3rdparty/chromium/v8/src/ast/scopes.h +@@ -603,10 +603,6 @@ class V8_EXPORT_PRIVATE Scope : public NON_EXPORTED_BASE(ZoneObject) { + needs_home_object_ = true; + } + +- VariableProxy* NewHomeObjectVariableProxy(AstNodeFactory* factory, +- const AstRawString* name, +- int start_pos); +- + bool RemoveInnerScope(Scope* inner_scope) { + DCHECK_NOT_NULL(inner_scope); + if (inner_scope == inner_scope_) { +@@ -865,7 +861,7 @@ class V8_EXPORT_PRIVATE DeclarationScope : public Scope { + FunctionKind function_kind() const { return function_kind_; } + + // Inform the scope that the corresponding code uses "super". +- Scope* RecordSuperPropertyUsage() { ++ void RecordSuperPropertyUsage() { + DCHECK(IsConciseMethod(function_kind()) || + IsAccessorFunction(function_kind()) || + IsClassConstructor(function_kind())); +@@ -873,7 +869,6 @@ class V8_EXPORT_PRIVATE DeclarationScope : public Scope { + Scope* home_object_scope = GetHomeObjectScope(); + DCHECK_NOT_NULL(home_object_scope); + home_object_scope->set_needs_home_object(); +- return home_object_scope; + } + + bool uses_super_property() const { return uses_super_property_; } +diff --git a/chromium/v8/src/parsing/parser-base.h b/chromium/v8/src/parsing/parser-base.h +index 66e531dfe78..714406f6aa5 100644 +--- src/3rdparty/chromium/v8/src/parsing/parser-base.h ++++ src/3rdparty/chromium/v8/src/parsing/parser-base.h +@@ -3800,9 +3800,9 @@ ParserBase<Impl>::ParseSuperExpression() { + impl()->ReportMessage(MessageTemplate::kOptionalChainingNoSuper); + return impl()->FailureExpression(); + } +- Scope* home_object_scope = scope->RecordSuperPropertyUsage(); ++ scope->RecordSuperPropertyUsage(); + UseThis(); +- return impl()->NewSuperPropertyReference(home_object_scope, pos); ++ return impl()->NewSuperPropertyReference(pos); + } + // super() is only allowed in derived constructor. new super() is never + // allowed; it's reported as an error by +diff --git a/chromium/v8/src/parsing/parser.cc b/chromium/v8/src/parsing/parser.cc +index da16f85234d..5e4b2d0461a 100644 +--- src/3rdparty/chromium/v8/src/parsing/parser.cc ++++ src/3rdparty/chromium/v8/src/parsing/parser.cc +@@ -300,18 +300,17 @@ Expression* Parser::NewThrowError(Runtime::FunctionId id, + return factory()->NewThrow(call_constructor, pos); + } + +-Expression* Parser::NewSuperPropertyReference(Scope* home_object_scope, +- int pos) { ++Expression* Parser::NewSuperPropertyReference(int pos) { + const AstRawString* home_object_name; + if (IsStatic(scope()->GetReceiverScope()->function_kind())) { + home_object_name = ast_value_factory_->dot_static_home_object_string(); + } else { + home_object_name = ast_value_factory_->dot_home_object_string(); + } +- return factory()->NewSuperPropertyReference( +- home_object_scope->NewHomeObjectVariableProxy(factory(), home_object_name, +- pos), +- pos); ++ ++ VariableProxy* proxy = NewUnresolved(home_object_name, pos); ++ proxy->set_is_home_object(); ++ return factory()->NewSuperPropertyReference(proxy, pos); + } + + Expression* Parser::NewSuperCallReference(int pos) { +diff --git a/chromium/v8/src/parsing/parser.h b/chromium/v8/src/parsing/parser.h +index 8aede5d6a2c..0e92f0350b5 100644 +--- src/3rdparty/chromium/v8/src/parsing/parser.h ++++ src/3rdparty/chromium/v8/src/parsing/parser.h +@@ -798,7 +798,7 @@ class V8_EXPORT_PRIVATE Parser : public NON_EXPORTED_BASE(ParserBase<Parser>) { + return factory()->NewThisExpression(pos); + } + +- Expression* NewSuperPropertyReference(Scope* home_object_scope, int pos); ++ Expression* NewSuperPropertyReference(int pos); + Expression* NewSuperCallReference(int pos); + Expression* NewTargetExpression(int pos); + Expression* ImportMetaExpression(int pos); +diff --git a/chromium/v8/src/parsing/preparser.h b/chromium/v8/src/parsing/preparser.h +index 6c4996bd06b..2ca6b9ac407 100644 +--- src/3rdparty/chromium/v8/src/parsing/preparser.h ++++ src/3rdparty/chromium/v8/src/parsing/preparser.h +@@ -1536,8 +1536,7 @@ class PreParser : public ParserBase<PreParser> { + return PreParserExpression::This(); + } + +- V8_INLINE PreParserExpression +- NewSuperPropertyReference(Scope* home_object_scope, int pos) { ++ V8_INLINE PreParserExpression NewSuperPropertyReference(int pos) { + return PreParserExpression::Default(); + } + +From c4661dc646e45d06961cda71d00814ce878dbd97 Mon Sep 17 00:00:00 2001 +From: Shahbaz Youssefi <syoussefi@google.com> +Date: Fri, 19 Jan 2024 15:36:25 -0500 +Subject: [PATCH] [Backport] CVE-2024-2626: Out of bounds read in Swiftshader + (1/2) + +Cherry-pick of patch originally reviewed on +https://swiftshader-review.googlesource.com/c/SwiftShader/+/72948: +Clamp LOD during image Fetch for robustness + +Bug: chromium:1504556 +Change-Id: Ie110fe4e1b065a815c09986ab91b1336ef4761ad +Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/72948 +Presubmit-Ready: Shahbaz Youssefi <syoussefi@google.com> +Kokoro-Result: kokoro <noreply+kokoro@google.com> +Reviewed-by: Ben Clayton <bclayton@google.com> +Commit-Queue: Ben Clayton <bclayton@google.com> +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551090 +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> +--- + .../third_party/swiftshader/src/Pipeline/SamplerCore.cpp | 1 + + .../swiftshader/src/Pipeline/SpirvShaderSampling.cpp | 5 +++++ + chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp | 6 ++++-- + chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp | 3 +++ + 4 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp b/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp +index 403ed3bdd560..d62936273fa3 100644 +--- src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp ++++ src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp +@@ -133,6 +133,7 @@ Vector4f SamplerCore::sampleTexture128(Pointer<Byte> &texture, Float4 uvwa[4], c + { + // TODO: Eliminate int-float-int conversion. + lod = Float(As<Int>(lodOrBias)); ++ lod = Min(lod, state.maxLod); + } + else if(function == Base || function == Gather) + { +diff --git a/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp b/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp +index 5225a79f3ba6..777f73e43786 100644 +--- src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp ++++ src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp +@@ -108,6 +108,11 @@ SpirvEmitter::ImageSampler *SpirvEmitter::getImageSampler(const vk::Device *devi + samplerState.minLod = 0.0f; + samplerState.maxLod = 0.0f; + } ++ // Otherwise make sure LOD is clamped for robustness ++ else ++ { ++ samplerState.maxLod = imageViewState.maxLod; ++ } + } + else if(samplerMethod == Write) + { +diff --git a/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp b/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp +index 511c02cbbed9..26b69aef79b3 100644 +--- src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp ++++ src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp +@@ -89,13 +89,13 @@ Identifier::Identifier(const VkImageViewCreateInfo *pCreateInfo) + const Image *sampledImage = image->getSampledImage(viewFormat); + + vk::Format samplingFormat = (image == sampledImage) ? viewFormat : sampledImage->getFormat().getAspectFormat(subresource.aspectMask); +- pack({ pCreateInfo->viewType, samplingFormat, ResolveComponentMapping(pCreateInfo->components, viewFormat), subresource.levelCount <= 1u }); ++ pack({ pCreateInfo->viewType, samplingFormat, ResolveComponentMapping(pCreateInfo->components, viewFormat), static_cast<uint8_t>(subresource.baseMipLevel + subresource.levelCount), subresource.levelCount <= 1u }); + } + + Identifier::Identifier(VkFormat bufferFormat) + { + constexpr VkComponentMapping identityMapping = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A }; +- pack({ VK_IMAGE_VIEW_TYPE_1D, bufferFormat, ResolveComponentMapping(identityMapping, bufferFormat), true }); ++ pack({ VK_IMAGE_VIEW_TYPE_1D, bufferFormat, ResolveComponentMapping(identityMapping, bufferFormat), 1, true }); + } + + void Identifier::pack(const State &state) +@@ -106,6 +106,7 @@ void Identifier::pack(const State &state) + g = static_cast<uint32_t>(state.mapping.g); + b = static_cast<uint32_t>(state.mapping.b); + a = static_cast<uint32_t>(state.mapping.a); ++ maxLod = state.maxLod; + singleMipLevel = state.singleMipLevel; + } + +@@ -117,6 +118,7 @@ Identifier::State Identifier::getState() const + static_cast<VkComponentSwizzle>(g), + static_cast<VkComponentSwizzle>(b), + static_cast<VkComponentSwizzle>(a) }, ++ static_cast<uint8_t>(maxLod), + static_cast<bool>(singleMipLevel) }; + } + +diff --git a/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp b/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp +index bf4d666a425d..5acb89639c12 100644 +--- src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp ++++ src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp +@@ -53,6 +53,7 @@ union Identifier + VkImageViewType imageViewType; + VkFormat format; + VkComponentMapping mapping; ++ uint8_t maxLod; + bool singleMipLevel; + }; + State getState() const; +@@ -61,6 +62,7 @@ union Identifier + void pack(const State &data); + + // Identifier is a union of this struct and the integer below. ++ static_assert(sw::MIPMAP_LEVELS <= 15); + struct + { + uint32_t imageViewType : 3; +@@ -69,6 +71,7 @@ union Identifier + uint32_t g : 3; + uint32_t b : 3; + uint32_t a : 3; ++ uint32_t maxLod : 4; + uint32_t singleMipLevel : 1; + }; + +From a58826b55d30045bed8793dbcd20dc32a73716e2 Mon Sep 17 00:00:00 2001 +From: Shahbaz Youssefi <syoussefi@google.com> +Date: Mon, 22 Jan 2024 09:49:16 -0500 +Subject: [PATCH] [Backport] CVE-2024-2626: Out of bounds read in Swiftshader + (2/2) + +Cherry-pick of patch originally reviewed on +https://swiftshader-review.googlesource.com/c/SwiftShader/+/72968: +Clamp min LOD during image Fetch for robustness + +The previous change clamped max LOD only, but min LOD also needs +clamping because texelFetch takes an `int` as LOD instead of `uint`. + +Bug: chromium:1504556 +Change-Id: Ibae8250a877b3e04b71fac45a40b77c78756d6c8 +Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/72968 +Kokoro-Result: kokoro <noreply+kokoro@google.com> +Reviewed-by: Ben Clayton <bclayton@google.com> +Commit-Queue: Shahbaz Youssefi <syoussefi@google.com> +Presubmit-Ready: Shahbaz Youssefi <syoussefi@google.com> +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551091 +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> +--- + .../third_party/swiftshader/src/Pipeline/SamplerCore.cpp | 1 + + .../swiftshader/src/Pipeline/SpirvShaderSampling.cpp | 1 + + .../third_party/swiftshader/src/Vulkan/VkImageView.cpp | 8 ++++++-- + .../third_party/swiftshader/src/Vulkan/VkImageView.hpp | 2 ++ + 4 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp b/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp +index d62936273fa..ab55c036a3f 100644 +--- src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp ++++ src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SamplerCore.cpp +@@ -133,6 +133,7 @@ Vector4f SamplerCore::sampleTexture128(Pointer<Byte> &texture, Float4 uvwa[4], c + { + // TODO: Eliminate int-float-int conversion. + lod = Float(As<Int>(lodOrBias)); ++ lod = Max(lod, state.minLod); + lod = Min(lod, state.maxLod); + } + else if(function == Base || function == Gather) +diff --git a/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp b/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp +index 777f73e4378..fa88a192ab5 100644 +--- src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp ++++ src/3rdparty/chromium/third_party/swiftshader/src/Pipeline/SpirvShaderSampling.cpp +@@ -111,6 +111,7 @@ SpirvEmitter::ImageSampler *SpirvEmitter::getImageSampler(const vk::Device *devi + // Otherwise make sure LOD is clamped for robustness + else + { ++ samplerState.minLod = imageViewState.minLod; + samplerState.maxLod = imageViewState.maxLod; + } + } +diff --git a/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp b/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp +index 26b69aef79b..1b25544a57b 100644 +--- src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp ++++ src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.cpp +@@ -89,13 +89,15 @@ Identifier::Identifier(const VkImageViewCreateInfo *pCreateInfo) + const Image *sampledImage = image->getSampledImage(viewFormat); + + vk::Format samplingFormat = (image == sampledImage) ? viewFormat : sampledImage->getFormat().getAspectFormat(subresource.aspectMask); +- pack({ pCreateInfo->viewType, samplingFormat, ResolveComponentMapping(pCreateInfo->components, viewFormat), static_cast<uint8_t>(subresource.baseMipLevel + subresource.levelCount), subresource.levelCount <= 1u }); ++ pack({ pCreateInfo->viewType, samplingFormat, ResolveComponentMapping(pCreateInfo->components, viewFormat), ++ static_cast<uint8_t>(subresource.baseMipLevel), ++ static_cast<uint8_t>(subresource.baseMipLevel + subresource.levelCount), subresource.levelCount <= 1u }); + } + + Identifier::Identifier(VkFormat bufferFormat) + { + constexpr VkComponentMapping identityMapping = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A }; +- pack({ VK_IMAGE_VIEW_TYPE_1D, bufferFormat, ResolveComponentMapping(identityMapping, bufferFormat), 1, true }); ++ pack({ VK_IMAGE_VIEW_TYPE_1D, bufferFormat, ResolveComponentMapping(identityMapping, bufferFormat), 0, 1, true }); + } + + void Identifier::pack(const State &state) +@@ -106,6 +108,7 @@ void Identifier::pack(const State &state) + g = static_cast<uint32_t>(state.mapping.g); + b = static_cast<uint32_t>(state.mapping.b); + a = static_cast<uint32_t>(state.mapping.a); ++ minLod = state.minLod; + maxLod = state.maxLod; + singleMipLevel = state.singleMipLevel; + } +@@ -118,6 +121,7 @@ Identifier::State Identifier::getState() const + static_cast<VkComponentSwizzle>(g), + static_cast<VkComponentSwizzle>(b), + static_cast<VkComponentSwizzle>(a) }, ++ static_cast<uint8_t>(minLod), + static_cast<uint8_t>(maxLod), + static_cast<bool>(singleMipLevel) }; + } +diff --git a/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp b/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp +index 5acb89639c1..25feebc9e7e 100644 +--- src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp ++++ src/3rdparty/chromium/third_party/swiftshader/src/Vulkan/VkImageView.hpp +@@ -53,6 +53,7 @@ union Identifier + VkImageViewType imageViewType; + VkFormat format; + VkComponentMapping mapping; ++ uint8_t minLod; + uint8_t maxLod; + bool singleMipLevel; + }; +@@ -71,6 +72,7 @@ union Identifier + uint32_t g : 3; + uint32_t b : 3; + uint32_t a : 3; ++ uint32_t minLod : 4; + uint32_t maxLod : 4; + uint32_t singleMipLevel : 1; + }; +From 336b5c4a31f9f976434adb2ecf1697c764f097cf Mon Sep 17 00:00:00 2001 +From: rajendrant <rajendrant@chromium.org> +Date: Fri, 9 Feb 2024 17:29:51 +0000 +Subject: [PATCH] [Backport] Security bug 40066823 + +Manual partial backport of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5279279: +Remove holding local_state in model store + +Avoids holding on to local_state in model store, by getting the local state when needed from chrome/. This delinks model store lifetime with local state lifetime. + +Change-Id: Ifb036b43b8394202683d4ae1131ff1eae780fc17 +Fixed: 40066823 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5279279 +Reviewed-by: Sophie Chang <sophiechang@chromium.org> +Commit-Queue: Raj T <rajendrant@chromium.org> +Reviewed-by: Trevor Perrier <perrier@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1258580} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551092 +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> +--- + .../core/prediction_model_store.cc | 61 ++++++------------- + .../core/prediction_model_store.h | 28 +++------ + 2 files changed, 28 insertions(+), 61 deletions(-) + +diff --git a/chromium/components/optimization_guide/core/prediction_model_store.cc b/chromium/components/optimization_guide/core/prediction_model_store.cc +index d2252ea5cc4..a399ac06d7f 100644 +--- src/3rdparty/chromium/components/optimization_guide/core/prediction_model_store.cc ++++ src/3rdparty/chromium/components/optimization_guide/core/prediction_model_store.cc +@@ -155,12 +155,6 @@ void RecordModelStorageMetrics(const base::FilePath& base_store_dir) { + + } // namespace + +-// static +-PredictionModelStore* PredictionModelStore::GetInstance() { +- static base::NoDestructor<PredictionModelStore> model_store; +- return model_store.get(); +-} +- + PredictionModelStore::PredictionModelStore() + : background_task_runner_(base::ThreadPool::CreateSequencedTaskRunner( + {base::MayBlock(), base::TaskPriority::BEST_EFFORT})) { +@@ -169,19 +163,14 @@ PredictionModelStore::PredictionModelStore() + + PredictionModelStore::~PredictionModelStore() = default; + +-void PredictionModelStore::Initialize(PrefService* local_state, +- const base::FilePath& base_store_dir) { ++void PredictionModelStore::Initialize(const base::FilePath& base_store_dir) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(local_state); + DCHECK(!base_store_dir.empty()); + + // Should not be initialized already. +- DCHECK(!local_state_); + DCHECK(base_store_dir_.empty()); + +- local_state_ = local_state; + base_store_dir_ = base_store_dir; +- + PurgeInactiveModels(); + + // Clean up any model files that were slated for deletion in previous +@@ -189,29 +178,19 @@ void PredictionModelStore::Initialize(PrefService* local_state, + CleanUpOldModelFiles(); + + background_task_runner_->PostTask( +- FROM_HERE, +- base::BindOnce(&RemoveInvalidModelDirs, base_store_dir_, +- ModelStoreMetadataEntry::GetValidModelDirs(local_state_))); ++ FROM_HERE, base::BindOnce(&RemoveInvalidModelDirs, base_store_dir_, ++ ModelStoreMetadataEntry::GetValidModelDirs( ++ GetLocalState()))); + background_task_runner_->PostTask( + FROM_HERE, base::BindOnce(&RecordModelStorageMetrics, base_store_dir_)); + } + +-// static +-std::unique_ptr<PredictionModelStore> +-PredictionModelStore::CreatePredictionModelStoreForTesting( +- PrefService* local_state, +- const base::FilePath& base_store_dir) { +- auto store = base::WrapUnique(new PredictionModelStore()); +- store->Initialize(local_state, base_store_dir); +- return store; +-} +- + bool PredictionModelStore::HasModel( + proto::OptimizationTarget optimization_target, + const proto::ModelCacheKey& model_cache_key) const { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + auto metadata = ModelStoreMetadataEntry::GetModelMetadataEntryIfExists( +- local_state_, optimization_target, model_cache_key); ++ GetLocalState(), optimization_target, model_cache_key); + if (!metadata) { + return false; + } +@@ -226,7 +205,7 @@ bool PredictionModelStore::HasModelWithVersion( + int64_t version) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + auto metadata = ModelStoreMetadataEntry::GetModelMetadataEntryIfExists( +- local_state_, optimization_target, model_cache_key); ++ GetLocalState(), optimization_target, model_cache_key); + if (!metadata) { + return false; + } +@@ -251,7 +230,7 @@ void PredictionModelStore::LoadModel( + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + auto metadata = ModelStoreMetadataEntry::GetModelMetadataEntryIfExists( +- local_state_, optimization_target, model_cache_key); ++ GetLocalState(), optimization_target, model_cache_key); + if (!metadata) { + std::move(callback).Run(nullptr); + return; +@@ -334,7 +313,7 @@ void PredictionModelStore::UpdateMetadataForExistingModel( + if (!HasModel(optimization_target, model_cache_key)) + return; + +- ModelStoreMetadataEntryUpdater metadata(local_state_, optimization_target, ++ ModelStoreMetadataEntryUpdater metadata(GetLocalState(), optimization_target, + model_cache_key); + DCHECK(!metadata.GetModelBaseDir()->IsAbsolute()); + metadata.SetVersion(model_info.version()); +@@ -357,7 +336,7 @@ void PredictionModelStore::UpdateModel( + DCHECK_EQ(optimization_target, model_info.optimization_target()); + DCHECK(base_store_dir_.IsParent(base_model_dir)); + +- ModelStoreMetadataEntryUpdater metadata(local_state_, optimization_target, ++ ModelStoreMetadataEntryUpdater metadata(GetLocalState(), optimization_target, + model_cache_key); + metadata.SetVersion(model_info.version()); + metadata.SetExpiryTime( +@@ -420,7 +399,7 @@ void PredictionModelStore::UpdateModelCacheKeyMapping( + const proto::ModelCacheKey& server_model_cache_key) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + ModelStoreMetadataEntryUpdater::UpdateModelCacheKeyMapping( +- local_state_, optimization_target, client_model_cache_key, ++ GetLocalState(), optimization_target, client_model_cache_key, + server_model_cache_key); + } + +@@ -429,13 +408,13 @@ void PredictionModelStore::RemoveModel( + const proto::ModelCacheKey& model_cache_key, + PredictionModelStoreModelRemovalReason model_remove_reason) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- if (!local_state_) { ++ if (!GetLocalState()) { + return; + } + + RecordPredictionModelStoreModelRemovalVersionHistogram(optimization_target, + model_remove_reason); +- ModelStoreMetadataEntryUpdater metadata(local_state_, optimization_target, ++ ModelStoreMetadataEntryUpdater metadata(GetLocalState(), optimization_target, + model_cache_key); + auto base_model_dir = metadata.GetModelBaseDir(); + if (base_model_dir) { +@@ -458,16 +437,17 @@ void PredictionModelStore::ScheduleModelDirRemoval( + base_model_dir.IsAbsolute() + ? ConvertToRelativePath(base_store_dir_, base_model_dir) + : base_model_dir; +- ScopedDictPrefUpdate pref_update(local_state_, ++ ScopedDictPrefUpdate pref_update(GetLocalState(), + prefs::localstate::kStoreFilePathsToDelete); + pref_update->Set(FilePathToString(relative_model_dir), true); + } + + void PredictionModelStore::PurgeInactiveModels() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(local_state_); ++ DCHECK(GetLocalState()); + for (const auto& expired_model_dir : +- ModelStoreMetadataEntryUpdater::PurgeAllInactiveMetadata(local_state_)) { ++ ModelStoreMetadataEntryUpdater::PurgeAllInactiveMetadata( ++ GetLocalState())) { + // Backward compatibility: Model dirs were absolute in the earlier versions, + // and it was only in experiment. The latest versions use relative paths. + DCHECK(!expired_model_dir.IsAbsolute() || +@@ -485,9 +465,9 @@ void PredictionModelStore::PurgeInactiveModels() { + + void PredictionModelStore::CleanUpOldModelFiles() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(local_state_); ++ DCHECK(GetLocalState()); + for (const auto entry : +- local_state_->GetDict(prefs::localstate::kStoreFilePathsToDelete)) { ++ GetLocalState()->GetDict(prefs::localstate::kStoreFilePathsToDelete)) { + // Backward compatibility: Model dirs were absolute in the earlier versions. + // The latest versions use relative paths. + auto path_to_delete = StringToFilePath(entry.first); +@@ -508,13 +488,13 @@ void PredictionModelStore::CleanUpOldModelFiles() { + void PredictionModelStore::OnFilePathDeleted(const std::string& path_to_delete, + bool success) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- DCHECK(local_state_); ++ DCHECK(GetLocalState()); + if (!success) { + // Try to delete again later. + return; + } + +- ScopedDictPrefUpdate pref_update(local_state_, ++ ScopedDictPrefUpdate pref_update(GetLocalState(), + prefs::localstate::kStoreFilePathsToDelete); + pref_update->Remove(path_to_delete); + } +@@ -527,7 +507,6 @@ base::FilePath PredictionModelStore::GetBaseStoreDirForTesting() const { + void PredictionModelStore::ResetForTesting() { + DETACH_FROM_SEQUENCE(sequence_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +- local_state_ = nullptr; + base_store_dir_ = base::FilePath(); + background_task_runner_ = base::ThreadPool::CreateSequencedTaskRunner( + {base::MayBlock(), base::TaskPriority::BEST_EFFORT}); +diff --git a/chromium/components/optimization_guide/core/prediction_model_store.h b/chromium/components/optimization_guide/core/prediction_model_store.h +index eb39780fd37..720e50dc128 100644 +--- src/3rdparty/chromium/components/optimization_guide/core/prediction_model_store.h ++++ src/3rdparty/chromium/components/optimization_guide/core/prediction_model_store.h +@@ -8,7 +8,6 @@ + #include "base/files/file_path.h" + #include "base/memory/scoped_refptr.h" + #include "base/memory/weak_ptr.h" +-#include "base/no_destructor.h" + #include "base/sequence_checker.h" + #include "base/task/sequenced_task_runner.h" + #include "base/values.h" +@@ -34,21 +33,15 @@ class PredictionModelStore { + using PredictionModelLoadedCallback = + base::OnceCallback<void(std::unique_ptr<proto::PredictionModel>)>; + +- // Returns the singleton model store. +- static PredictionModelStore* GetInstance(); +- +- static std::unique_ptr<PredictionModelStore> +- CreatePredictionModelStoreForTesting(PrefService* local_state, +- const base::FilePath& base_store_dir); ++ PredictionModelStore(); + +- // Initializes the model store with |local_state| and the |base_store_dir|. +- // Model store will be usable only after it is initialized. +- void Initialize(PrefService* local_state, +- const base::FilePath& base_store_dir); ++ // Initializes the model store with |base_store_dir|. Model store will be ++ // usable only after it is initialized. ++ void Initialize(const base::FilePath& base_store_dir); + + PredictionModelStore(const PredictionModelStore&) = delete; + PredictionModelStore& operator=(const PredictionModelStore&) = delete; +- ~PredictionModelStore(); ++ virtual ~PredictionModelStore(); + + // Initializes the model store with |local_state| and the |base_store_dir|, if + // initialization hasn't happened already. Model store will be usable only +@@ -111,6 +104,9 @@ class PredictionModelStore { + const proto::ModelCacheKey& model_cache_key, + PredictionModelStoreModelRemovalReason model_removal_reason); + ++ // Returns the local state that stores the prefs across all profiles. ++ virtual PrefService* GetLocalState() const = 0; ++ + base::FilePath GetBaseStoreDirForTesting() const; + + // Allows tests to reset the store for subsequent tests since the store is a +@@ -118,11 +114,8 @@ class PredictionModelStore { + void ResetForTesting(); + + private: +- friend base::NoDestructor<PredictionModelStore>; + friend class PredictionModelStoreBrowserTestBase; + +- PredictionModelStore(); +- + // Loads the model and verifies if the model files exist and returns the + // model. Otherwise nullptr is returned on any failures. + static std::unique_ptr<proto::PredictionModel> +@@ -159,11 +152,6 @@ class PredictionModelStore { + // Invoked when model files gets deleted. + void OnFilePathDeleted(const std::string& path_to_delete, bool success); + +- // Local state that stores the prefs across all profiles. Not owned and +- // outlives |this|. +- raw_ptr<PrefService, LeakedDanglingUntriaged> local_state_ +- GUARDED_BY_CONTEXT(sequence_checker_) = nullptr; +- + // The base dir where the prediction model dirs are saved. + base::FilePath base_store_dir_ GUARDED_BY_CONTEXT(sequence_checker_); + +From ce8633a185cd8c2e819898d3a6cba63d1e8089c4 Mon Sep 17 00:00:00 2001 +From: John Stiles <johnstiles@google.com> +Date: Wed, 31 Jan 2024 14:28:47 +0000 +Subject: [PATCH] [Backport] Security bug 41495984 + +Cherry-pick of patch originally reviewed on: +https://chromium-review.googlesource.com/c/chromium/src/+/5249171 +Improve handling of malformed BMP palettes. + +Add CHECKs to guarantee that clr_used is reasonably sized when +ProcessColorTable() is called. Out-of-bounds values are capped +by ProcessInfoHeader() already, but since this happens at a +distance, it's better to be sure. + +Additionally, we would previously add padding elements to a +palette if it was shorter than expected. We already had bounds +checks at the places where the palette was accessed, so we now +rely on those checks instead. + +Bug: 1523030 +Change-Id: I579c67d1029e1effba2036e9ec0c871418b140e2 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5249171 +Commit-Queue: John Stiles <johnstiles@google.com> +Reviewed-by: Peter Kasting <pkasting@chromium.org> +Auto-Submit: John Stiles <johnstiles@google.com> +Cr-Commit-Position: refs/heads/main@{#1254490} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/551093 +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> +--- + .../image-decoders/bmp/bmp_image_reader.cc | 25 ++++++++++--------- + 1 file changed, 13 insertions(+), 12 deletions(-) + +diff --git a/chromium/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc b/chromium/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc +index b7bbbf51a1b..9c319b4be01 100644 +--- src/3rdparty/chromium/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc ++++ src/3rdparty/chromium/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc +@@ -774,24 +774,31 @@ bool BMPImageReader::ProcessColorTable() { + + const wtf_size_t header_end = header_offset_ + info_header_.size; + wtf_size_t colors_in_palette = info_header_.clr_used; ++ CHECK_LE(colors_in_palette, 256u); // Enforced by ProcessInfoHeader(). + wtf_size_t table_size_in_bytes = colors_in_palette * bytes_per_color; + const wtf_size_t table_end = header_end + table_size_in_bytes; + if (table_end < header_end) { + return parent_->SetFailed(); + } + +- // Some BMPs don't contain a complete palette. Avoid reading off the end. ++ // Some BMPs don't contain a complete palette. Truncate it instead of reading ++ // off the end of the palette. + if (img_data_offset_ && (img_data_offset_ < table_end)) { +- colors_in_palette = (img_data_offset_ - header_end) / bytes_per_color; ++ wtf_size_t colors_in_truncated_palette = ++ (img_data_offset_ - header_end) / bytes_per_color; ++ CHECK_LE(colors_in_truncated_palette, colors_in_palette); ++ colors_in_palette = colors_in_truncated_palette; + table_size_in_bytes = colors_in_palette * bytes_per_color; + } + +- // Read color table. ++ // If we don't have enough data to read in the whole palette yet, stop here. + if ((decoded_offset_ > data_->size()) || + ((data_->size() - decoded_offset_) < table_size_in_bytes)) { + return false; + } +- color_table_.resize(info_header_.clr_used); ++ ++ // Read the color table. ++ color_table_.resize(colors_in_palette); + + for (wtf_size_t i = 0; i < colors_in_palette; ++i) { + color_table_[i].rgb_blue = ReadUint8(0); +@@ -799,12 +806,6 @@ bool BMPImageReader::ProcessColorTable() { + color_table_[i].rgb_red = ReadUint8(2); + decoded_offset_ += bytes_per_color; + } +- // Explicitly zero any colors past the end of a truncated palette. +- for (wtf_size_t i = colors_in_palette; i < info_header_.clr_used; ++i) { +- color_table_[i].rgb_blue = 0; +- color_table_[i].rgb_green = 0; +- color_table_[i].rgb_red = 0; +- } + + // We've now decoded all the non-image data we care about. Skip anything + // else before the actual raster data. +@@ -992,7 +993,7 @@ BMPImageReader::ProcessingResult BMPImageReader::ProcessRLEData() { + for (wtf_size_t which = 0; coord_.x() < end_x;) { + // Some images specify color values past the end of the + // color table; set these pixels to black. +- if (color_indexes[which] < info_header_.clr_used) { ++ if (color_indexes[which] < color_table_.size()) { + SetI(color_indexes[which]); + } else { + SetRGBA(0, 0, 0, 255); +@@ -1071,7 +1072,7 @@ BMPImageReader::ProcessingResult BMPImageReader::ProcessNonRLEData( + } + } else { + // See comments near the end of ProcessRLEData(). +- if (color_index < info_header_.clr_used) { ++ if (color_index < color_table_.size()) { + SetI(color_index); + } else { + SetRGBA(0, 0, 0, 255); +From 4349868d9af8ef7175125f53e441b12df5a22927 Mon Sep 17 00:00:00 2001 +From: Antonio Maiorano <amaiorano@google.com> +Date: Wed, 20 Mar 2024 17:15:40 -0400 +Subject: [PATCH] [Backport] CVE-2024-2885: Use after free in Dawn + +Manual cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/external/github.com/microsoft/DirectXShaderCompiler/+/5383595: +Fix HLMatrixLowerPass leaving call to dangling FunctionVal + +When lowering an hl.cast, when the operand was an undef matrix, the pass would insert a call to a mat2vec stub, but since the undef value is not +an alloca, it never gets handled, and the call to the temporary stub +remains. Since the stub FunctionVal gets deleted, when the instruction +is accessed in a future pass, it reads a dangling pointer. + +The fix is to handle undef similarly to how constant 0 is handled, and +to return an undef vector from lowerHLCast. + +Bug: chromium:328958020 +Change-Id: Id31e3aa326d9cb9f03ea97139f14dc5292cd6f7b +Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/microsoft/DirectXShaderCompiler/+/5383595 +Reviewed-by: Ben Clayton <bclayton@chromium.org> +Reviewed-by: David Neto <dneto@google.com> +Reviewed-by: Kenneth Russell <kbr@chromium.org> +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553291 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + .../dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/chromium/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp b/chromium/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp +index e35ff832ecf..c3a7254ef2b 100644 +--- src/3rdparty/chromium/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp ++++ src/3rdparty/chromium/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp +@@ -381,6 +381,11 @@ Value* HLMatrixLowerPass::getLoweredByValOperand(Value *Val, IRBuilder<> &Builde + if (isa<ConstantAggregateZero>(Val)) + return ConstantAggregateZero::get(LoweredTy); + ++ // Lower undef mat as undef vec ++ if (isa<UndefValue>(Val)) { ++ return UndefValue::get(LoweredTy); ++ } ++ + // Return a mat-to-vec translation stub + FunctionType *TranslationStubTy = FunctionType::get(LoweredTy, { Ty }, /* isVarArg */ false); + Function *TranslationStub = m_matToVecStubs->get(TranslationStubTy); +From 0c7f8cd69b6065fbc9a2af8927182ffe529e052e Mon Sep 17 00:00:00 2001 +From: Manos Koukoutos <manoskouk@chromium.org> +Date: Thu, 21 Mar 2024 11:38:08 +0100 +Subject: [PATCH] [Backport] CVE-2024-2887: Type Confusion in WebAssembly + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/v8/v8/+/5380190: +Merged: [wasm] Check for type-definition count limit + +(cherry picked from commit b852ad701db21d6db5b34e66f4ec1cdccd2ec4d4) + +Bug: chromium:330575498 +Change-Id: I395f0ed6d823b7d1e139da6551486e3627d65724 +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5378419 +Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> +Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> +Auto-Submit: Manos Koukoutos <manoskouk@chromium.org> +Cr-Original-Commit-Position: refs/heads/main@{#92941} +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5380190 +Reviewed-by: Francis McCabe <fgm@chromium.org> +Commit-Queue: Adam Klein <adamk@chromium.org> +Reviewed-by: Adam Klein <adamk@chromium.org> +Cr-Commit-Position: refs/branch-heads/12.2@{#50} +Cr-Branched-From: 6eb5a9616aa6f8c705217aeb7c7ab8c037a2f676-refs/heads/12.2.281@{#1} +Cr-Branched-From: 44cf56d850167c6988522f8981730462abc04bcc-refs/heads/main@{#91934} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553292 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + chromium/v8/src/wasm/module-decoder-impl.h | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/chromium/v8/src/wasm/module-decoder-impl.h b/chromium/v8/src/wasm/module-decoder-impl.h +index 97554288b55..75ca3a630a2 100644 +--- src/3rdparty/chromium/v8/src/wasm/module-decoder-impl.h ++++ src/3rdparty/chromium/v8/src/wasm/module-decoder-impl.h +@@ -687,6 +687,11 @@ class ModuleDecoderImpl : public Decoder { + } + } else { + if (tracer_) tracer_->TypeOffset(pc_offset()); ++ if (initial_size + 1 > kV8MaxWasmTypes) { ++ errorf(pc(), "Type definition count exceeds maximum %zu", ++ kV8MaxWasmTypes); ++ return; ++ } + // Similarly to above, we need to resize types for a group of size 1. + module_->types.resize(initial_size + 1); + module_->isorecursive_canonical_type_ids.resize(initial_size + 1); +From d414fd5b22455b7fcbddfdee22cf2b1f446ce3c4 Mon Sep 17 00:00:00 2001 +From: Marco Paniconi <marpan@google.com> +Date: Wed, 13 Mar 2024 10:58:17 -0700 +Subject: [PATCH] [Backport] Security bug 329674887 (1/2) + +Cherry-pick of patch orignally reviewed on +https://chromium-review.googlesource.com/c/webm/libvpx/+/5370376: +Fix to buffer alloc for vp9_bitstream_worker_data + +The code was using the bitstream_worker_data when it +wasn't allocated for big enough size. This is because +the existing condition was to only re-alloc the +bitstream_worker_data when current dest_size was larger +than the current frame_size. But under resolution change +where frame_size is increased, beyond the current dest_size, +we need to allow re-alloc to the new size. + +The existing condition to re-alloc when dest_size is +larger than frame_size (which is not required) is kept +for now. + +Also increase the dest_size to account for image format. + +Added tests, for both ROW_MT=0 and 1, that reproduce +the failures in the bugs below. + +Note: this issue only affects the REALTIME encoding path. + +Bug: b/329088759, b/329674887, b/329179808 + +Change-Id: Icd65dbc5317120304d803f648d4bd9405710db6f +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553293 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + .../source/libvpx/vp9/encoder/vp9_bitstream.c | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c +index ca56d14aa1e..88a031e5fc1 100644 +--- src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c ++++ src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c +@@ -962,6 +962,14 @@ void vp9_bitstream_encode_tiles_buffer_dealloc(VP9_COMP *const cpi) { + } + } + ++static int encode_tiles_buffer_alloc_size(VP9_COMP *const cpi) { ++ VP9_COMMON *const cm = &cpi->common; ++ const int image_bps = ++ (8 + 2 * (8 >> (cm->subsampling_x + cm->subsampling_y))) * ++ (1 + (cm->bit_depth > 8)); ++ return cpi->oxcf.width * cpi->oxcf.height * image_bps / 8; ++} ++ + static void encode_tiles_buffer_alloc(VP9_COMP *const cpi) { + VP9_COMMON *const cm = &cpi->common; + int i; +@@ -972,7 +980,7 @@ static void encode_tiles_buffer_alloc(VP9_COMP *const cpi) { + memset(cpi->vp9_bitstream_worker_data, 0, worker_data_size); + for (i = 1; i < cpi->num_workers; ++i) { + cpi->vp9_bitstream_worker_data[i].dest_size = +- cpi->oxcf.width * cpi->oxcf.height; ++ encode_tiles_buffer_alloc_size(cpi); + CHECK_MEM_ERROR(&cm->error, cpi->vp9_bitstream_worker_data[i].dest, + vpx_malloc(cpi->vp9_bitstream_worker_data[i].dest_size)); + } +@@ -987,8 +995,8 @@ static size_t encode_tiles_mt(VP9_COMP *cpi, uint8_t *data_ptr) { + int tile_col = 0; + + if (!cpi->vp9_bitstream_worker_data || +- cpi->vp9_bitstream_worker_data[1].dest_size > +- (cpi->oxcf.width * cpi->oxcf.height)) { ++ cpi->vp9_bitstream_worker_data[1].dest_size != ++ encode_tiles_buffer_alloc_size(cpi)) { + vp9_bitstream_encode_tiles_buffer_dealloc(cpi); + encode_tiles_buffer_alloc(cpi); + } +From 4f90911c049d0278e900b94947fd0055b26d646e Mon Sep 17 00:00:00 2001 +From: Marco Paniconi <marpan@google.com> +Date: Sat, 16 Mar 2024 10:39:28 -0700 +Subject: [PATCH] [Backport] Security bug 329674887 (2/2) + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/webm/libvpx/+/5375794:vp9: fix to integer overflow test + +failure for the 16k test: issue introduced +in: c29e637283 + +Bug: b/329088759, b/329674887, b/329179808 + +Change-Id: I88e8a36b7f13223997c3006c84aec9cfa48c0bcf +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553294 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + .../libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c b/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c +index 88a031e5fc1..d3c029da4ba 100644 +--- src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c ++++ src/3rdparty/chromium/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c +@@ -967,7 +967,9 @@ static int encode_tiles_buffer_alloc_size(VP9_COMP *const cpi) { + const int image_bps = + (8 + 2 * (8 >> (cm->subsampling_x + cm->subsampling_y))) * + (1 + (cm->bit_depth > 8)); +- return cpi->oxcf.width * cpi->oxcf.height * image_bps / 8; ++ const int64_t size = ++ (int64_t)cpi->oxcf.width * cpi->oxcf.height * image_bps / 8; ++ return (int)size; + } + + static void encode_tiles_buffer_alloc(VP9_COMP *const cpi) { +From 5af5e96fba0c40d3ddef2720de9117b6a4d6c267 Mon Sep 17 00:00:00 2001 +From: Peng Huang <penghuang@chromium.org> +Date: Wed, 20 Mar 2024 16:22:16 +0000 +Subject: [PATCH] [Backport] Security bug 327183408 + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5382202: +Fix PaintImage deserialization arbitrary-read issue + +(cherry picked from commit 47e8386c97ac7a84a96866fbd35422b99a01de5a) + +Bug: 327183408 +Change-Id: I09927fbae60b666aaa370e3aba01607cdb977a25 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5370455 +Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> +Commit-Queue: Peng Huang <penghuang@chromium.org> +Cr-Original-Commit-Position: refs/heads/main@{#1272930} +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5382202 +Auto-Submit: Peng Huang <penghuang@chromium.org> +Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> +Cr-Commit-Position: refs/branch-heads/6261@{#1106} +Cr-Branched-From: 9755d9d81e4a8cb5b4f76b23b761457479dbb06b-refs/heads/main@{#1250580} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553295 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + chromium/cc/paint/paint_op_reader.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/chromium/cc/paint/paint_op_reader.cc b/chromium/cc/paint/paint_op_reader.cc +index 935dbb05a50..6d920c33562 100644 +--- src/3rdparty/chromium/cc/paint/paint_op_reader.cc ++++ src/3rdparty/chromium/cc/paint/paint_op_reader.cc +@@ -1532,9 +1532,10 @@ inline void PaintOpReader::DidRead(size_t bytes_read) { + // All data are aligned with PaintOpWriter::kDefaultAlignment at least. + size_t aligned_bytes = + base::bits::AlignUp(bytes_read, PaintOpWriter::kDefaultAlignment); +- memory_ += aligned_bytes; + DCHECK_LE(aligned_bytes, remaining_bytes_); +- remaining_bytes_ -= aligned_bytes; ++ bytes_read = std::min(aligned_bytes, remaining_bytes_); ++ memory_ += bytes_read; ++ remaining_bytes_ -= bytes_read; + } + + } // namespace cc +From 0a17b9024c84404e4693718bbbd056517a2874a3 Mon Sep 17 00:00:00 2001 +From: Darius Mercadier <dmercadier@chromium.org> +Date: Fri, 22 Mar 2024 17:55:04 +0100 +Subject: [PATCH] [Backport] CVE-2024-3159: Out of bounds memory access in V8 + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/v8/v8/+/5401859: +Merged: [runtime] Recreate enum cache on map update if any previous map had one + +If any previous map in the transition tree had an enum cache, then we +recreate one when updating the map. + +Bug: 330760873 +(cherry picked from commit 807cf7d0b7d96212c98ed2119e07f9b2c6a23f61) + +Change-Id: Ia9ea4cf17fef60166a0c037318eb539866aac37a +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5401859 +Reviewed-by: Igor Sheludko <ishell@chromium.org> +Commit-Queue: Igor Sheludko <ishell@chromium.org> +Auto-Submit: Darius Mercadier <dmercadier@chromium.org> +Cr-Commit-Position: refs/branch-heads/12.2@{#52} +Cr-Branched-From: 6eb5a9616aa6f8c705217aeb7c7ab8c037a2f676-refs/heads/12.2.281@{#1} +Cr-Branched-From: 44cf56d850167c6988522f8981730462abc04bcc-refs/heads/main@{#91934} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553296 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + chromium/v8/src/objects/map-updater.cc | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/chromium/v8/src/objects/map-updater.cc b/chromium/v8/src/objects/map-updater.cc +index 613a4921637..1d649373274 100644 +--- src/3rdparty/chromium/v8/src/objects/map-updater.cc ++++ src/3rdparty/chromium/v8/src/objects/map-updater.cc +@@ -1038,14 +1038,21 @@ MapUpdater::State MapUpdater::ConstructNewMap() { + Handle<Map> new_map = + Map::AddMissingTransitions(isolate_, split_map, new_descriptors); + ++ bool had_any_enum_cache = ++ split_map->instance_descriptors(isolate_) ++ ->enum_cache() ++ ->keys() ++ ->length() > 0 || ++ old_descriptors_->enum_cache()->keys()->length() > 0; ++ + // Deprecated part of the transition tree is no longer reachable, so replace + // current instance descriptors in the "survived" part of the tree with + // the new descriptors to maintain descriptors sharing invariant. + split_map->ReplaceDescriptors(isolate_, *new_descriptors); + +- // If the old descriptors had an enum cache, make sure the new ones do too. +- if (old_descriptors_->enum_cache()->keys()->length() > 0 && +- new_map->NumberOfEnumerableProperties() > 0) { ++ // If the old descriptors had an enum cache (or if {split_map}'s descriptors ++ // had one), make sure the new ones do too. ++ if (had_any_enum_cache && new_map->NumberOfEnumerableProperties() > 0) { + FastKeyAccumulator::InitializeFastPropertyEnumCache( + isolate_, new_map, new_map->NumberOfEnumerableProperties()); + } +From e76cac29493b1cb4b055f8944ea1e4e1284a12e6 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com> +Date: Thu, 21 Mar 2024 16:50:44 +0000 +Subject: [PATCH] [Backport] Security bug 326349405 + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5383440: +Reland "sensors WinRT: Call OnReadingChangedCallback() via PostTask()" + +This reverts commit 745ca2de005c052f58097ef9cb7aa2deff095cf4. + +Reason for revert: Reapproved by pgrace@ in the bug. + +Original change's description: +> Revert "sensors WinRT: Call OnReadingChangedCallback() via PostTask()" +> +> This reverts commit 7e93b6a926ab65cc7ff1293bdcf0099c6e6e4e4e. +> +> Reason for revert: Requested in the bug by pgrace@ +> +> Original change's description: +> > sensors WinRT: Call OnReadingChangedCallback() via PostTask() +> > +> > While here, also add checks to make sure each method is running on the +> > right sequence and make |minimum_report_interval_| guarded by |lock_| +> > since it is accessed by the main task runner just like |client_|. +> > +> > There is a significant amount of changes in the unit tests for two +> > reasons: +> > 1. We now use multiple task runners and create Reader objects in a COM +> > STA task runner to better simulate what happens in production. +> > 2. Doing so has uncovered bugs in the exist tests that had to be fixed. +> > Namely: +> > - One of the biggest offenders was the use of EXPECT_CALL() with +> > WillRepeatedly() for expecting calls to OnReadingUpdated(). Using +> > only WillRepeatedly() meant the control over the cardinality of the +> > expectations was not very strict, and sometimes callbacks were +> > simply not being run. +> > Now that TriggerFakeSensorReading() is asynchronous and we need to +> > use a base::RunLoop to ensure, we are also using WillOnce() a lot +> > more than WillRepeatedly() so that we set one expectation, call +> > TriggerFakeSensorReading() and consume it immediately. +> > - The *Thresholding tests were affected by the problem above, and +> > fixing them showed that several callbacks were not being invoked. +> > Many checks where values were increased by the exact threshold +> > amount were broken because the manipulated values are floats and +> > doubles, and the math operations on them in the +> > OnReadingChangedCallback() implementations caused the comparisons +> > with exact values to fail. In this case, it was simpler to just +> > remove those specific tests, as the "values bigger than the +> > threshold" case are already covered by other checks. +> > - Also as a consequence of the above, *Thresholding tests with +> > multi-axis values were also broken when they went from testing that +> > values did not pass the threshold checks to the first test that +> > verifies that an axis passes the threshold check. This caused all +> > previous |last_sent_*| variables to be stored in the Reader, and +> > other calls to threshold_helper(true) would fail. The fix here was +> > to reorder the calls so that each axis is tested entirely before +> > the next. +> > +> > (cherry picked from commit 2aafa000795519b5153125673f87c734f7b8ae9f) +> > +> > Bug: 326349405 +> > Change-Id: Ief67720e8c449af1ce4f450002103a20ca1830ee +> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5340216 +> > Auto-Submit: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com> +> > Commit-Queue: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com> +> > Reviewed-by: Reilly Grant <reillyg@chromium.org> +> > Cr-Original-Commit-Position: refs/heads/main@{#1268797} +> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5372846 +> > Reviewed-by: Colin Blundell <blundell@chromium.org> +> > Cr-Commit-Position: refs/branch-heads/6261@{#1079} +> > Cr-Branched-From: 9755d9d81e4a8cb5b4f76b23b761457479dbb06b-refs/heads/main@{#1250580} +> +> Bug: 326349405 +> Change-Id: I49d61cf7bdf2a00004aa565a5439ad813b1c379e +> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5378404 +> Commit-Queue: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com> +> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> +> Cr-Commit-Position: refs/branch-heads/6261@{#1090} +> Cr-Branched-From: 9755d9d81e4a8cb5b4f76b23b761457479dbb06b-refs/heads/main@{#1250580} + +Bug: 326349405 +Change-Id: I3bcba8840a3a10cd4660ec287fa24623bcf87657 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5383440 +Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> +Commit-Queue: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com> +Cr-Commit-Position: refs/branch-heads/6261@{#1111} +Cr-Branched-From: 9755d9d81e4a8cb5b4f76b23b761457479dbb06b-refs/heads/main@{#1250580} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/553297 +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> +--- + .../platform_sensor_reader_winrt.cc | 79 +- + .../platform_sensor_reader_winrt.h | 32 +- + .../platform_sensor_reader_winrt_unittests.cc | 787 ++++++++++-------- + .../generic_sensor/platform_sensor_win.cc | 3 + + 4 files changed, 549 insertions(+), 352 deletions(-) + +diff --git a/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.cc b/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.cc +index 6c778b7edf0c..673225e398a2 100644 +--- src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.cc ++++ src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.cc +@@ -8,6 +8,7 @@ + + #include "base/numerics/math_constants.h" + #include "base/time/time.h" ++#include "base/win/com_init_util.h" + #include "base/win/core_winrt_util.h" + #include "services/device/generic_sensor/generic_sensor_consts.h" + #include "services/device/public/mojom/sensor.mojom.h" +@@ -99,7 +100,11 @@ PlatformSensorReaderWinrtBase< + ISensorWinrtStatics, + ISensorWinrtClass, + ISensorReadingChangedHandler, +- ISensorReadingChangedEventArgs>::PlatformSensorReaderWinrtBase() { ++ ISensorReadingChangedEventArgs>::PlatformSensorReaderWinrtBase() ++ : com_sta_task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ DETACH_FROM_SEQUENCE(main_sequence_checker_); ++ + get_sensor_factory_callback_ = + base::BindRepeating([](ISensorWinrtStatics** sensor_factory) -> HRESULT { + return base::win::GetActivationFactory<ISensorWinrtStatics, +@@ -119,6 +124,8 @@ void PlatformSensorReaderWinrtBase< + ISensorWinrtClass, + ISensorReadingChangedHandler, + ISensorReadingChangedEventArgs>::SetClient(Client* client) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(main_sequence_checker_); ++ + base::AutoLock autolock(lock_); + client_ = client; + } +@@ -136,6 +143,8 @@ HRESULT PlatformSensorReaderWinrtBase<runtime_class_id, + ISensorReadingChangedEventArgs>:: + ConvertSensorReadingTimeStamp(ComPtr<ISensorReading> sensor_reading, + base::TimeDelta* timestamp_delta) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ + DateTime timestamp; + HRESULT hr = sensor_reading->get_Timestamp(×tamp); + if (FAILED(hr)) +@@ -157,6 +166,8 @@ bool PlatformSensorReaderWinrtBase< + ISensorWinrtClass, + ISensorReadingChangedHandler, + ISensorReadingChangedEventArgs>::Initialize() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ + ComPtr<ISensorWinrtStatics> sensor_statics; + + HRESULT hr = get_sensor_factory_callback_.Run(&sensor_statics); +@@ -180,10 +191,14 @@ bool PlatformSensorReaderWinrtBase< + return false; + } + +- minimum_report_interval_ = GetMinimumReportIntervalFromSensor(); ++ { ++ base::AutoLock autolock(lock_); ++ minimum_report_interval_ = GetMinimumReportIntervalFromSensor(); + +- if (minimum_report_interval_.is_zero()) +- DLOG(WARNING) << "Failed to get sensor minimum report interval"; ++ if (minimum_report_interval_.is_zero()) { ++ DLOG(WARNING) << "Failed to get sensor minimum report interval"; ++ } ++ } + + return true; + } +@@ -199,6 +214,8 @@ base::TimeDelta PlatformSensorReaderWinrtBase< + ISensorWinrtClass, + ISensorReadingChangedHandler, + ISensorReadingChangedEventArgs>::GetMinimumReportIntervalFromSensor() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ + UINT32 minimum_report_interval_ms = 0; + HRESULT hr = sensor_->get_MinimumReportInterval(&minimum_report_interval_ms); + +@@ -225,6 +242,9 @@ base::TimeDelta PlatformSensorReaderWinrtBase< + ISensorWinrtClass, + ISensorReadingChangedHandler, + ISensorReadingChangedEventArgs>::GetMinimalReportingInterval() const { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(main_sequence_checker_); ++ ++ base::AutoLock autolock(lock_); + return minimum_report_interval_; + } + +@@ -239,6 +259,8 @@ bool PlatformSensorReaderWinrtBase<runtime_class_id, + ISensorReadingChangedHandler, + ISensorReadingChangedEventArgs>:: + StartSensor(const PlatformSensorConfiguration& configuration) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(main_sequence_checker_); ++ + base::AutoLock autolock(lock_); + + if (!reading_callback_token_) { +@@ -256,7 +278,39 @@ bool PlatformSensorReaderWinrtBase<runtime_class_id, + } + + auto reading_changed_handler = Callback<ISensorReadingChangedHandler>( +- this, &PlatformSensorReaderWinrtBase::OnReadingChangedCallback); ++ [weak_ptr(weak_ptr_factory_.GetWeakPtr()), ++ com_sta_task_runner(com_sta_task_runner_)]( ++ ISensorWinrtClass* sender, ISensorReadingChangedEventArgs* args) { ++ // We cannot invoke OnReadingChangedCallback() directly because this ++ // callback is run on a COM MTA thread spawned by Windows (on tests, ++ // we mimic the behavior by using base::ThreadPool, as the task ++ // scheduler threads live in the MTA). ++ // ++ // This callback is invoked on an MTA thread because the ++ // ISensorReadingChangedHandler declarations explicitly inherit from ++ // Microsoft::WRL::FtmBase, which makes them agile, free-threaded ++ // objects. ++ // ++ // We could CHECK() this behavior here, but ::CoGetApartmentType() ++ // depends on ole32.dll and base::win::GetComApartmentTypeForThread() ++ // returns NONE in the non-test code path even though ++ // ::GoGetApartmentType() returns MTA, so the best we can do is just ++ // double-check that this is not running on an STA. ++ DCHECK_NE(base::win::GetComApartmentTypeForThread(), ++ base::win::ComApartmentType::STA); ++ com_sta_task_runner->PostTask( ++ FROM_HERE, ++ base::BindOnce( ++ // TODO(crbug.com/326349405): base::IgnoreResult is being used ++ // temporarily to reduce the amount of changes required for ++ // this bug. OnReadingChangedCallback() must be changed to ++ // have a void return type. ++ base::IgnoreResult( ++ &PlatformSensorReaderWinrtBase::OnReadingChangedCallback), ++ weak_ptr, ComPtr<ISensorWinrtClass>(sender), ++ ComPtr<ISensorReadingChangedEventArgs>(args))); ++ return S_OK; ++ }); + + EventRegistrationToken event_token; + hr = sensor_->add_ReadingChanged(reading_changed_handler.Get(), +@@ -285,6 +339,9 @@ void PlatformSensorReaderWinrtBase< + ISensorWinrtClass, + ISensorReadingChangedHandler, + ISensorReadingChangedEventArgs>::StopSensor() { ++ // This function is called in the main task runner by PlatformSensorWin as ++ // well as in the com_sta_task_runner_ by the destructor. ++ + base::AutoLock autolock(lock_); + + if (reading_callback_token_) { +@@ -316,6 +373,8 @@ PlatformSensorReaderWinrtLightSensor::PlatformSensorReaderWinrtLightSensor() = + HRESULT PlatformSensorReaderWinrtLightSensor::OnReadingChangedCallback( + ILightSensor* light_sensor, + ILightSensorReadingChangedEventArgs* reading_changed_args) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ + ComPtr<ILightSensorReading> light_sensor_reading; + HRESULT hr = reading_changed_args->get_Reading(&light_sensor_reading); + if (FAILED(hr)) { +@@ -379,6 +438,8 @@ PlatformSensorReaderWinrtAccelerometer:: + HRESULT PlatformSensorReaderWinrtAccelerometer::OnReadingChangedCallback( + IAccelerometer* accelerometer, + IAccelerometerReadingChangedEventArgs* reading_changed_args) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ + ComPtr<IAccelerometerReading> accelerometer_reading; + HRESULT hr = reading_changed_args->get_Reading(&accelerometer_reading); + if (FAILED(hr)) { +@@ -464,6 +525,8 @@ PlatformSensorReaderWinrtGyrometer::PlatformSensorReaderWinrtGyrometer() = + HRESULT PlatformSensorReaderWinrtGyrometer::OnReadingChangedCallback( + IGyrometer* gyrometer, + IGyrometerReadingChangedEventArgs* reading_changed_args) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ + ComPtr<IGyrometerReading> gyrometer_reading; + HRESULT hr = reading_changed_args->get_Reading(&gyrometer_reading); + if (FAILED(hr)) { +@@ -548,6 +611,8 @@ PlatformSensorReaderWinrtMagnetometer::PlatformSensorReaderWinrtMagnetometer() = + HRESULT PlatformSensorReaderWinrtMagnetometer::OnReadingChangedCallback( + IMagnetometer* magnetometer, + IMagnetometerReadingChangedEventArgs* reading_changed_args) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ + ComPtr<IMagnetometerReading> magnetometer_reading; + HRESULT hr = reading_changed_args->get_Reading(&magnetometer_reading); + if (FAILED(hr)) { +@@ -631,6 +696,8 @@ HRESULT + PlatformSensorReaderWinrtAbsOrientationEulerAngles::OnReadingChangedCallback( + IInclinometer* inclinometer, + IInclinometerReadingChangedEventArgs* reading_changed_args) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ + ComPtr<IInclinometerReading> inclinometer_reading; + HRESULT hr = reading_changed_args->get_Reading(&inclinometer_reading); + if (FAILED(hr)) { +@@ -717,6 +784,8 @@ HRESULT + PlatformSensorReaderWinrtAbsOrientationQuaternion::OnReadingChangedCallback( + IOrientationSensor* orientation_sensor, + IOrientationSensorReadingChangedEventArgs* reading_changed_args) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ + ComPtr<IOrientationSensorReading> orientation_sensor_reading; + HRESULT hr = reading_changed_args->get_Reading(&orientation_sensor_reading); + if (FAILED(hr)) { +diff --git a/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.h b/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.h +index 66c40adc59e8..e4521a7816fa 100644 +--- src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.h ++++ src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt.h +@@ -14,7 +14,10 @@ + + #include "base/functional/callback.h" + #include "base/memory/raw_ptr.h" ++#include "base/memory/weak_ptr.h" ++#include "base/sequence_checker.h" + #include "base/synchronization/lock.h" ++#include "base/task/single_thread_task_runner.h" + #include "base/thread_annotations.h" + #include "base/time/time.h" + #include "services/device/generic_sensor/platform_sensor_reader_win_base.h" +@@ -77,7 +80,10 @@ class PlatformSensorReaderWinrtBase : public PlatformSensorReaderWinBase { + + protected: + PlatformSensorReaderWinrtBase(); +- virtual ~PlatformSensorReaderWinrtBase() { StopSensor(); } ++ virtual ~PlatformSensorReaderWinrtBase() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(com_sta_sequence_checker_); ++ StopSensor(); ++ } + + // Derived classes should implement this function to handle sensor specific + // parsing of the sensor reading. +@@ -93,11 +99,15 @@ class PlatformSensorReaderWinrtBase : public PlatformSensorReaderWinBase { + Microsoft::WRL::ComPtr<ISensorReading> sensor_reading, + base::TimeDelta* timestamp_delta); + +- // Following class member is protected by lock since SetClient, +- // StartSensor, and StopSensor can all be called from different +- // threads by PlatformSensorWin. +- base::Lock lock_; +- // Null if there is no client to notify, non-null otherwise. ++ SEQUENCE_CHECKER(com_sta_sequence_checker_); ++ SEQUENCE_CHECKER(main_sequence_checker_); ++ ++ mutable base::Lock lock_; ++ ++ // Null if there is no client to notify, non-null otherwise. Protected by ++ // |lock_| because SetClient() and StartSensor() are called from the main ++ // task runner rather than the thread where this object is created, and ++ // StopSensor() may be called from the main task runner too. + raw_ptr<Client, DanglingUntriaged> client_ GUARDED_BY(lock_); + + // Always report the first sample received after starting the sensor. +@@ -106,13 +116,21 @@ class PlatformSensorReaderWinrtBase : public PlatformSensorReaderWinBase { + private: + base::TimeDelta GetMinimumReportIntervalFromSensor(); + ++ // Task runner where this object was created. ++ scoped_refptr<base::SingleThreadTaskRunner> com_sta_task_runner_; ++ + GetSensorFactoryFunctor get_sensor_factory_callback_; + + // absl::nullopt if the sensor has not been started, non-empty otherwise. + absl::optional<EventRegistrationToken> reading_callback_token_; + +- base::TimeDelta minimum_report_interval_; ++ // Protected by |lock_| because GetMinimalReportingInterval() is called from ++ // the main task runner. ++ base::TimeDelta minimum_report_interval_ GUARDED_BY(lock_); ++ + Microsoft::WRL::ComPtr<ISensorWinrtClass> sensor_; ++ ++ base::WeakPtrFactory<PlatformSensorReaderWinrtBase> weak_ptr_factory_{this}; + }; + + class PlatformSensorReaderWinrtLightSensor final +diff --git a/chromium/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc b/chromium/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc +index 2283de90c75d..f6add828b496 100644 +--- src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc ++++ src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_reader_winrt_unittests.cc +@@ -6,8 +6,13 @@ + + #include <objbase.h> + ++#include "base/notreached.h" + #include "base/numerics/math_constants.h" ++#include "base/run_loop.h" ++#include "base/task/task_traits.h" ++#include "base/task/thread_pool.h" + #include "base/test/bind.h" ++#include "base/test/gmock_callback_support.h" + #include "base/test/task_environment.h" + #include "base/win/core_winrt_util.h" + #include "base/win/scoped_com_initializer.h" +@@ -428,15 +433,26 @@ class FakeSensorWinrt + return remove_reading_changed_return_code_; + } + +- // Makes any clients registered via add_ReadingChanged() to trigger with +- // the given sensor reading. ++ // Invokes the handler added via add_ReadingChanged() with the reading ++ // described by |reading|. ++ // ++ // The invocation is asynchronous to better simulate real behavior, where ++ // Windows delivers the reading notifications in a separate MTA thread. + void TriggerFakeSensorReading( + Microsoft::WRL::ComPtr<ISensorReading> reading) { +- EXPECT_TRUE(handler_); + Microsoft::WRL::ComPtr<ISensorReadingChangedEventArgs> reading_event_args = + Microsoft::WRL::Make<FakeSensorReadingChangedEventArgsWinrt< + ISensorReading, ISensorReadingChangedEventArgs>>(reading); +- EXPECT_HRESULT_SUCCEEDED(handler_->Invoke(this, reading_event_args.Get())); ++ base::ThreadPool::PostTask( ++ FROM_HERE, {base::MayBlock()}, ++ base::BindLambdaForTesting( ++ // Copy |handler_| and |reading_event_args| to ensure they do not ++ // lose their values when TriggerFakeSensorReading() exits. ++ [this, handler = handler_, reading_event_args]() { ++ ASSERT_TRUE(handler); ++ EXPECT_HRESULT_SUCCEEDED( ++ handler->Invoke(this, reading_event_args.Get())); ++ })); + } + + // Returns true if any clients are registered for readings via +@@ -547,7 +563,47 @@ class FakeSensorFactoryWinrt + }; + + class PlatformSensorReaderTestWinrt : public testing::Test { +- private: ++ public: ++ void SetUp() override { ++ // Ensure each test starts with a fresh task runner. ++ com_sta_task_runner_ = ++ base::ThreadPool::CreateCOMSTATaskRunner({base::MayBlock()}); ++ } ++ ++ // Synchronously creates a new PlatformSensorReaderWinrtBase-derived class on ++ // |com_sta_task_runner_| and returns it. ++ // ++ // This better simulates real behavior, as PlatformSensorProviderWinrt ++ // creates readers on a COM STA task runner. ++ template <typename SensorReader, ++ typename ISensorStatics, ++ typename... OtherFactoryTypes> ++ auto CreateAndInitializeSensor( ++ const Microsoft::WRL::ComPtr< ++ FakeSensorFactoryWinrt<ISensorStatics, OtherFactoryTypes...>>& ++ fake_sensor_factory) { ++ std::unique_ptr<SensorReader, base::OnTaskRunnerDeleter> reader( ++ nullptr, base::OnTaskRunnerDeleter(com_sta_task_runner_)); ++ ++ base::RunLoop run_loop; ++ com_sta_task_runner_->PostTaskAndReply( ++ FROM_HERE, base::BindLambdaForTesting([&]() { ++ reader.reset(new SensorReader); ++ reader->InitForTesting(base::BindLambdaForTesting( ++ [&](ISensorStatics** sensor_factory) -> HRESULT { ++ return fake_sensor_factory.CopyTo(sensor_factory); ++ })); ++ ASSERT_TRUE(reader->Initialize()); ++ }), ++ run_loop.QuitClosure()); ++ run_loop.Run(); ++ ++ return reader; ++ } ++ ++ protected: ++ scoped_refptr<base::SingleThreadTaskRunner> com_sta_task_runner_; ++ + base::test::TaskEnvironment task_environment_; + base::win::ScopedCOMInitializer scoped_com_initializer_; + }; +@@ -602,11 +658,9 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorMinimumReportInterval) { + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + EXPECT_EQ(sensor->GetMinimalReportingInterval().InMilliseconds(), + kExpectedMinimumReportInterval); +@@ -623,20 +677,42 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedSensorMinimumReportInterval) { + ABI::Windows::Devices::Sensors::ILightSensorReadingChangedEventArgs, + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; +- +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); + fake_sensor->SetGetMinimumReportIntervalReturnCode(E_FAIL); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + EXPECT_EQ(sensor->GetMinimalReportingInterval().InMilliseconds(), 0); + } + +-// Tests that PlatformSensorReaderWinrtBase converts the timestamp correctly +-TEST_F(PlatformSensorReaderTestWinrt, SensorTimestampConversion) { +- static constexpr double expectedTimestampDeltaSecs = 19.0; ++TEST_F(PlatformSensorReaderTestWinrt, ReadingChangedCallbackAndPostTask) { ++ // Instead of using PlatformSensorReaderWinrtLightSensor, declare a custom ++ // implementation that does less and whose sole purpose is to assert that its ++ // OnReadingChangedCallback() implementation is never called. ++ struct CustomLightSensor ++ : public PlatformSensorReaderWinrtBase< ++ RuntimeClass_Windows_Devices_Sensors_LightSensor, ++ ABI::Windows::Devices::Sensors::ILightSensorStatics, ++ ABI::Windows::Devices::Sensors::ILightSensor, ++ Microsoft::WRL::Implements< ++ Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>, ++ ABI::Windows::Foundation::ITypedEventHandler< ++ ABI::Windows::Devices::Sensors::LightSensor*, ++ ABI::Windows::Devices::Sensors:: ++ LightSensorReadingChangedEventArgs*>, ++ Microsoft::WRL::FtmBase>, ++ ABI::Windows::Devices::Sensors:: ++ ILightSensorReadingChangedEventArgs> { ++ ~CustomLightSensor() override = default; ++ ++ HRESULT OnReadingChangedCallback( ++ ABI::Windows::Devices::Sensors::ILightSensor*, ++ ABI::Windows::Devices::Sensors::ILightSensorReadingChangedEventArgs*) ++ override { ++ NOTREACHED_NORETURN() << "This function should not have been reached"; ++ } ++ }; + + auto fake_sensor_factory = Microsoft::WRL::Make<FakeSensorFactoryWinrt< + ABI::Windows::Devices::Sensors::ILightSensorStatics, +@@ -647,21 +723,57 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorTimestampConversion) { + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); +- sensor->InitForTesting(base::BindLambdaForTesting( ++ // Instead of using CreateAndInitializeSensor(), for simplicity and for ++ // better control over |light_sensor|'s lifetime we invert things and create ++ // the object in the main task runner and invoke StartSensor() from another ++ // one. The effect on the Reader is the same -- the calls are still made from ++ // different task runners. ++ auto light_sensor = std::make_unique<CustomLightSensor>(); ++ light_sensor->InitForTesting(base::BindLambdaForTesting( + [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) + -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ ASSERT_TRUE(light_sensor->Initialize()); ++ ++ base::RunLoop run_loop; ++ base::ThreadPool::PostTaskAndReply( ++ FROM_HERE, base::BindLambdaForTesting([&]() { ++ ASSERT_TRUE(light_sensor->StartSensor( ++ PlatformSensorConfiguration(kExpectedReportFrequencySet))); ++ }), ++ run_loop.QuitClosure()); ++ run_loop.Run(); ++ ++ // The idea here is to rely on the fact that TriggerFakeSensorReading() is ++ // asynchronous: we call it while it has a valid handler, it schedules a ++ // task, we destroy the handler object synchronoustly and then it Invoke()s ++ // the callback, which should never reach ++ // CustomLightSensor::OnReadingChangedCallback(). ++ Microsoft::WRL::ComPtr<ABI::Windows::Devices::Sensors::ILightSensorReading> ++ reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>( ++ ABI::Windows::Foundation::DateTime{}, 0.0f); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ light_sensor.reset(); ++ task_environment_.RunUntilIdle(); ++} + +- auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); ++// Tests that PlatformSensorReaderWinrtBase converts the timestamp correctly ++TEST_F(PlatformSensorReaderTestWinrt, SensorTimestampConversion) { ++ static constexpr double expectedTimestampDeltaSecs = 19.0; + +- double lastReportedTimestamp = 0.0; +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillRepeatedly(testing::Invoke([&](const SensorReading& reading) { +- lastReportedTimestamp = reading.als.timestamp; +- EXPECT_EQ(reading.als.value, 0.0f); +- })); ++ auto fake_sensor_factory = Microsoft::WRL::Make<FakeSensorFactoryWinrt< ++ ABI::Windows::Devices::Sensors::ILightSensorStatics, ++ ABI::Windows::Devices::Sensors::ILightSensor, ++ ABI::Windows::Devices::Sensors::LightSensor, ++ ABI::Windows::Devices::Sensors::ILightSensorReading, ++ ABI::Windows::Devices::Sensors::ILightSensorReadingChangedEventArgs, ++ ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); ++ auto fake_sensor = fake_sensor_factory->fake_sensor_; ++ ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + ++ auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); + sensor->SetClient(mock_client.get()); + + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); +@@ -672,18 +784,35 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorTimestampConversion) { + Microsoft::WRL::ComPtr<ABI::Windows::Devices::Sensors::ILightSensorReading> + reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, 0.0f); +- fake_sensor->TriggerFakeSensorReading(reading); +- EXPECT_EQ(lastReportedTimestamp, 0); ++ { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(testing::Invoke([&](const SensorReading& reading) { ++ EXPECT_EQ(reading.als.timestamp, 0.0); ++ EXPECT_EQ(reading.als.value, 0.0f); ++ run_loop.Quit(); ++ })); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } + ++ // Verify the reported time stamp has ticked forward ++ // expectedTimestampDeltaSecs + auto second_timestamp = + base::Seconds(expectedTimestampDeltaSecs).ToWinrtDateTime(); + reading = + Microsoft::WRL::Make<FakeLightSensorReadingWinrt>(second_timestamp, 0.0f); +- fake_sensor->TriggerFakeSensorReading(reading); +- +- // Verify the reported time stamp has ticked forward +- // expectedTimestampDeltaSecs +- EXPECT_EQ(lastReportedTimestamp, expectedTimestampDeltaSecs); ++ { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(testing::Invoke([&](const SensorReading& reading) { ++ EXPECT_EQ(reading.als.timestamp, expectedTimestampDeltaSecs); ++ EXPECT_EQ(reading.als.value, 0.0f); ++ run_loop.Quit(); ++ })); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } + } + + // Tests that PlatformSensorReaderWinrtBase starts and stops the +@@ -698,11 +827,9 @@ TEST_F(PlatformSensorReaderTestWinrt, StartStopSensorCallbacks) { + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); +@@ -732,17 +859,19 @@ TEST_F(PlatformSensorReaderTestWinrt, StartWithoutStopSensorCallbacks) { + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + EXPECT_TRUE(fake_sensor->IsSensorStarted()); + ++ // *sensor is deleted in |com_sta_task_runner_|, so we need to wait for it to ++ // happen asynchronously. + sensor.reset(); ++ task_environment_.RunUntilIdle(); ++ + EXPECT_FALSE(fake_sensor->IsSensorStarted()); + } + +@@ -758,11 +887,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedSensorStart) { + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + fake_sensor->SetPutReportIntervalReturnCode(E_FAIL); + +@@ -787,11 +914,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedSensorStop) { + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); +@@ -813,11 +938,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedLightSensorSampleParse) { + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); + +@@ -832,12 +955,17 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedLightSensorSampleParse) { + auto reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, 0.0f); + ++ // We cannot use a base::RunLoop in the checks below because we are expecting ++ // that MockClient::OnReadingUpdate() does _not_ get called. ++ + reading->SetGetTimestampReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); + + reading->SetGetTimestampReturnCode(S_OK); + reading->SetGetIlluminanceInLuxReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); ++ ++ task_environment_.RunUntilIdle(); + } + + // Tests that PlatformSensorReaderWinrtLightSensor notifies the client +@@ -854,19 +982,11 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorClientNotification) { + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillOnce(testing::Invoke([&](const SensorReading& reading) { +- EXPECT_EQ(expected_lux, reading.als.value); +- })); +- + sensor->SetClient(mock_client.get()); + + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); +@@ -874,8 +994,16 @@ TEST_F(PlatformSensorReaderTestWinrt, SensorClientNotification) { + + auto reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, expected_lux); +- fake_sensor->TriggerFakeSensorReading(reading); +- ++ { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(testing::Invoke([&](const SensorReading& reading) { ++ EXPECT_EQ(expected_lux, reading.als.value); ++ run_loop.Quit(); ++ })); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } + sensor->StopSensor(); + } + +@@ -896,30 +1024,31 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckAccelerometerReadingConversion) { + Microsoft::WRL::Make<FakeAccelerometerSensorWinrt>()); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtAccelerometer>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IAccelerometerStatics** +- sensor_factory) -> HRESULT { +- return fake_sensor_factory.CopyTo(sensor_factory); +- })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = ++ CreateAndInitializeSensor<PlatformSensorReaderWinrtAccelerometer>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillOnce(testing::Invoke([&](const SensorReading& reading) { +- EXPECT_EQ(-expected_x * base::kMeanGravityDouble, reading.accel.x); +- EXPECT_EQ(-expected_y * base::kMeanGravityDouble, reading.accel.y); +- EXPECT_EQ(-expected_z * base::kMeanGravityDouble, reading.accel.z); +- })); +- + sensor->SetClient(mock_client.get()); + + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); +- + EXPECT_TRUE(sensor->StartSensor(sensor_config)); ++ + auto reading = Microsoft::WRL::Make<FakeAccelerometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, expected_x, expected_y, expected_z); +- fake_sensor->TriggerFakeSensorReading(reading); ++ { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(testing::Invoke([&](const SensorReading& reading) { ++ EXPECT_EQ(-expected_x * base::kMeanGravityDouble, reading.accel.x); ++ EXPECT_EQ(-expected_y * base::kMeanGravityDouble, reading.accel.y); ++ EXPECT_EQ(-expected_z * base::kMeanGravityDouble, reading.accel.z); ++ run_loop.Quit(); ++ })); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } + + sensor->StopSensor(); + } +@@ -937,13 +1066,10 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedAccelerometerSampleParse) { + Microsoft::WRL::Make<FakeAccelerometerSensorWinrt>()); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtAccelerometer>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IAccelerometerStatics** +- sensor_factory) -> HRESULT { +- return fake_sensor_factory.CopyTo(sensor_factory); +- })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = ++ CreateAndInitializeSensor<PlatformSensorReaderWinrtAccelerometer>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); + sensor->SetClient(mock_client.get()); +@@ -954,6 +1080,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedAccelerometerSampleParse) { + auto reading = Microsoft::WRL::Make<FakeAccelerometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, 0, 0, 0); + ++ // We cannot use a base::RunLoop in the checks below because we are expecting ++ // that MockClient::OnReadingUpdate() does _not_ get called. ++ + reading->SetGetTimestampReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); + +@@ -968,6 +1097,8 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedAccelerometerSampleParse) { + reading->SetGetYReturnCode(S_OK); + reading->SetGetZReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); ++ ++ task_environment_.RunUntilIdle(); + } + + // Tests if PlatformSensorReaderWinrtGyrometer correctly converts sensor +@@ -986,27 +1117,30 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckGyrometerReadingConversion) { + ABI::Windows::Devices::Sensors::GyrometerReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtGyrometer>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IGyrometerStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtGyrometer>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillOnce(testing::Invoke([&](const SensorReading& reading) { +- EXPECT_EQ(gfx::DegToRad(expected_x), reading.gyro.x); +- EXPECT_EQ(gfx::DegToRad(expected_y), reading.gyro.y); +- EXPECT_EQ(gfx::DegToRad(expected_z), reading.gyro.z); +- })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + + auto reading = Microsoft::WRL::Make<FakeGyrometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, expected_x, expected_y, expected_z); +- fake_sensor->TriggerFakeSensorReading(reading); ++ { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(testing::Invoke([&](const SensorReading& reading) { ++ EXPECT_EQ(gfx::DegToRad(expected_x), reading.gyro.x); ++ EXPECT_EQ(gfx::DegToRad(expected_y), reading.gyro.y); ++ EXPECT_EQ(gfx::DegToRad(expected_z), reading.gyro.z); ++ run_loop.Quit(); ++ })); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } + + sensor->StopSensor(); + } +@@ -1023,11 +1157,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedGyrometerSampleParse) { + ABI::Windows::Devices::Sensors::GyrometerReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtGyrometer>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IGyrometerStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtGyrometer>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); + sensor->SetClient(mock_client.get()); +@@ -1038,6 +1170,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedGyrometerSampleParse) { + auto reading = Microsoft::WRL::Make<FakeGyrometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, 0, 0, 0); + ++ // We cannot use a base::RunLoop in the checks below because we are expecting ++ // that MockClient::OnReadingUpdate() does _not_ get called. ++ + reading->SetGetTimestampReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); + +@@ -1052,6 +1187,8 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedGyrometerSampleParse) { + reading->SetGetYReturnCode(S_OK); + reading->SetGetZReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); ++ ++ task_environment_.RunUntilIdle(); + } + + // Tests if PlatformSensorReaderWinrtMagnetometer correctly converts sensor +@@ -1070,27 +1207,31 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckMagnetometerReadingConversion) { + ABI::Windows::Devices::Sensors::MagnetometerReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtMagnetometer>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IMagnetometerStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = ++ CreateAndInitializeSensor<PlatformSensorReaderWinrtMagnetometer>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillOnce(testing::Invoke([&](const SensorReading& reading) { +- EXPECT_EQ(expected_x, reading.magn.x); +- EXPECT_EQ(expected_y, reading.magn.y); +- EXPECT_EQ(expected_z, reading.magn.z); +- })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + + auto reading = Microsoft::WRL::Make<FakeMagnetometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, expected_x, expected_y, expected_z); +- fake_sensor->TriggerFakeSensorReading(reading); ++ { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(testing::Invoke([&](const SensorReading& reading) { ++ EXPECT_EQ(expected_x, reading.magn.x); ++ EXPECT_EQ(expected_y, reading.magn.y); ++ EXPECT_EQ(expected_z, reading.magn.z); ++ run_loop.Quit(); ++ })); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } + + sensor->StopSensor(); + } +@@ -1107,11 +1248,10 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedMagnetometerSampleParse) { + ABI::Windows::Devices::Sensors::MagnetometerReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtMagnetometer>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IMagnetometerStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = ++ CreateAndInitializeSensor<PlatformSensorReaderWinrtMagnetometer>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); + sensor->SetClient(mock_client.get()); +@@ -1122,6 +1262,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedMagnetometerSampleParse) { + auto reading = Microsoft::WRL::Make<FakeMagnetometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, 0, 0, 0); + ++ // We cannot use a base::RunLoop in the checks below because we are expecting ++ // that MockClient::OnReadingUpdate() does _not_ get called. ++ + reading->SetGetTimestampReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); + +@@ -1136,6 +1279,8 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedMagnetometerSampleParse) { + reading->SetGetYReturnCode(S_OK); + reading->SetGetZReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); ++ ++ task_environment_.RunUntilIdle(); + } + + // Tests if PlatformSensorReaderWinrtAbsOrientationEulerAngles correctly +@@ -1154,28 +1299,30 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckInclinometerReadingConversion) { + ABI::Windows::Devices::Sensors::InclinometerReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = +- std::make_unique<PlatformSensorReaderWinrtAbsOrientationEulerAngles>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IInclinometerStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor< ++ PlatformSensorReaderWinrtAbsOrientationEulerAngles>(fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillOnce(testing::Invoke([&](const SensorReading& reading) { +- EXPECT_EQ(expected_x, reading.orientation_euler.x); +- EXPECT_EQ(expected_y, reading.orientation_euler.y); +- EXPECT_EQ(expected_z, reading.orientation_euler.z); +- })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + + auto reading = Microsoft::WRL::Make<FakeInclinometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, expected_x, expected_y, expected_z); +- fake_sensor->TriggerFakeSensorReading(reading); ++ { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(testing::Invoke([&](const SensorReading& reading) { ++ EXPECT_EQ(expected_x, reading.orientation_euler.x); ++ EXPECT_EQ(expected_y, reading.orientation_euler.y); ++ EXPECT_EQ(expected_z, reading.orientation_euler.z); ++ run_loop.Quit(); ++ })); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } + + sensor->StopSensor(); + } +@@ -1192,12 +1339,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedInclinometerSampleParse) { + ABI::Windows::Devices::Sensors::InclinometerReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = +- std::make_unique<PlatformSensorReaderWinrtAbsOrientationEulerAngles>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IInclinometerStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor< ++ PlatformSensorReaderWinrtAbsOrientationEulerAngles>(fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); + sensor->SetClient(mock_client.get()); +@@ -1208,6 +1352,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedInclinometerSampleParse) { + auto reading = Microsoft::WRL::Make<FakeInclinometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, 0, 0, 0); + ++ // We cannot use a base::RunLoop in the checks below because we are expecting ++ // that MockClient::OnReadingUpdate() does _not_ get called. ++ + reading->SetGetTimestampReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); + +@@ -1222,6 +1369,8 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedInclinometerSampleParse) { + reading->SetGetYReturnCode(S_OK); + reading->SetGetZReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); ++ ++ task_environment_.RunUntilIdle(); + } + + // Tests if PlatformSensorReaderWinrtAbsOrientationQuaternion correctly +@@ -1242,32 +1391,32 @@ TEST_F(PlatformSensorReaderTestWinrt, CheckOrientationSensorReadingConversion) { + OrientationSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = +- std::make_unique<PlatformSensorReaderWinrtAbsOrientationQuaternion>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IOrientationSensorStatics** +- sensor_factory) -> HRESULT { +- return fake_sensor_factory.CopyTo(sensor_factory); +- })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor< ++ PlatformSensorReaderWinrtAbsOrientationQuaternion>(fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillOnce(testing::Invoke([&](const SensorReading& reading) { +- EXPECT_EQ(expected_w, reading.orientation_quat.w); +- EXPECT_EQ(expected_x, reading.orientation_quat.x); +- EXPECT_EQ(expected_y, reading.orientation_quat.y); +- EXPECT_EQ(expected_z, reading.orientation_quat.z); +- })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + + auto reading = Microsoft::WRL::Make<FakeOrientationSensorReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, expected_w, expected_x, expected_y, + expected_z); +- fake_sensor->TriggerFakeSensorReading(reading); ++ { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(testing::Invoke([&](const SensorReading& reading) { ++ EXPECT_EQ(expected_w, reading.orientation_quat.w); ++ EXPECT_EQ(expected_x, reading.orientation_quat.x); ++ EXPECT_EQ(expected_y, reading.orientation_quat.y); ++ EXPECT_EQ(expected_z, reading.orientation_quat.z); ++ run_loop.Quit(); ++ })); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } + + sensor->StopSensor(); + } +@@ -1285,14 +1434,9 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedOrientationSampleParse) { + OrientationSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = +- std::make_unique<PlatformSensorReaderWinrtAbsOrientationQuaternion>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IOrientationSensorStatics** +- sensor_factory) -> HRESULT { +- return fake_sensor_factory.CopyTo(sensor_factory); +- })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor< ++ PlatformSensorReaderWinrtAbsOrientationQuaternion>(fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); + sensor->SetClient(mock_client.get()); +@@ -1303,12 +1447,17 @@ TEST_F(PlatformSensorReaderTestWinrt, FailedOrientationSampleParse) { + auto reading = Microsoft::WRL::Make<FakeOrientationSensorReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, 0, 0, 0, 0); + ++ // We cannot use a base::RunLoop in the checks below because we are expecting ++ // that MockClient::OnReadingUpdate() does _not_ get called. ++ + reading->SetGetTimestampReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); + + reading->SetGetTimestampReturnCode(S_OK); + reading->SetGetQuaternionReturnCode(E_FAIL); + fake_sensor->TriggerFakeSensorReading(reading); ++ ++ task_environment_.RunUntilIdle(); + } + + TEST_F(PlatformSensorReaderTestWinrt, LightSensorThresholding) { +@@ -1321,29 +1470,30 @@ TEST_F(PlatformSensorReaderTestWinrt, LightSensorThresholding) { + ABI::Windows::Devices::Sensors::LightSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtLightSensor>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::ILightSensorStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtLightSensor>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- +- bool expected_callback = false; +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillRepeatedly(testing::Invoke( +- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + + float last_sent_lux = 1.0f; + auto threshold_helper = [&](bool expect_callback) { +- expected_callback = expect_callback; + auto reading = Microsoft::WRL::Make<FakeLightSensorReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, last_sent_lux); +- fake_sensor->TriggerFakeSensorReading(reading); ++ if (expect_callback) { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure())); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } else { ++ fake_sensor->TriggerFakeSensorReading(reading); ++ task_environment_.RunUntilIdle(); ++ } + }; + + // Expect callback, first sample +@@ -1359,10 +1509,6 @@ TEST_F(PlatformSensorReaderTestWinrt, LightSensorThresholding) { + PlatformSensorReaderWinrtLightSensor::kLuxPercentThreshold * 0.6f; + threshold_helper(true); + +- // Expect callback, threshold has been met exactly +- last_sent_lux += PlatformSensorReaderWinrtLightSensor::kLuxPercentThreshold; +- threshold_helper(true); +- + sensor->StopSensor(); + } + +@@ -1377,22 +1523,14 @@ TEST_F(PlatformSensorReaderTestWinrt, AccelerometerThresholding) { + Microsoft::WRL::Make<FakeAccelerometerSensorWinrt>()); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtAccelerometer>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IAccelerometerStatics** +- sensor_factory) -> HRESULT { +- return fake_sensor_factory.CopyTo(sensor_factory); +- })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = ++ CreateAndInitializeSensor<PlatformSensorReaderWinrtAccelerometer>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- +- bool expected_callback = false; +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillRepeatedly(testing::Invoke( +- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + +@@ -1400,40 +1538,40 @@ TEST_F(PlatformSensorReaderTestWinrt, AccelerometerThresholding) { + double last_sent_y = 2.0f; + double last_sent_z = 3.0f; + auto threshold_helper = [&](bool expect_callback) { +- expected_callback = expect_callback; + auto reading = Microsoft::WRL::Make<FakeAccelerometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, last_sent_x, last_sent_y, + last_sent_z); +- fake_sensor->TriggerFakeSensorReading(reading); ++ if (expect_callback) { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure())); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } else { ++ fake_sensor->TriggerFakeSensorReading(reading); ++ task_environment_.RunUntilIdle(); ++ } + }; + + // Expect callback, first sample + threshold_helper(true); + +- // No callback, threshold has not been met ++ // For each axis, increase its value by an amount lower than the threshold so ++ // that no callback is invoked, then meet the threshold and do expect a ++ // callback. + last_sent_x += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f; + threshold_helper(false); +- last_sent_y += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f; +- threshold_helper(false); +- last_sent_z += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f; +- threshold_helper(false); +- +- // Expect callback, threshold has been met since last reported sample + last_sent_x += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.6f; + threshold_helper(true); ++ last_sent_y += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f; ++ threshold_helper(false); + last_sent_y += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.6f; + threshold_helper(true); ++ last_sent_z += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.5f; ++ threshold_helper(false); + last_sent_z += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold * 0.6f; + threshold_helper(true); + +- // Expect callback, threshold has been met exactly +- last_sent_x += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold; +- threshold_helper(true); +- last_sent_y += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold; +- threshold_helper(true); +- last_sent_z += PlatformSensorReaderWinrtAccelerometer::kAxisThreshold; +- threshold_helper(true); +- + sensor->StopSensor(); + } + +@@ -1447,20 +1585,13 @@ TEST_F(PlatformSensorReaderTestWinrt, GyrometerThresholding) { + ABI::Windows::Devices::Sensors::GyrometerReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtGyrometer>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IGyrometerStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor<PlatformSensorReaderWinrtGyrometer>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- +- bool expected_callback = false; +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillRepeatedly(testing::Invoke( +- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + +@@ -1468,40 +1599,40 @@ TEST_F(PlatformSensorReaderTestWinrt, GyrometerThresholding) { + double last_sent_y = 4.0f; + double last_sent_z = 5.0f; + auto threshold_helper = [&](bool expect_callback) { +- expected_callback = expect_callback; + auto reading = Microsoft::WRL::Make<FakeGyrometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, last_sent_x, last_sent_y, + last_sent_z); +- fake_sensor->TriggerFakeSensorReading(reading); ++ if (expect_callback) { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure())); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } else { ++ fake_sensor->TriggerFakeSensorReading(reading); ++ task_environment_.RunUntilIdle(); ++ } + }; + + // Expect callback, first sample + threshold_helper(true); + +- // No callback, threshold has not been met ++ // For each axis, increase its value by an amount lower than the threshold so ++ // that no callback is invoked, then meet the threshold and do expect a ++ // callback. + last_sent_x += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f; + threshold_helper(false); +- last_sent_y += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f; +- threshold_helper(false); +- last_sent_z += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f; +- threshold_helper(false); +- +- // Expect callback, threshold has been met since last reported sample + last_sent_x += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.6f; + threshold_helper(true); ++ last_sent_y += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f; ++ threshold_helper(false); + last_sent_y += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.6f; + threshold_helper(true); ++ last_sent_z += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.5f; ++ threshold_helper(false); + last_sent_z += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold * 0.6f; + threshold_helper(true); + +- // Expect callback, threshold has been met exactly +- last_sent_x += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold; +- threshold_helper(true); +- last_sent_y += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold; +- threshold_helper(true); +- last_sent_z += PlatformSensorReaderWinrtGyrometer::kDegreeThreshold; +- threshold_helper(true); +- + sensor->StopSensor(); + } + +@@ -1515,20 +1646,14 @@ TEST_F(PlatformSensorReaderTestWinrt, MagnetometerThresholding) { + ABI::Windows::Devices::Sensors::MagnetometerReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = std::make_unique<PlatformSensorReaderWinrtMagnetometer>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IMagnetometerStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = ++ CreateAndInitializeSensor<PlatformSensorReaderWinrtMagnetometer>( ++ fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- +- bool expected_callback = false; +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillRepeatedly(testing::Invoke( +- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + +@@ -1536,46 +1661,46 @@ TEST_F(PlatformSensorReaderTestWinrt, MagnetometerThresholding) { + double last_sent_y = 4.0f; + double last_sent_z = 5.0f; + auto threshold_helper = [&](bool expect_callback) { +- expected_callback = expect_callback; + auto reading = Microsoft::WRL::Make<FakeMagnetometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, last_sent_x, last_sent_y, + last_sent_z); +- fake_sensor->TriggerFakeSensorReading(reading); ++ if (expect_callback) { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure())); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } else { ++ fake_sensor->TriggerFakeSensorReading(reading); ++ task_environment_.RunUntilIdle(); ++ } + }; + + // Expect callback, first sample + threshold_helper(true); + +- // No callback, threshold has not been met ++ // For each axis, increase its value by an amount lower than the threshold so ++ // that no callback is invoked, then meet the threshold and do expect a ++ // callback. + last_sent_x += + PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f; + threshold_helper(false); +- last_sent_y += +- PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f; +- threshold_helper(false); +- last_sent_z += +- PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f; +- threshold_helper(false); +- +- // Expect callback, threshold has been met since last reported sample + last_sent_x += + PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.6f; + threshold_helper(true); ++ last_sent_y += ++ PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f; ++ threshold_helper(false); + last_sent_y += + PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.6f; + threshold_helper(true); ++ last_sent_z += ++ PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.5f; ++ threshold_helper(false); + last_sent_z += + PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold * 0.6f; + threshold_helper(true); + +- // Expect callback, threshold has been met exactly +- last_sent_x += PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold; +- threshold_helper(true); +- last_sent_y += PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold; +- threshold_helper(true); +- last_sent_z += PlatformSensorReaderWinrtMagnetometer::kMicroteslaThreshold; +- threshold_helper(true); +- + sensor->StopSensor(); + } + +@@ -1589,21 +1714,13 @@ TEST_F(PlatformSensorReaderTestWinrt, AbsOrientationEulerThresholding) { + ABI::Windows::Devices::Sensors::InclinometerReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = +- std::make_unique<PlatformSensorReaderWinrtAbsOrientationEulerAngles>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IInclinometerStatics** sensor_factory) +- -> HRESULT { return fake_sensor_factory.CopyTo(sensor_factory); })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor< ++ PlatformSensorReaderWinrtAbsOrientationEulerAngles>(fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- +- bool expected_callback = false; +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillRepeatedly(testing::Invoke( +- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + +@@ -1611,53 +1728,50 @@ TEST_F(PlatformSensorReaderTestWinrt, AbsOrientationEulerThresholding) { + double last_sent_y = 4.0f; + double last_sent_z = 5.0f; + auto threshold_helper = [&](bool expect_callback) { +- expected_callback = expect_callback; + auto reading = Microsoft::WRL::Make<FakeInclinometerReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, last_sent_x, last_sent_y, + last_sent_z); +- fake_sensor->TriggerFakeSensorReading(reading); ++ if (expect_callback) { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure())); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } else { ++ fake_sensor->TriggerFakeSensorReading(reading); ++ task_environment_.RunUntilIdle(); ++ } + }; + + // Expect callback, first sample + threshold_helper(true); + +- // No callback, threshold has not been met ++ // For each axis, increase its value by an amount lower than the threshold so ++ // that no callback is invoked, then meet the threshold and do expect a ++ // callback. + last_sent_x += + PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold * + 0.5f; + threshold_helper(false); +- last_sent_y += +- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold * +- 0.5f; +- threshold_helper(false); +- last_sent_z += +- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold * +- 0.5f; +- threshold_helper(false); +- +- // Expect callback, threshold has been met since last reported sample + last_sent_x += + PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold * + 0.6f; + threshold_helper(true); ++ last_sent_y += ++ PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold * ++ 0.5f; ++ threshold_helper(false); + last_sent_y += + PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold * + 0.6f; + threshold_helper(true); + last_sent_z += + PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold * +- 0.6f; +- threshold_helper(true); +- +- // Expect callback, threshold has been met exactly +- last_sent_x += +- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold; +- threshold_helper(true); +- last_sent_y += +- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold; +- threshold_helper(true); ++ 0.5f; ++ threshold_helper(false); + last_sent_z += +- PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold; ++ PlatformSensorReaderWinrtAbsOrientationEulerAngles::kDegreeThreshold * ++ 0.6f; + threshold_helper(true); + + sensor->StopSensor(); +@@ -1674,34 +1788,32 @@ TEST_F(PlatformSensorReaderTestWinrt, AbsOrientationQuatThresholding) { + OrientationSensorReadingChangedEventArgs>>(); + auto fake_sensor = fake_sensor_factory->fake_sensor_; + +- auto sensor = +- std::make_unique<PlatformSensorReaderWinrtAbsOrientationQuaternion>(); +- sensor->InitForTesting(base::BindLambdaForTesting( +- [&](ABI::Windows::Devices::Sensors::IOrientationSensorStatics** +- sensor_factory) -> HRESULT { +- return fake_sensor_factory.CopyTo(sensor_factory); +- })); +- EXPECT_TRUE(sensor->Initialize()); ++ auto sensor = CreateAndInitializeSensor< ++ PlatformSensorReaderWinrtAbsOrientationQuaternion>(fake_sensor_factory); ++ ASSERT_TRUE(sensor); + + auto mock_client = std::make_unique<testing::NiceMock<MockClient>>(); +- +- bool expected_callback = false; +- EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) +- .WillRepeatedly(testing::Invoke( +- [&](const SensorReading&) { EXPECT_TRUE(expected_callback); })); +- + sensor->SetClient(mock_client.get()); ++ + PlatformSensorConfiguration sensor_config(kExpectedReportFrequencySet); + EXPECT_TRUE(sensor->StartSensor(sensor_config)); + + double last_sent_rad = 1.0; + auto threshold_helper = [&](bool expect_callback) { +- expected_callback = expect_callback; + auto quat = gfx::Quaternion(gfx::Vector3dF(1.0, 0, 0), last_sent_rad); + auto reading = Microsoft::WRL::Make<FakeOrientationSensorReadingWinrt>( + ABI::Windows::Foundation::DateTime{}, quat.w(), quat.x(), quat.y(), + quat.z()); +- fake_sensor->TriggerFakeSensorReading(reading); ++ if (expect_callback) { ++ base::RunLoop run_loop; ++ EXPECT_CALL(*mock_client, OnReadingUpdated(::testing::_)) ++ .WillOnce(base::test::RunClosure(run_loop.QuitClosure())); ++ fake_sensor->TriggerFakeSensorReading(reading); ++ run_loop.Run(); ++ } else { ++ fake_sensor->TriggerFakeSensorReading(reading); ++ task_environment_.RunUntilIdle(); ++ } + }; + + // Expect callback, first sample +@@ -1719,11 +1831,6 @@ TEST_F(PlatformSensorReaderTestWinrt, AbsOrientationQuatThresholding) { + 0.6f; + threshold_helper(true); + +- // Expect callback, threshold has been met exactly +- last_sent_rad += +- PlatformSensorReaderWinrtAbsOrientationQuaternion::kRadianThreshold; +- threshold_helper(true); +- + sensor->StopSensor(); + } + +diff --git a/chromium/services/device/generic_sensor/platform_sensor_win.cc b/chromium/services/device/generic_sensor/platform_sensor_win.cc +index 3ee3c1fa86a8..e9a78687250f 100644 +--- src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_win.cc ++++ src/3rdparty/chromium/services/device/generic_sensor/platform_sensor_win.cc +@@ -43,6 +43,8 @@ double PlatformSensorWin::GetMaximumSupportedFrequency() { + } + + void PlatformSensorWin::OnReadingUpdated(const SensorReading& reading) { ++ // This function is normally called from |sensor_thread_runner_|, except on ++ // PlatformSensorAndProviderTestWin. + UpdateSharedBufferAndNotifyClients(reading); + } + +@@ -75,6 +77,7 @@ bool PlatformSensorWin::CheckSensorConfiguration( + } + + PlatformSensorWin::~PlatformSensorWin() { ++ DCHECK(main_task_runner()->RunsTasksInCurrentSequence()); + sensor_reader_->SetClient(nullptr); + sensor_thread_runner_->DeleteSoon(FROM_HERE, sensor_reader_.get()); + } +From dbafaa10eb690d68e0531313663f47c422dc8771 Mon Sep 17 00:00:00 2001 +From: kylechar <kylechar@chromium.org> +Date: Tue, 9 Apr 2024 17:14:26 +0000 +Subject: [PATCH] [Backport] CVE-2024-3157: Out of bounds write in Compositing + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5420432: +Validate buffer length + +The BitmapInSharedMemory mojo traits were only validating row length and +not total buffer length. + +(cherry picked from commit 1a19ff70bd54847d818566bd7a1e7c384c419746) + +(cherry picked from commit f15315f1cb7897e208947a40d538aac693283d7f) + +Bug: 331237485 +Change-Id: Ia2318899c44e9e7ac72fc7183954e6ce2c702179 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5396796 +Commit-Queue: Kyle Charbonneau <kylechar@chromium.org> +Cr-Original-Original-Commit-Position: refs/heads/main@{#1278417} +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5420432 +Commit-Queue: danakj <danakj@chromium.org> +Cr-Original-Commit-Position: refs/branch-heads/6312@{#786} +Cr-Original-Branched-From: 6711dcdae48edaf98cbc6964f90fac85b7d9986e-refs/heads/main@{#1262506} +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5433678 +Reviewed-by: danakj <danakj@chromium.org> +Reviewed-by: Kyle Charbonneau <kylechar@chromium.org> +Cr-Commit-Position: refs/branch-heads/6099@{#2003} +Cr-Branched-From: e6ee4500f7d6549a9ac1354f8d056da49ef406be-refs/heads/main@{#1217362} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/554656 +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> +--- + .../cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc b/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc +index a6e5f45d9e72..519d554055e5 100644 +--- src/3rdparty/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc ++++ src/3rdparty/chromium/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc +@@ -76,6 +76,10 @@ bool StructTraits<viz::mojom::BitmapInSharedMemoryDataView, SkBitmap>::Read( + if (!mapping_ptr->IsValid()) + return false; + ++ if (mapping_ptr->size() < image_info.computeByteSize(data.row_bytes())) { ++ return false; ++ } ++ + if (!sk_bitmap->installPixels(image_info, mapping_ptr->memory(), + data.row_bytes(), &DeleteSharedMemoryMapping, + mapping_ptr.get())) { +From ac780f41ba9b3eb8329ca8e09b8857a070aed8c1 Mon Sep 17 00:00:00 2001 +From: Shahbaz Youssefi <syoussefi@chromium.org> +Date: Mon, 25 Mar 2024 14:46:56 -0400 +Subject: [PATCH] [Backport] CVE-2024-3516: Heap buffer overflow in ANGLE + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/angle/angle/+/5391986: +Translator: Disallow samplers in structs in interface blocks + +As disallowed by the spec: + +> Types and declarators are the same as for other uniform variable +> declarations outside blocks, with these exceptions: +> +> * opaque types are not allowed + +Bug: chromium:328859176 +Change-Id: Ib94977860102329e520e635c3757827c93ca2163 +Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5391986 +Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> +Reviewed-by: Geoff Lang <geofflang@chromium.org> +Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/554657 +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> +--- + .../src/compiler/translator/ParseContext.cpp | 33 ++++++++++++------- + 1 file changed, 21 insertions(+), 12 deletions(-) + +diff --git a/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp b/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp +index e174725beb7..cb9eb3a4a56 100644 +--- src/3rdparty/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp ++++ src/3rdparty/chromium/third_party/angle/src/compiler/translator/ParseContext.cpp +@@ -34,27 +34,39 @@ namespace + + const int kWebGLMaxStructNesting = 4; + +-bool ContainsSampler(const TStructure *structType); ++struct IsSamplerFunc ++{ ++ bool operator()(TBasicType type) { return IsSampler(type); } ++}; ++struct IsOpaqueFunc ++{ ++ bool operator()(TBasicType type) { return IsOpaqueType(type); } ++}; ++ ++template <typename OpaqueFunc> ++bool ContainsOpaque(const TStructure *structType); + +-bool ContainsSampler(const TType &type) ++template <typename OpaqueFunc> ++bool ContainsOpaque(const TType &type) + { +- if (IsSampler(type.getBasicType())) ++ if (OpaqueFunc{}(type.getBasicType())) + { + return true; + } + if (type.getBasicType() == EbtStruct) + { +- return ContainsSampler(type.getStruct()); ++ return ContainsOpaque<OpaqueFunc>(type.getStruct()); + } + + return false; + } + +-bool ContainsSampler(const TStructure *structType) ++template <typename OpaqueFunc> ++bool ContainsOpaque(const TStructure *structType) + { + for (const auto &field : structType->fields()) + { +- if (ContainsSampler(*field->type())) ++ if (ContainsOpaque<OpaqueFunc>(*field->type())) + return true; + } + return false; +@@ -1057,7 +1069,7 @@ bool TParseContext::checkIsNotOpaqueType(const TSourceLoc &line, + { + if (pType.type == EbtStruct) + { +- if (ContainsSampler(pType.userDef)) ++ if (ContainsOpaque<IsSamplerFunc>(pType.userDef)) + { + std::stringstream reasonStream = sh::InitializeStream<std::stringstream>(); + reasonStream << reason << " (structure contains a sampler)"; +@@ -4923,12 +4935,9 @@ TIntermDeclaration *TParseContext::addInterfaceBlock( + { + TField *field = (*fieldList)[memberIndex]; + TType *fieldType = field->type(); +- if (IsOpaqueType(fieldType->getBasicType())) ++ if (ContainsOpaque<IsOpaqueFunc>(*fieldType)) + { +- std::string reason("unsupported type - "); +- reason += fieldType->getBasicString(); +- reason += " types are not allowed in interface blocks"; +- error(field->line(), reason.c_str(), fieldType->getBasicString()); ++ error(field->line(), "Opaque types are not allowed in interface blocks", blockName); + } + + const TQualifier qualifier = fieldType->getQualifier(); +From a766045f65f934df3b5f1aa63bc86fbb3e003a09 Mon Sep 17 00:00:00 2001 +From: Anu Aliyas <anu.aliyas@qt.io> +Date: Wed, 17 Apr 2024 12:35:58 +0200 +Subject: [PATCH] Add missing dependencies to avoid compilation errors + +Missing dependencies are added to resolve the dependencies issues +encountered when compiling with Ninja 1.12.0 + +Fixes:QTBUG-124375 +Change-Id: I0f23ef6c60a6f01ee11bffd46121fd7f98dc022c +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/555586 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + chromium/content/public/browser/BUILD.gn | 1 + + chromium/extensions/browser/api/declarative_net_request/BUILD.gn | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/chromium/content/public/browser/BUILD.gn b/chromium/content/public/browser/BUILD.gn +index d38fa8d303a..c5813115e88 100644 +--- src/3rdparty/chromium/content/public/browser/BUILD.gn ++++ src/3rdparty/chromium/content/public/browser/BUILD.gn +@@ -539,6 +539,7 @@ jumbo_source_set("browser_sources") { + "//cc", + "//components/services/storage/public/cpp", + "//components/viz/host", ++ "//components/spellcheck:buildflags", + "//content/browser", # Must not be public_deps! + "//device/fido", + "//gpu", +diff --git a/chromium/extensions/browser/api/declarative_net_request/BUILD.gn b/chromium/extensions/browser/api/declarative_net_request/BUILD.gn +index 1fc492f5a0c..13a266e22f1 100644 +--- src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn ++++ src/3rdparty/chromium/extensions/browser/api/declarative_net_request/BUILD.gn +@@ -23,6 +23,7 @@ source_set("declarative_net_request") { + "//extensions/common", + "//extensions/common/api", + "//services/preferences/public/cpp", ++ "//components/web_cache/browser", + ] + + public_deps = [ "//extensions/browser:browser_sources" ] +From d26ab136f38d6bf3311eb04136820b85bc2fc96e Mon Sep 17 00:00:00 2001 +From: Dan Sanders <sandersd@chromium.org> +Date: Mon, 26 Feb 2024 20:53:06 +0000 +Subject: [PATCH] [Backport] Security bug 326521449 + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5323230: +Validate recovery_frame_cnt_ at time of use. + +Bug: b/326521449 +Change-Id: I778a16553bb3319dddfef6121895a89e0f1938df +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5323230 +Commit-Queue: Dan Sanders <sandersd@chromium.org> +Reviewed-by: Dale Curtis <dalecurtis@chromium.org> +Commit-Queue: Dale Curtis <dalecurtis@chromium.org> +Auto-Submit: Dan Sanders <sandersd@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1265425} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556725 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + chromium/media/gpu/h264_decoder.cc | 21 +++++++++++---------- + 1 file changed, 11 insertions(+), 10 deletions(-) + +diff --git a/chromium/media/gpu/h264_decoder.cc b/chromium/media/gpu/h264_decoder.cc +index 2bfdd28d83a..ef9de709045 100644 +--- src/3rdparty/chromium/media/gpu/h264_decoder.cc ++++ src/3rdparty/chromium/media/gpu/h264_decoder.cc +@@ -769,13 +769,6 @@ H264Decoder::H264Accelerator::Status H264Decoder::StartNewFrame( + return H264Accelerator::Status::kFail; + } + +- if (recovery_frame_cnt_ && *recovery_frame_cnt_ >= max_frame_num_) { +- DVLOG(1) << "Invalid recovery_frame_cnt=" << *recovery_frame_cnt_ +- << " (it must be less or equal to max_frame_num-1=" << max_frame_num_ - 1 +- << ")"; +- return H264Accelerator::Status::kFail; +- } +- + if (!InitCurrPicture(slice_hdr)) + return H264Accelerator::Status::kFail; + +@@ -999,11 +992,19 @@ bool H264Decoder::FinishPicture(scoped_refptr<H264Picture> pic) { + DVLOG(4) << "Finishing picture frame_num: " << pic->frame_num + << ", entries in DPB: " << dpb_.size(); + if (recovery_frame_cnt_) { +- // This is the first picture after the recovery point SEI message. Computes +- // the frame_num of the frame that should be output from (Spec D.2.8). ++ // This is the first picture after the recovery point SEI message. Validate ++ // `recovery_frame_cnt_` now that we are certain to have max_frame_num_. ++ if (*recovery_frame_cnt_ >= max_frame_num_) { ++ DVLOG(1) << "Invalid recovery_frame_cnt=" << *recovery_frame_cnt_ ++ << " (must be less than or equal to max_frame_num-1=" ++ << (max_frame_num_ - 1) << ")"; ++ return false; ++ } ++ ++ // Compute the frame_num of the first frame that should be output (D.2.8). + recovery_frame_num_ = + (*recovery_frame_cnt_ + pic->frame_num) % max_frame_num_; +- DVLOG(3) << "recovery_frame_num_" << *recovery_frame_num_; ++ DVLOG(3) << "recovery_frame_num_=" << *recovery_frame_num_; + recovery_frame_cnt_.reset(); + } + +From 08e69b86a697e265b3e064b06a05fc5e7a4e079b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <drott@chromium.org> +Date: Thu, 14 Mar 2024 12:48:18 +0000 +Subject: [PATCH] [Backport] CVE-2024-3839: Out of bounds read in Fonts +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5361874: +Disable STAT sanitization/checks through OTS + +Due to issues in upstream, OTS STAT sanitization does not provide an +added security benefit. Pass-through the STAT table. + +Bug: chromium:41491859 +Change-Id: I19dcd87376af553afe242452396b951a74691f3c +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5361874 +Commit-Queue: Dominik Röttsches <drott@chromium.org> +Reviewed-by: Koji Ishii <kojii@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1272710} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556726 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + .../blink/renderer/platform/fonts/web_font_decoder.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/chromium/third_party/blink/renderer/platform/fonts/web_font_decoder.cc b/chromium/third_party/blink/renderer/platform/fonts/web_font_decoder.cc +index 0953dc528dd..1ac9b8c9623 100644 +--- src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/web_font_decoder.cc ++++ src/3rdparty/chromium/third_party/blink/renderer/platform/fonts/web_font_decoder.cc +@@ -104,6 +104,7 @@ ots::TableAction BlinkOTSContext::GetTableAction(uint32_t tag) { + const uint32_t kCpalTag = OTS_TAG('C', 'P', 'A', 'L'); + const uint32_t kCff2Tag = OTS_TAG('C', 'F', 'F', '2'); + const uint32_t kSbixTag = OTS_TAG('s', 'b', 'i', 'x'); ++ const uint32_t kStatTag = OTS_TAG('S', 'T', 'A', 'T'); + #if HB_VERSION_ATLEAST(1, 0, 0) + const uint32_t kBaseTag = OTS_TAG('B', 'A', 'S', 'E'); + const uint32_t kGdefTag = OTS_TAG('G', 'D', 'E', 'F'); +@@ -131,6 +132,7 @@ ots::TableAction BlinkOTSContext::GetTableAction(uint32_t tag) { + case kCpalTag: + case kCff2Tag: + case kSbixTag: ++ case kStatTag: + #if HB_VERSION_ATLEAST(1, 0, 0) + // Let HarfBuzz handle how to deal with broken tables. + case kAvarTag: +From 8755f5a5aafae5a0e74839042cd2f65dc86061e8 Mon Sep 17 00:00:00 2001 +From: Liza Burakova <liza@chromium.org> +Date: Wed, 21 Feb 2024 19:02:15 +0000 +Subject: [PATCH] [Backport] CVE-2024-3837: Use after free in QUIC + +Manual cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5268864: +Check if session is going away in Handle::RequestStream. + +This CL adds an extra check in the QuicChromiumClientSession +handle's RequestSession to make sure the session is not +marked as going away before creating a new StreamRequest. + +Bug: 41491379 +Change-Id: I687dfc23131871cdba345d3cf78dbbbd2e619ce9 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5268864 +Reviewed-by: Kenichi Ishibashi <bashi@chromium.org> +Commit-Queue: Liza Burakova <liza@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1263483} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556727 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + chromium/net/quic/quic_chromium_client_session.cc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/chromium/net/quic/quic_chromium_client_session.cc b/chromium/net/quic/quic_chromium_client_session.cc +index d039d1ccb94..400006a170f 100644 +--- src/3rdparty/chromium/net/quic/quic_chromium_client_session.cc ++++ src/3rdparty/chromium/net/quic/quic_chromium_client_session.cc +@@ -454,7 +454,8 @@ int QuicChromiumClientSession::Handle::RequestStream( + const NetworkTrafficAnnotationTag& traffic_annotation) { + DCHECK(!stream_request_); + +- if (!session_) ++ // TODO(crbug.com/41491379): Add a regression test. ++ if (!session_ || session_->going_away_) + return ERR_CONNECTION_CLOSED; + + requires_confirmation |= session_->gquic_zero_rtt_disabled(); +From 271e21366ac1826df43119eb7b746019947be1f7 Mon Sep 17 00:00:00 2001 +From: Brendon Tiszka <tiszka@chromium.org> +Date: Sun, 3 Mar 2024 21:30:59 +0000 +Subject: [PATCH] [Backport] Security bug 327698060 + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5337387: +PaintOpReader: Harden PaintImage deserialization + +Add missing validity check after `Read` + +Bug: 327698060 +Change-Id: I0aa5120296009998af3235a01304a1f597a82a33 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5337387 +Commit-Queue: Khushal Sagar <khushalsagar@chromium.org> +Reviewed-by: Khushal Sagar <khushalsagar@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1267636} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556748 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + chromium/cc/paint/paint_op_reader.cc | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/chromium/cc/paint/paint_op_reader.cc b/chromium/cc/paint/paint_op_reader.cc +index 6d920c33562..7d1eb51441f 100644 +--- src/3rdparty/chromium/cc/paint/paint_op_reader.cc ++++ src/3rdparty/chromium/cc/paint/paint_op_reader.cc +@@ -351,6 +351,9 @@ void PaintOpReader::Read(PaintImage* image) { + case PaintOp::SerializedImageType::kImageData: { + SkColorType color_type; + Read(&color_type); ++ if (!valid_) { ++ return; ++ } + // Color types requiring alignment larger than kDefaultAlignment is not + // supported. + if (static_cast<size_t>(SkColorTypeBytesPerPixel(color_type)) > +From 502983e6adc3db0d12ee8e9ff35d53df0e149870 Mon Sep 17 00:00:00 2001 +From: Pete Williamson <petewil@chromium.org> +Date: Tue, 27 Feb 2024 00:19:05 +0000 +Subject: [PATCH] [Backport] Security bug 40940917 + +Cherry-pick of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5293726: +Fix misalligned address in hunspell::NodeReader::ReaderForLookupAt + +With the Hunspell spell checking library, we are using a custom wrapper +to read the dictionaries from files. In that custom wrapper, we were +reading by using reinterpret_cast to interpret an offset into a pointer, +and then reading the bytes at that pointer for the child_offset. + +The spell checking code appears to have been working properly in the +field. However, the current code caused fuzzing test failures, and +those failures are blocking other tests, so we need to fix this to +unblock other tests. + +It turns out that we were casting a value to a pointer that did not +have proper alignment (for instance, a pointer to a 32 bit int needs +to be 4 byte allinged, but this pointer was not). While it has often +worked in older compilers, it turns out this is undefined behavior. + +Instead of relying on undefined behavior, the right thing to do is to +use std::memcpy to copy the bytes from the misalligned address into +their final destination (either an int32 or an int16 in this case). + +Bug: 40940917 +Change-Id: I8aeba9ee8000b51e98863813235d8dceb1c41ceb +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5293726 +Commit-Queue: Peter Williamson <petewil@chromium.org> +Reviewed-by: Trevor Perrier <perrier@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1265552} +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556750 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + .../hunspell/google/bdict_reader.cc | 26 ++++++++++++++----- + 1 file changed, 20 insertions(+), 6 deletions(-) + +diff --git a/chromium/third_party/hunspell/google/bdict_reader.cc b/chromium/third_party/hunspell/google/bdict_reader.cc +index d51112ea48e7..56abd15dd121 100644 +--- src/3rdparty/chromium/third_party/hunspell/google/bdict_reader.cc ++++ src/3rdparty/chromium/third_party/hunspell/google/bdict_reader.cc +@@ -5,6 +5,7 @@ + #include "third_party/hunspell/google/bdict_reader.h" + + #include <stdint.h> ++#include <cstdint> + + #include "base/check.h" + +@@ -413,19 +414,32 @@ NodeReader::FindResult NodeReader::ReaderForLookupAt( + if (index >= static_cast<size_t>(lookup_num_chars()) || !is_valid_) + return FIND_DONE; + +- size_t child_offset; ++ size_t child_offset = 0; + if (is_lookup_32()) { + // Table contains 32-bit absolute offsets. +- child_offset = +- reinterpret_cast<const unsigned int*>(table_begin)[index]; ++ ++ // We need to use memcpy here instead of just casting the offset into a ++ // pointer to an int because the cast can cause undefined behavior if ++ // the pointer is not alligned, and in this case it is not. ++ int byte_offset = index * sizeof(uint32_t); ++ std::memcpy(&child_offset, ++ reinterpret_cast<const void*>(table_begin + byte_offset), ++ sizeof(uint32_t)); + if (!child_offset) + return FIND_NOTHING; // This entry in the table is empty. + } else { + // Table contains 16-bit offsets relative to the current node. +- child_offset = +- reinterpret_cast<const unsigned short*>(table_begin)[index]; +- if (!child_offset) ++ ++ // We need to use memcpy here instead of just casting the offset into a ++ // pointer to an int because the cast can cause undefined behavior if ++ // the pointer is not alligned, and in this case it is not. ++ int byte_offset = index * sizeof(uint16_t); ++ std::memcpy(&child_offset, ++ reinterpret_cast<const void*>(table_begin + byte_offset), ++ sizeof(uint16_t)); ++ if (!child_offset) { + return FIND_NOTHING; // This entry in the table is empty. ++ } + child_offset += node_offset_; + } + +From 6086d28d3a0dbfac1808ba5767ca1eea4a5acaf9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marja=20H=C3=B6ltt=C3=A4?= <marja@google.com> +Date: Tue, 26 Mar 2024 13:53:21 +0000 +Subject: [PATCH] [Backport] CVE-2024-3914: Use after free in V8 (1/2) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Manual backport of patch originally reviewed on +https://chromium-review.googlesource.com/c/chromium/src/+/5387887: +[M120-LTS] Fix DOMArrayBuffer::IsDetached() + +M120 merge issues: + third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc: + - Conflicting types for variable worlds + - Conflicting AllWorldsInIsolate() call (M120 doesn't use the last argument) + +A DOMArrayBuffer was maintaining its own "is_detached_" state, and +would consider itself non-detached even if the corresponding +JSArrayBuffer (or, all of them, in case there are several) was +detached. + +Piping in the v8::Isolate would be a too big change for this fix, so this is using v8::Isolate::GetCurrent() for now. + +Bug: 330759272 +Change-Id: I1e98ebd2066d2e59658db12f1bb419b6ebc1d706 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5387887 +Commit-Queue: Marja Hölttä <marja@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1278283} +(cherry picked from commit 04e7550d7aa3bf4ac4e49d7074972d357de139e6) +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/556751 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + .../core/typed_arrays/dom_array_buffer.cc | 50 +++++++++++++++++++ + .../core/typed_arrays/dom_array_buffer.h | 13 +++++ + .../core/typed_arrays/dom_array_buffer_base.h | 2 +- + 3 files changed, 64 insertions(+), 1 deletion(-) + +diff --git a/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc b/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc +index c195e28b442..197a4aebf5b 100644 +--- src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc ++++ src/3rdparty/chromium/third_party/blink/renderer/core/typed_arrays/dom_array_buffer.cc +@@ -48,6 +48,15 @@ static void AccumulateArrayBuffersForAllWorlds( + v8::Isolate* isolate, + DOMArrayBuffer* object, + Vector<v8::Local<v8::ArrayBuffer>, 4>& buffers) { ++ if (!object->has_non_main_world_wrappers() && IsMainThread()) { ++ const DOMWrapperWorld& world = DOMWrapperWorld::MainWorld(); ++ v8::Local<v8::Object> wrapper = world.DomDataStore().Get(object, isolate); ++ if (!wrapper.IsEmpty()) { ++ buffers.push_back(v8::Local<v8::ArrayBuffer>::Cast(wrapper)); ++ } ++ return; ++ } ++ + Vector<scoped_refptr<DOMWrapperWorld>> worlds; + DOMWrapperWorld::AllWorldsInCurrentThread(worlds); + for (const auto& world : worlds) { +@@ -256,6 +265,47 @@ v8::MaybeLocal<v8::Value> DOMArrayBuffer::Wrap(ScriptState* script_state) { + wrapper); + } + ++bool DOMArrayBuffer::IsDetached() const { ++ if (contents_.BackingStore() == nullptr) { ++ return is_detached_; ++ } ++ if (is_detached_) { ++ return true; ++ } ++ ++ v8::Isolate* isolate = v8::Isolate::GetCurrent(); ++ v8::HandleScope handle_scope(isolate); ++ Vector<v8::Local<v8::ArrayBuffer>, 4> buffer_handles; ++ AccumulateArrayBuffersForAllWorlds(isolate, const_cast<DOMArrayBuffer*>(this), buffer_handles); ++ ++ // There may be several v8::ArrayBuffers corresponding to the DOMArrayBuffer, ++ // |