summaryrefslogtreecommitdiff
path: root/dev-qt/qtdeclarative
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-12-04 02:07:22 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-12-04 02:07:22 +0000
commit38ecaf88ae0891dd2d7f2bdd9a7acdcd45835724 (patch)
tree9416e00c684e43c1731a2189865034d568f2a20f /dev-qt/qtdeclarative
parent7f4b508a2da3c371c7e770aa6ab83b0c4237cd1c (diff)
gentoo auto-resync : 04:12:2024 - 02:07:22
Diffstat (limited to 'dev-qt/qtdeclarative')
-rw-r--r--dev-qt/qtdeclarative/Manifest6
-rw-r--r--dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-125053.patch258
-rw-r--r--dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129500.patch80
-rw-r--r--dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129797.patch24
-rw-r--r--dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-130767.patch255
-rw-r--r--dev-qt/qtdeclarative/qtdeclarative-6.8.0-r7.ebuild70
6 files changed, 0 insertions, 693 deletions
diff --git a/dev-qt/qtdeclarative/Manifest b/dev-qt/qtdeclarative/Manifest
index e350593a6acc..0170430f2db0 100644
--- a/dev-qt/qtdeclarative/Manifest
+++ b/dev-qt/qtdeclarative/Manifest
@@ -2,23 +2,17 @@ AUX qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch 1566 BLAKE2B b643
AUX qtdeclarative-6.7.3-QTBUG-125053.patch 9583 BLAKE2B d7bdfe4d0a002e5d17f57604dbece3294596a76d03bc3c12a05622d2c95a16bde4bb128d19c63e4856270a875c5b6b866c9cfed9f30a346b441a2b81e7cdf2d1 SHA512 3811879d972ff5a0dbfca98c2c2931f50dd9906dc0ecf75f13e59eae71d9d27dfc9279ba9952a00be81cab83e8f8e42e798d9b43d7d3d6974a1676f4e8e401ea
AUX qtdeclarative-6.7.3-QTBUG-129165.patch 5469 BLAKE2B fa4ce581df827b6725b6ab3135fb95fba492814d19d72b7b3be75b621a91f98d534152c5d80b7e1f21e9d877979a1b0e3a09d9eafa034e702d31996bc9624670 SHA512 605ecb6f7e3412b9c59b4e7579df87be1d19846fe1977682cb548732fe57993321015dabe5c5a87ebb15ae3cd394059a5d25d8b24f607093f5cf6343fbb7a4d7
AUX qtdeclarative-6.7.3-QTBUG-129622.patch 2811 BLAKE2B 998cc23491e21cde656d6b8f92a1924652a26343c09eaed9a4ffe23e1782b95960a41d40b3a78a2bb41b4687bc491b46969db8f610f050c87eef09a670544d90 SHA512 5a4ded399bd58d23a4c6dcc6cb82b4ef2cd15d099dbfc742a916f40899166c43893eb8d19494b7fc58d11dbe17532bb3d647b6638f63e7ca354f650d67c1ca95
-AUX qtdeclarative-6.8.0-QTBUG-125053.patch 9540 BLAKE2B 83c465cdcf391968cd835efdcd24512915a91ffafc50291c75605362bbb67ca8dcea3ca4e65612d003d021e1e2c027418532fc4e36b8e36b1edc73d5478c6dea SHA512 872a417bb611d15087dcb37883e5df028ec2b51375ecb9e166ad6a4126e26adbff22836c9dbf58fcbe3683a946f1ba7e7088fd8f3d6b3d46fd510a19d6d4ef17
-AUX qtdeclarative-6.8.0-QTBUG-129500.patch 3440 BLAKE2B 8823171026034a5a181997a04345b209b6349488287ea5a72003f236bdd3c4441ab2f8b1bef5affab040ac2ff9507844b6d51d4157db1a97dfa47461f2132344 SHA512 d244c115617d39e844aac4ce5991fdaff8799dfe5661ec9354945df0bab360d29088c6a799bb25c10e749e871c61d226eab50206462e24dec350aa93d8a6efaa
-AUX qtdeclarative-6.8.0-QTBUG-129797.patch 1236 BLAKE2B edfa939f1438031c1a0b168dc493806d372f072d3b104975da56711c2ee2df402aba076ca7071576ed98a8bdb0668af2f7258c6d2a9f4ae68192473b1630fb39 SHA512 9cc280dccc08aa0bacd0d5ce34dbd1ab6cebf3bcc3cbe4854b03c1e12971619993845d9689b146cb89557c2dbe7b0a44870e6bb0cb1e1d6b4a89924a19b8be7d
-AUX qtdeclarative-6.8.0-QTBUG-130767.patch 8301 BLAKE2B 87e67017da7b2a1a9410fb6c6988c6418222fbcae9104fed00f94ca04d5825a2b071c04e49c304e128dc3f639ca138ec231246c8f2c5d726c22a75839e6f7149 SHA512 9b183f77d4121019fae93b73461373c1f5c36618202a4085ada637fb6ed7cc8007c03f29653159046a1666250fd43ac163a496ab639c5c364180ade322f3ac7e
DIST qtdeclarative-5.15.14-gentoo-kde-1.tar.xz 26628 BLAKE2B 2b8302b96e5a8cae374da43dfaa5c5c7bf66ddfaa4fed055850fe7b39b995b1416268b94fb98fbc7074b6a0da47e8f9232751dba34b6021e095d7f9339fbfdd9 SHA512 3d4f3cc023e9da32105520bbe74847bb438ec3af85cf6203321400d451902071115ed3cc0c42e8cf995d0304f86cda11096223ad99b09a7dd95b3d83291a7b4a
DIST qtdeclarative-5.15.16-gentoo-kde-1.tar.xz 19148 BLAKE2B ebdc17253887c5b22816c3bdcd07f30274c3aa4680088ceee7abce8896a17aff7272e5a4bba576e1ad0372b7d1d80322c6890e1b5343eaab915a5355da659c5b SHA512 3fbbb7b06c67d31a9074737f68437a9e920e4b816c78c78dec2e700e339f6f8ad0b244a1eb78d7521133873b17015861a84057a890887d4dfbef91699428d8c6
DIST qtdeclarative-everywhere-opensource-src-5.15.14.tar.xz 21595408 BLAKE2B c88388bd04636bc55cad17d97a9f3ee2d3bda6b585cad59d70106bd4e14bf37570bba5edc21627bc08852034adcb483b4c23d7f21ba523dc9e7b6c1f0386a994 SHA512 06c48938c5ab96c4a9e010fdf4a8fbf2b84b7669a486298044363048de3b7da01aa5d9284d1b08b563331887e326befb25566f9972f5143ca3cde47016394bbd
DIST qtdeclarative-everywhere-opensource-src-5.15.16.tar.xz 21599596 BLAKE2B 7f69370eab4909891beb27a730e7082030715f1fcbd9faf87bdd8f3d7d3e469c56b609f58a1cf769bdb22303829d573d30fd9aaff4824456778d11ae46f7ddaa SHA512 be492d95d11ab13e13d27ca2024b5b5860d515d0b66c6d1c201bdba155841996bfdb3b813313dc75578228b6d3e661220dcc5db037624fe73d6e5e1c3ec84aa7
DIST qtdeclarative-everywhere-src-6.7.2.tar.xz 35629324 BLAKE2B a2c5a17e2f88dd91dd7ae21950d8bb7bc0856f1f05a093405c68e1b3b584a75fee474a9a7116a1797c464e2ca92778ebec774d4afa5ac6eebb1022daabad8868 SHA512 ca172e79af317f481d6f5e6388dc074fc6f99966b896135ab9991fa1a9502e46b0ac21b7f2bc38278448939e77882c5fd17252e3e6460c1665f8156fa99bceaf
DIST qtdeclarative-everywhere-src-6.7.3.tar.xz 35663596 BLAKE2B b9dc18b4a459c283883a9bd2b2708ea758dc2853e93af05a503b84cb348398e5cdd9b28f6735cbf8e480d252f33cf6c36b06deedd468e7b0169e59b5bae296cd SHA512 54e9b262b07c80eb6530da3e980319edd7370cc90f4241ebaf22a73e1f7f4f14177cea06276a0d3b2b553c6ed0825be0c56b9e2ddca53e99db57b67c3ad4bb47
-DIST qtdeclarative-everywhere-src-6.8.0.tar.xz 37029068 BLAKE2B 272c673eb06ad28be3f7a02d29323ba0ab1943e1dabeb8a8b7d8f4857473a488f22bce1ee60c1e56996cd6805cb30f77b80253a6504f86252c0d4188984ff4b2 SHA512 4f1e26511265e7085bfe097435e64b4daa0bb4a8287f56753a64437a5eb408c0679afa03e255d1949e382b59496eff600cb0638a9b8cc95278d67ad5cfb9d52b
DIST qtdeclarative-everywhere-src-6.8.1.tar.xz 36463572 BLAKE2B ac8b9d37c28ba22c266785cfe60bc0d405edb85f260b41bb01c43fd38dbeb51054d7f3f390bb9c4e78656dda3b9d5c7b945dba8ee897add0a2dbb398cc3f8a51 SHA512 f9548ee58ac81eac72f1763647a9f28c16e7ab73bf6bc828574e5194d5209c53440f834a721e9bb74f50d4e437ce2de6eb7c7a13acd8602b3080e95d8929e674
EBUILD qtdeclarative-5.15.14.ebuild 1537 BLAKE2B 9515ce8d7c01fa8119ecc030871048dece2da2051a67cc1bf61907db5fb1ceeee7ca52503068a9059c3822df398d90e2fec630529a2f88a1ca707ac1c9ef9250 SHA512 d684a28aeda630154eb7c1023dbf231baf5cde528788cb3fbaab35e24a349dd585519aff99d44c405fc6f5f92e9f52d49f30cbbb11c908cf5f42e8d7f5826543
EBUILD qtdeclarative-5.15.16.ebuild 1540 BLAKE2B d5980becd01654f9b6aa5f1f8618b9a2b0d1976ff1d64641b4f64ad74faa390163810b182b31556ac46a8ef41d7f18721c6709ec98b0f9f6c974b984f0a498a4 SHA512 3ad0fd438267c0968af844934fbce5f90ba466ddbb500d6f0933c05622414e8db3eb68bcef08d3a8e928110d29f26e3fd9597968806d6b013b7e013ef8d2e3a3
EBUILD qtdeclarative-6.7.2.ebuild 1175 BLAKE2B 4f4d132a22d7987afcb7164ce83e35358b664cc70013f269af95e72b353cfc0103d3953fa308532dfbd00ce0f703c33e341e8a829c1a6bb62a09c07ec8cb7910 SHA512 48af79fdeff33c7d2da696364e1dc1a6694d9a6428a8aae11c5bd2ad2046f7a82bb780824da9a1aef1741322680534cd0d261a50acf235ae3b4fb0f8346d7dc7
EBUILD qtdeclarative-6.7.3-r4.ebuild 1913 BLAKE2B 2e0fff6218ad15659d0ed07c0b41d24c073c7d5e4af65be98831b240682c3369097ecf1f54d7ff5659a9596d861a45e0a03371bd52e637bd29c25bd06d37559c SHA512 ce1776ec512680642899ae5d12224c77c3ff4f94caaebb454959d436d8c80da1ec72ac8752de3491206d8427caf4b2e07a9a9eae52f226ee02aa7ef3e04be895
-EBUILD qtdeclarative-6.8.0-r7.ebuild 2008 BLAKE2B 37676d51f48a64169fb4ecc6c69efc2cb2edc90f3a4ed5355f067df6a4c1fa9030e79c50e9df55e0b69c4dc82437f6edb5b81fa68100dfdc6878afb3369d5550 SHA512 e09f9c9e837a115647ffe6d30a21d6836178ad7d0c26df2660b5cc1825a1c13dab3c01619258ca4455ffb3cc6c40563733d1b200ae2c5dcb93964ffc68e39d1c
EBUILD qtdeclarative-6.8.1.ebuild 1739 BLAKE2B 434181ff4ee1fcb2d11b034c977b73bc23225cfe44d0ac5ee048620e2940fb0273c682defe6247d90a1052ad935e418c8c81881a5378d8f5b5f466a147f42120 SHA512 057e76f4969535d8437cbc02e8999aa70656e8256e95ba1e20f3a1bcab34a1bef0fe80812799eb608f3c9c0cb18eb06ad0a3ca04e7e6537997f81ff0136ddd35
EBUILD qtdeclarative-6.8.9999.ebuild 1739 BLAKE2B 434181ff4ee1fcb2d11b034c977b73bc23225cfe44d0ac5ee048620e2940fb0273c682defe6247d90a1052ad935e418c8c81881a5378d8f5b5f466a147f42120 SHA512 057e76f4969535d8437cbc02e8999aa70656e8256e95ba1e20f3a1bcab34a1bef0fe80812799eb608f3c9c0cb18eb06ad0a3ca04e7e6537997f81ff0136ddd35
EBUILD qtdeclarative-6.9999.ebuild 1739 BLAKE2B 434181ff4ee1fcb2d11b034c977b73bc23225cfe44d0ac5ee048620e2940fb0273c682defe6247d90a1052ad935e418c8c81881a5378d8f5b5f466a147f42120 SHA512 057e76f4969535d8437cbc02e8999aa70656e8256e95ba1e20f3a1bcab34a1bef0fe80812799eb608f3c9c0cb18eb06ad0a3ca04e7e6537997f81ff0136ddd35
diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-125053.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-125053.patch
deleted file mode 100644
index 250a33f7b166..000000000000
--- a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-125053.patch
+++ /dev/null
@@ -1,258 +0,0 @@
-https://bugreports.qt.io/browse/QTBUG-125053
-https://bugreports.qt.io/browse/QTBUG-127340
-https://codereview.qt-project.org/c/qt/qtdeclarative/+/593122
-https://bugs.gentoo.org/943527 (see also)
---- a/src/qmlmodels/qqmldelegatemodel.cpp
-+++ b/src/qmlmodels/qqmldelegatemodel.cpp
-@@ -4,4 +4,6 @@
- #include "qqmldelegatemodel_p_p.h"
-
-+#include <QtCore/private/qabstractitemmodel_p.h>
-+
- #include <QtQml/qqmlinfo.h>
-
-@@ -172,5 +174,4 @@
- , m_incubatorCleanupScheduled(false)
- , m_waitingToFetchMore(false)
-- , m_maybeResetRoleNames(false)
- , m_cacheItems(nullptr)
- , m_items(nullptr)
-@@ -366,5 +367,4 @@
- QObject::connect(aim, &QAbstractItemModel::rowsMoved, q, &QQmlDelegateModel::_q_rowsMoved);
- QObject::connect(aim, &QAbstractItemModel::modelAboutToBeReset, q, &QQmlDelegateModel::_q_modelAboutToBeReset);
-- QObject::connect(aim, &QAbstractItemModel::modelReset, q, &QQmlDelegateModel::handleModelReset);
- QObject::connect(aim, &QAbstractItemModel::layoutChanged, q, &QQmlDelegateModel::_q_layoutChanged);
- }
-@@ -387,5 +387,4 @@
- QObject::disconnect(aim, &QAbstractItemModel::rowsMoved, q, &QQmlDelegateModel::_q_rowsMoved);
- QObject::disconnect(aim, &QAbstractItemModel::modelAboutToBeReset, q, &QQmlDelegateModel::_q_modelAboutToBeReset);
-- QObject::disconnect(aim, &QAbstractItemModel::modelReset, q, &QQmlDelegateModel::handleModelReset);
- QObject::disconnect(aim, &QAbstractItemModel::layoutChanged, q, &QQmlDelegateModel::_q_layoutChanged);
- }
-@@ -412,4 +411,19 @@
- d->requestMoreIfNecessary();
- }
-+
-+ // Since 837c2f18cd223707e7cedb213257b0158ea07146, we connect to modelAboutToBeReset
-+ // rather than modelReset so that we can handle role name changes. _q_modelAboutToBeReset
-+ // now connects modelReset to handleModelReset with a single shot connection instead.
-+ // However, it's possible for user code to begin the reset before connectToAbstractItemModel is called
-+ // (QTBUG-125053), in which case we connect to modelReset too late and handleModelReset is never called,
-+ // resulting in delegates not being created in certain cases.
-+ // So, we check at the earliest point we can if the model is in the process of being reset,
-+ // and if so, connect modelReset to handleModelReset.
-+ if (d->m_adaptorModel.adaptsAim()) {
-+ auto *aim = d->m_adaptorModel.aim();
-+ auto *aimPrivate = QAbstractItemModelPrivate::get(aim);
-+ if (aimPrivate->resetting)
-+ QObject::connect(aim, &QAbstractItemModel::modelReset, this, &QQmlDelegateModel::handleModelReset, Qt::SingleShotConnection);
-+ }
- }
-
-@@ -1898,26 +1912,23 @@
- if (!d->m_adaptorModel.adaptsAim())
- return;
--
-- /*
-- roleNames are generally guaranteed to be stable (given that QAIM has no
-- change signal for them), except that resetting the model is allowed to
-- invalidate them (QTBUG-32132). DelegateModel must take this into account by
-- snapshotting the current roleNames before the model is reset.
-- Afterwards, if we detect that roleNames has changed, we throw the
-- current model set up away and rebuild everything from scratch – it is
-- unlikely that a more efficient implementation would be worth it.
--
-- If we detect no changes, we simply use the existing logic to handle the
-- model reset.
--
-- This (role name resetting) logic relies on the fact that
-- modelAboutToBeReset must be followed by a modelReset signal before any
-- further modelAboutToBeReset can occur. However, it's possible for user
-- code to begin the reset before connectToAbstractItemModel is called
-- (QTBUG-125053), in which case we don't attempt to reset the role names.
-- */
-- Q_ASSERT(!d->m_maybeResetRoleNames);
-- d->m_maybeResetRoleNames = true;
-- d->m_roleNamesBeforeReset = d->m_adaptorModel.aim()->roleNames();
-+ auto aim = d->m_adaptorModel.aim();
-+ auto oldRoleNames = aim->roleNames();
-+ // this relies on the fact that modelAboutToBeReset must be followed
-+ // by a modelReset signal before any further modelAboutToBeReset can occur
-+ QObject::connect(aim, &QAbstractItemModel::modelReset, this, [this, d, oldRoleNames, aim](){
-+ if (!d->m_adaptorModel.adaptsAim() || d->m_adaptorModel.aim() != aim)
-+ return;
-+ if (oldRoleNames == aim->roleNames()) {
-+ // if the rolenames stayed the same (most common case), then we don't have
-+ // to throw away all the setup that we did
-+ handleModelReset();
-+ } else {
-+ // If they did change, we give up and just start from scratch via setMode
-+ setModel(QVariant::fromValue(model()));
-+ // but we still have to call handleModelReset, otherwise views will
-+ // not refresh
-+ handleModelReset();
-+ }
-+ }, Qt::SingleShotConnection);
- }
-
-@@ -1929,21 +1940,4 @@
-
- int oldCount = d->m_count;
--
-- if (d->m_maybeResetRoleNames) {
-- auto aim = d->m_adaptorModel.aim();
-- if (!d->m_adaptorModel.adaptsAim() || d->m_adaptorModel.aim() != aim)
-- return;
--
-- // If the role names stayed the same (most common case), then we don't have
-- // to throw away all the setup that we did.
-- // If they did change, we give up and just start from scratch via setModel.
-- // We do this before handling the reset to ensure that views refresh.
-- if (aim->roleNames() != d->m_roleNamesBeforeReset)
-- setModel(QVariant::fromValue(model()));
--
-- d->m_maybeResetRoleNames = false;
-- d->m_roleNamesBeforeReset.clear();
-- }
--
- d->m_adaptorModel.rootIndex = QModelIndex();
-
---- a/src/qmlmodels/qqmldelegatemodel_p_p.h
-+++ b/src/qmlmodels/qqmldelegatemodel_p_p.h
-@@ -335,5 +335,4 @@
- QList<QQDMIncubationTask *> m_finishedIncubating;
- QList<QByteArray> m_watchedRoles;
-- QHash<int, QByteArray> m_roleNamesBeforeReset;
-
- QString m_filterGroup;
-@@ -349,5 +348,4 @@
- bool m_incubatorCleanupScheduled : 1;
- bool m_waitingToFetchMore : 1;
-- bool m_maybeResetRoleNames : 1;
-
- union {
---- a/tests/auto/qml/qqmldelegatemodel/data/proxyModelWithDelayedSourceModelInListView.qml
-+++ b/tests/auto/qml/qqmldelegatemodel/data/proxyModelWithDelayedSourceModelInListView.qml
-@@ -0,0 +1,30 @@
-+import QtQuick
-+import Test
-+
-+Window {
-+ id: root
-+ title: listView.count
-+
-+ property alias listView: listView
-+ property ProxySourceModel connectionModel: null
-+
-+ Component {
-+ id: modelComponent
-+ ProxySourceModel {}
-+ }
-+
-+ ListView {
-+ id: listView
-+ anchors.fill: parent
-+
-+ delegate: Text {
-+ text: model.Name
-+ }
-+
-+ model: ProxyModel {
-+ sourceModel: root.connectionModel
-+ }
-+ }
-+
-+ Component.onCompleted: root.connectionModel = modelComponent.createObject(root)
-+}
---- a/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp
-+++ b/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp
-@@ -4,4 +4,5 @@
- #include <QtTest/qtest.h>
- #include <QtCore/qjsonobject.h>
-+#include <QtCore/qsortfilterproxymodel.h>
- #include <QtCore/QConcatenateTablesProxyModel>
- #include <QtCore/qtimer.h>
-@@ -52,4 +53,5 @@
- void clearCacheDuringInsertion();
- void viewUpdatedOnDelegateChoiceAffectingRoleChange();
-+ void proxyModelWithDelayedSourceModelInListView();
- };
-
-@@ -732,4 +734,77 @@
- }
-
-+class ProxySourceModel : public QAbstractListModel
-+{
-+ Q_OBJECT
-+ QML_ELEMENT
-+public:
-+ explicit ProxySourceModel(QObject *parent = nullptr)
-+ : QAbstractListModel(parent)
-+ {
-+ for (int i = 0; i < rows; ++i) {
-+ beginInsertRows(QModelIndex(), i, i);
-+ endInsertRows();
-+ }
-+ }
-+
-+ ~ProxySourceModel() override = default;
-+
-+ int rowCount(const QModelIndex &) const override
-+ {
-+ return rows;
-+ }
-+
-+ QVariant data(const QModelIndex &, int ) const override
-+ {
-+ return "Hello";
-+ }
-+
-+ QHash<int, QByteArray> roleNames() const override
-+ {
-+ QHash<int, QByteArray> roles = QAbstractListModel::roleNames();
-+ roles[Qt::UserRole + 1] = "Name";
-+
-+ return roles;
-+ }
-+
-+ static const int rows = 1;
-+};
-+
-+class ProxyModel : public QSortFilterProxyModel
-+{
-+ Q_OBJECT
-+ QML_ELEMENT
-+ Q_PROPERTY(QAbstractItemModel *sourceModel READ sourceModel WRITE setSourceModel)
-+
-+public:
-+ explicit ProxyModel(QObject *parent = nullptr)
-+ : QSortFilterProxyModel(parent)
-+ {
-+ }
-+
-+ ~ProxyModel() override = default;
-+};
-+
-+// Checks that the correct amount of delegates are created when using a proxy
-+// model whose source model is set after a delay.
-+void tst_QQmlDelegateModel::proxyModelWithDelayedSourceModelInListView()
-+{
-+ QTest::failOnWarning();
-+
-+ qmlRegisterTypesAndRevisions<ProxySourceModel>("Test", 1);
-+ qmlRegisterTypesAndRevisions<ProxyModel>("Test", 1);
-+
-+ QQuickApplicationHelper helper(this, "proxyModelWithDelayedSourceModelInListView.qml");
-+ QVERIFY2(helper.ready, helper.failureMessage());
-+ QQuickWindow *window = helper.window;
-+ window->show();
-+ QVERIFY(QTest::qWaitForWindowExposed(window));
-+
-+ auto *listView = window->property("listView").value<QQuickListView *>();
-+ QVERIFY(listView);
-+ const auto delegateModel = QQuickItemViewPrivate::get(listView)->model;
-+ QTRY_COMPARE(listView->count(), 1);
-+}
-+
- QTEST_MAIN(tst_QQmlDelegateModel)
-
diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129500.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129500.patch
deleted file mode 100644
index 45f165f374d2..000000000000
--- a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129500.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-Prevents crashes in Neochat and other kirigami-based applications.
-https://bugreports.qt.io/browse/QTBUG-129500
-https://codereview.qt-project.org/c/qt/qtdeclarative/+/595278
---- a/src/quick/items/qquickitem.cpp
-+++ b/src/quick/items/qquickitem.cpp
-@@ -8757,7 +8757,8 @@
- QPointF p = mapToScene(point);
- if (item) {
-- const QQuickWindow *itemWindow = item->window();
-- if (itemWindow != nullptr && itemWindow != window())
-- p = itemWindow->mapFromGlobal(window()->mapToGlobal(p));
-+ const auto *itemWindow = item->window();
-+ const auto *thisWindow = window();
-+ if (thisWindow && itemWindow && itemWindow != thisWindow)
-+ p = itemWindow->mapFromGlobal(thisWindow->mapToGlobal(p));
-
- p = item->mapFromScene(p);
-@@ -8864,7 +8865,8 @@
- if (item) {
- p = item->mapToScene(point);
--
-- if (item->window() != window())
-- p = window()->mapFromGlobal(item->window()->mapToGlobal(p));
-+ const auto *itemWindow = item->window();
-+ const auto *thisWindow = window();
-+ if (thisWindow && itemWindow && itemWindow != thisWindow)
-+ p = thisWindow->mapFromGlobal(itemWindow->mapToGlobal(p));
- }
- return mapFromScene(p);
---- a/tests/auto/quick/qquickitem2/data/mapCoordinatesWithWindows.qml
-+++ b/tests/auto/quick/qquickitem2/data/mapCoordinatesWithWindows.qml
-@@ -49,3 +49,14 @@
- }
- }
-+
-+ property Item itemWithoutWindowA: Item {
-+ x: 20; y: 20
-+ }
-+ property Item itemWithoutWindowB: Item {
-+ x: 40; y: 40
-+ Item {
-+ objectName: "childItemWithoutWindow"
-+ x: 30; y: 30
-+ }
-+ }
- }
---- a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp
-+++ b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp
-@@ -2884,4 +2884,31 @@
- QCOMPARE(childItemInChildWindow->mapFromItem(childItemInOtherWindow, {0, 0}),
- globalItemOffset(childItemInOtherWindow, childItemInChildWindow));
-+
-+ // If one or both of the items are not in a scene (yet), they are assumed
-+ // to eventually be in the same scene.
-+
-+ auto *itemWithoutWindowA = root->property("itemWithoutWindowA").value<QQuickItem*>();
-+ QVERIFY(itemWithoutWindowA);
-+ auto *itemWithoutWindowB = root->property("itemWithoutWindowB").value<QQuickItem*>();
-+ QVERIFY(itemWithoutWindowB);
-+ auto *childItemWithoutWindow = itemWithoutWindowB->findChild<QQuickItem*>("childItemWithoutWindow");
-+ QVERIFY(childItemWithoutWindow);
-+
-+ QPoint itemWithoutWindowAPos = itemWithoutWindowA->position().toPoint();
-+ QPoint itemWithoutWindowBPos = itemWithoutWindowB->position().toPoint();
-+
-+ QCOMPARE(itemWithoutWindowA->mapToItem(childItemWithoutWindow, {0, 0}),
-+ itemWithoutWindowAPos - (itemWithoutWindowBPos + childItemWithoutWindow->position()));
-+ QCOMPARE(itemWithoutWindowA->mapFromItem(childItemWithoutWindow, {0, 0}),
-+ (itemWithoutWindowBPos + childItemWithoutWindow->position()) - itemWithoutWindowAPos);
-+
-+ QCOMPARE(itemWithoutWindowA->mapToItem(childItem, {0, 0}),
-+ itemWithoutWindowAPos - itemPos);
-+ QCOMPARE(itemWithoutWindowA->mapFromItem(childItem, {0, 0}),
-+ itemPos - itemWithoutWindowAPos);
-+ QCOMPARE(childItem->mapToItem(itemWithoutWindowA, {0, 0}),
-+ itemPos - itemWithoutWindowAPos);
-+ QCOMPARE(childItem->mapFromItem(itemWithoutWindowA, {0, 0}),
-+ itemWithoutWindowAPos - itemPos);
- }
-
diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129797.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129797.patch
deleted file mode 100644
index e43e65c992d6..000000000000
--- a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129797.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-https://bugs.gentoo.org/941172
-https://bugs.kde.org/show_bug.cgi?id=494281
-https://bugreports.qt.io/browse/QTBUG-129797
-https://codereview.qt-project.org/c/qt/qtdeclarative/+/596457
---- a/src/qmlcompiler/qqmljscodegenerator.cpp
-+++ b/src/qmlcompiler/qqmljscodegenerator.cpp
-@@ -78,6 +78,6 @@
- return u"QQmlPrivate::compositeListMetaType(aotContext->compilationUnit, "_s
- + (m_jsUnitGenerator->hasStringId(elementName)
-- ? QString::number(m_jsUnitGenerator->getStringId(elementName))
-- : u'"' + elementName + u'"') + u")"_s;
-+ ? QString::number(m_jsUnitGenerator->getStringId(elementName)) + u')'
-+ : u"QStringLiteral(\"%1\"))"_s.arg(elementName));
- }
-
-@@ -86,6 +86,6 @@
- return u"QQmlPrivate::compositeMetaType(aotContext->compilationUnit, "_s
- + (m_jsUnitGenerator->hasStringId(elementName)
-- ? QString::number(m_jsUnitGenerator->getStringId(elementName))
-- : u'"' + elementName + u'"') + u")"_s;
-+ ? QString::number(m_jsUnitGenerator->getStringId(elementName)) + u')'
-+ : u"QStringLiteral(\"%1\"))"_s.arg(elementName));
- }
-
diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-130767.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-130767.patch
deleted file mode 100644
index aefc46bd3604..000000000000
--- a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-130767.patch
+++ /dev/null
@@ -1,255 +0,0 @@
-https://bugreports.qt.io/browse/QTBUG-130767
-https://bugs.kde.org/show_bug.cgi?id=494804
-https://codereview.qt-project.org/c/qt/qtdeclarative/+/604180
-(+required https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=104b0d6e88)
---- a/src/qml/jsruntime/qv4qobjectwrapper_p.h
-+++ b/src/qml/jsruntime/qv4qobjectwrapper_p.h
-@@ -224,2 +224,15 @@
-
-+// We generally musn't pass ReturnedValue as arguments to other functions.
-+// In this case, we do it solely for marking purposes so it's fine.
-+inline void markIfPastMarkWeakValues(ExecutionEngine *engine, ReturnedValue rv)
-+{
-+ const auto gcState = engine->memoryManager->gcStateMachine->state;
-+ if (gcState != GCStateMachine::Invalid && gcState >= GCState::MarkWeakValues) {
-+ QV4::WriteBarrier::markCustom(engine, [rv](QV4::MarkStack *ms) {
-+ auto *m = StaticValue::fromReturnedValue(rv).m();
-+ m->mark(ms);
-+ });
-+ }
-+}
-+
- inline ReturnedValue QObjectWrapper::wrap(ExecutionEngine *engine, QObject *object)
-@@ -235,3 +248,5 @@
-
-- return wrap_slowPath(engine, object);
-+ const auto rv = wrap_slowPath(engine, object);
-+ markIfPastMarkWeakValues(engine, rv);
-+ return rv;
- }
-@@ -244,3 +259,5 @@
-
-- return wrapConst_slowPath(engine, object);
-+ const auto rv = wrapConst_slowPath(engine, object);
-+ markIfPastMarkWeakValues(engine, rv);
-+ return rv;
- }
---- a/src/qml/memory/qv4mm.cpp
-+++ b/src/qml/memory/qv4mm.cpp
-@@ -62,2 +62,4 @@
- Q_DECLARE_LOGGING_CATEGORY(lcGcAllocatorStats)
-+Q_LOGGING_CATEGORY(lcGcStateTransitions, "qt.qml.gc.stateTransitions")
-+Q_DECLARE_LOGGING_CATEGORY(lcGcStateTransitions)
-
-@@ -682,3 +684,3 @@
- that->mm->engine->isGCOngoing = true;
-- return MarkGlobalObject;
-+ return GCState::MarkGlobalObject;
- }
-@@ -688,3 +690,3 @@
- that->mm->engine->markObjects(that->mm->m_markStack.get());
-- return MarkJSStack;
-+ return GCState::MarkJSStack;
- }
-@@ -694,3 +696,3 @@
- that->mm->collectFromJSStack(that->mm->markStack());
-- return InitMarkPersistentValues;
-+ return GCState::InitMarkPersistentValues;
- }
-@@ -700,5 +702,5 @@
- if (!that->mm->m_persistentValues)
-- return InitMarkWeakValues; // no persistent values to mark
-+ return GCState::InitMarkWeakValues; // no persistent values to mark
- stateData = GCIteratorStorage { that->mm->m_persistentValues->begin() };
-- return MarkPersistentValues;
-+ return GCState::MarkPersistentValues;
- }
-@@ -719,3 +721,3 @@
- if (wasDrainNecessary(markStack, that->deadline) && that->deadline.hasExpired())
-- return MarkPersistentValues;
-+ return GCState::MarkPersistentValues;
- PersistentValueStorage::Iterator& it = get<GCIteratorStorage>(stateData).it;
-@@ -724,3 +726,3 @@
- if (!it.p)
-- return InitMarkWeakValues;
-+ return GCState::InitMarkWeakValues;
- if (Managed *m = (*it).as<Managed>())
-@@ -729,3 +731,3 @@
- }
-- return MarkPersistentValues;
-+ return GCState::MarkPersistentValues;
- }
-@@ -735,3 +737,3 @@
- stateData = GCIteratorStorage { that->mm->m_weakValues->begin() };
-- return MarkWeakValues;
-+ return GCState::MarkWeakValues;
- }
-@@ -742,3 +744,3 @@
- if (wasDrainNecessary(markStack, that->deadline) && that->deadline.hasExpired())
-- return MarkWeakValues;
-+ return GCState::MarkWeakValues;
- PersistentValueStorage::Iterator& it = get<GCIteratorStorage>(stateData).it;
-@@ -747,3 +749,3 @@
- if (!it.p)
-- return MarkDrain;
-+ return GCState::MarkDrain;
- QObjectWrapper *qobjectWrapper = (*it).as<QObjectWrapper>();
-@@ -768,3 +770,3 @@
- }
-- return MarkWeakValues;
-+ return GCState::MarkWeakValues;
- }
-@@ -775,3 +777,3 @@
- that->mm->markStack()->drain();
-- return MarkReady;
-+ return GCState::MarkReady;
- }
-@@ -779,4 +781,4 @@
- return drainState == MarkStack::DrainState::Complete
-- ? MarkReady
-- : MarkDrain;
-+ ? GCState::MarkReady
-+ : GCState::MarkDrain;
- }
-@@ -786,3 +788,3 @@
- //Possibility to do some clean up, stat printing, etc...
-- return InitCallDestroyObjects;
-+ return GCState::InitCallDestroyObjects;
- }
-@@ -803,5 +805,5 @@
- if (!that->mm->m_weakValues)
-- return FreeWeakMaps; // no need to call destroy objects
-+ return GCState::FreeWeakMaps; // no need to call destroy objects
- stateData = GCIteratorStorage { that->mm->m_weakValues->begin() };
-- return CallDestroyObjects;
-+ return GCState::CallDestroyObjects;
- }
-@@ -818,3 +820,3 @@
- if (!it.p)
-- return FreeWeakMaps;
-+ return GCState::FreeWeakMaps;
- Managed *m = (*it).managed();
-@@ -828,3 +830,3 @@
- }
-- return CallDestroyObjects;
-+ return GCState::CallDestroyObjects;
- }
-@@ -845,3 +847,3 @@
- freeWeakMaps(that->mm);
-- return FreeWeakSets;
-+ return GCState::FreeWeakSets;
- }
-@@ -863,3 +865,3 @@
- freeWeakSets(that->mm);
-- return HandleQObjectWrappers;
-+ return GCState::HandleQObjectWrappers;
- }
-@@ -869,3 +871,3 @@
- that->mm->cleanupDeletedQObjectWrappersInSweep();
-- return DoSweep;
-+ return GCState::DoSweep;
- }
-@@ -893,3 +895,3 @@
-
-- return Invalid;
-+ return GCState::Invalid;
- }
-@@ -1493,4 +1495,8 @@
- }
-+ qCDebug(lcGcStateTransitions) << "Preparing to execute the"
-+ << QMetaEnum::fromType<GCState>().key(state) << "state";
- GCStateInfo& stateInfo = stateInfoMap[int(state)];
- state = stateInfo.execute(this, stateData);
-+ qCDebug(lcGcStateTransitions) << "Transitioning to the"
-+ << QMetaEnum::fromType<GCState>().key(state) << "state";
- if (stateInfo.breakAfter)
-@@ -1507,4 +1513,8 @@
- while (state != GCState::Invalid) {
-+ qCDebug(lcGcStateTransitions) << "Preparing to execute the"
-+ << QMetaEnum::fromType<GCState>().key(state) << "state";
- GCStateInfo& stateInfo = stateInfoMap[int(state)];
- state = stateInfo.execute(this, stateData);
-+ qCDebug(lcGcStateTransitions) << "Transitioning to the"
-+ << QMetaEnum::fromType<GCState>().key(state) << "state";
- }
-@@ -1516 +1526,3 @@
- QT_END_NAMESPACE
-+
-+#include "moc_qv4mm_p.cpp"
---- a/src/qml/memory/qv4mm_p.h
-+++ b/src/qml/memory/qv4mm_p.h
-@@ -30,22 +30,2 @@
-
--enum GCState {
-- MarkStart = 0,
-- MarkGlobalObject,
-- MarkJSStack,
-- InitMarkPersistentValues,
-- MarkPersistentValues,
-- InitMarkWeakValues,
-- MarkWeakValues,
-- MarkDrain,
-- MarkReady,
-- InitCallDestroyObjects,
-- CallDestroyObjects,
-- FreeWeakMaps,
-- FreeWeakSets,
-- HandleQObjectWrappers,
-- DoSweep,
-- Invalid,
-- Count,
--};
--
- struct GCData { virtual ~GCData(){};};
-@@ -55,11 +35,39 @@
- };
--struct GCStateMachine;
--
--struct GCStateInfo {
-- using ExtraData = std::variant<std::monostate, GCIteratorStorage>;
-- GCState (*execute)(GCStateMachine *, ExtraData &) = nullptr; // Function to execute for this state, returns true if ready to transition
-- bool breakAfter{false};
--};
-
- struct GCStateMachine {
-+ Q_GADGET_EXPORT(Q_QML_EXPORT)
-+
-+public:
-+ enum GCState {
-+ MarkStart = 0,
-+ MarkGlobalObject,
-+ MarkJSStack,
-+ InitMarkPersistentValues,
-+ MarkPersistentValues,
-+ InitMarkWeakValues,
-+ MarkWeakValues,
-+ MarkDrain,
-+ MarkReady,
-+ InitCallDestroyObjects,
-+ CallDestroyObjects,
-+ FreeWeakMaps,
-+ FreeWeakSets,
-+ HandleQObjectWrappers,
-+ DoSweep,
-+ Invalid,
-+ Count,
-+ };
-+ Q_ENUM(GCState)
-+
-+ struct StepTiming {
-+ qint64 rolling_sum = 0;
-+ qint64 count = 0;
-+ };
-+
-+ struct GCStateInfo {
-+ using ExtraData = std::variant<std::monostate, GCIteratorStorage>;
-+ GCState (*execute)(GCStateMachine *, ExtraData &) = nullptr; // Function to execute for this state, returns true if ready to transition
-+ bool breakAfter{false};
-+ };
-+
- using ExtraData = GCStateInfo::ExtraData;
-@@ -96,2 +104,4 @@
-
-+using GCState = GCStateMachine::GCState;
-+using GCStateInfo = GCStateMachine::GCStateInfo;
-
diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.8.0-r7.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.8.0-r7.ebuild
deleted file mode 100644
index 21baad2c9b84..000000000000
--- a/dev-qt/qtdeclarative/qtdeclarative-6.8.0-r7.ebuild
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 2021-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-
-# behaves very badly when qtdeclarative is not already installed, also
-# other more minor issues (installs junk, sandbox/offscreen issues)
-QT6_RESTRICT_TESTS=1
-
-inherit python-any-r1 qt6-build
-
-DESCRIPTION="Qt Declarative (Quick 2)"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-fi
-
-IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets"
-
-RDEPEND="
- ~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=]
- >=dev-qt/qtbase-${PV}-r1
- qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 )
- svg? ( ~dev-qt/qtsvg-${PV}:6 )
-"
-DEPEND="
- ${RDEPEND}
- vulkan? ( dev-util/vulkan-headers )
-"
-BDEPEND="
- ${PYTHON_DEPS}
- ~dev-qt/qtshadertools-${PV}:6
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.7.3-QTBUG-129622.patch
- "${FILESDIR}"/${PN}-6.8.0-QTBUG-125053.patch
- "${FILESDIR}"/${PN}-6.8.0-QTBUG-129797.patch
- "${FILESDIR}"/${PN}-6.8.0-QTBUG-129500.patch
- "${FILESDIR}"/${PN}-6.8.0-QTBUG-130767.patch
-)
-
-src_configure() {
- local mycmakeargs=(
- $(cmake_use_find_package qmlls Qt6LanguageServerPrivate)
- $(cmake_use_find_package sql Qt6Sql)
- $(cmake_use_find_package svg Qt6Svg)
- $(qt_feature jit qml_jit)
- $(qt_feature network qml_network)
- $(qt_feature ssl qml_ssl)
- )
-
- qt6-build_src_configure
-}
-
-src_install() {
- qt6-build_src_install
-
- if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675
- eerror "${CATEGORY}/${PF} seems to have been improperly built and"
- eerror "install was aborted to protect the system. Possibly(?) due"
- eerror "to a rare portage ordering bug. If using portage, try:"
- eerror " emerge -1 qtshadertools:6 qtdeclarative:6"
- eerror "If that did not resolve the issue, please provide build.log"
- eerror "on https://bugs.gentoo.org/940675"
- die "aborting due to incomplete/broken build (see above)"
- fi
-}