diff options
Diffstat (limited to 'dev-qt/qtdeclarative')
6 files changed, 0 insertions, 627 deletions
diff --git a/dev-qt/qtdeclarative/Manifest b/dev-qt/qtdeclarative/Manifest index fca720e8ed26..37b6c8a4e34a 100644 --- a/dev-qt/qtdeclarative/Manifest +++ b/dev-qt/qtdeclarative/Manifest @@ -1,15 +1,8 @@ AUX qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch 1566 BLAKE2B b6436c9be0a7de092635e1fc3999c3142fc3e916cbcc69f472691bbd559f611b4d5741f3627c47162a5ac86126382507add72a25a121235e856b1de802ee19be SHA512 dd5193f8d8a051238dabf63306cc77e3a5696fc12241c27f35cadfd30763ddfeb2af7d640849dcc7a810b7087173b8e9af17341ea1b68440906f2c2f1f96fee3 -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 DIST qtdeclarative-5.15.16-gentoo-kde-1.tar.xz 19148 BLAKE2B ebdc17253887c5b22816c3bdcd07f30274c3aa4680088ceee7abce8896a17aff7272e5a4bba576e1ad0372b7d1d80322c6890e1b5343eaab915a5355da659c5b SHA512 3fbbb7b06c67d31a9074737f68437a9e920e4b816c78c78dec2e700e339f6f8ad0b244a1eb78d7521133873b17015861a84057a890887d4dfbef91699428d8c6 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.1.tar.xz 36463572 BLAKE2B ac8b9d37c28ba22c266785cfe60bc0d405edb85f260b41bb01c43fd38dbeb51054d7f3f390bb9c4e78656dda3b9d5c7b945dba8ee897add0a2dbb398cc3f8a51 SHA512 f9548ee58ac81eac72f1763647a9f28c16e7ab73bf6bc828574e5194d5209c53440f834a721e9bb74f50d4e437ce2de6eb7c7a13acd8602b3080e95d8929e674 EBUILD qtdeclarative-5.15.16.ebuild 1530 BLAKE2B 24576184b211b27759546cf92467ed52fa9ecc428e7bc8eff0a90cf5edadd9f5fc32e671e7d862580c6da85991fa6af5f9b969b1237b1105e8cf4b695348084a SHA512 e07911a27b33a55f81eeb5e4bdf159c2733cedf2cda92d496b64fda61050136014e7dc1e0d4b28c5fe1651a915bd58851a99b99478b810be7252058fec2d5db4 -EBUILD qtdeclarative-6.7.2.ebuild 1168 BLAKE2B aaa0e93d2da030559e8ddb9fd69b7a25c5bb4e205646eaed0bbb7161f40316424e1e024a172dcfc775ce0ef6b7404a1b05b49e31590400b766504e7a1d97ef17 SHA512 5ba4a2d995c802216d36006d685222f5e963fd82a172f16cd35cfcee9c56a49b0ea7fcc102a8be7955c5e03d1ca3bb62607f48bce639af2b9a79e30fd8db03af -EBUILD qtdeclarative-6.7.3-r4.ebuild 1906 BLAKE2B a4abc10583a52bc79aae8ebed3908ac2c1b98cb47c6ffc68abbaf61c9fd622bf84350bf902b2940879e92a1fd488af94b9fc3bff384aa2e72cd63d6c35d166ab SHA512 b03bd4eecfd5e609228d7d48020a970d240e8aac165f2aae59b02ec76f3a02982024abb0d42f3c1a74f955d3ad9090e8214cd4697fea0b62f6d1e88e50365d0a EBUILD qtdeclarative-6.8.1.ebuild 1726 BLAKE2B eff8b8e4187cd94f483317027bede4adbbcfc53074983e92ae35b6b25542cd8e440798ae22943c9697ded2d3f413f00fbde4a8d656932b3c26e8ccf281eafedb SHA512 30977214a69db87ccaa5a02784f0b5c85aa210c8cd15afe19eadbaa6810a6abb011975e3bc61e9c83e57857db975a1112e566176d1b84d0e2d589bcdc1866ff7 EBUILD qtdeclarative-6.8.9999.ebuild 1732 BLAKE2B c4360321f3dba2b759215f8d82f38e1551653ed411761441419b3a6d4e198c8cd2ce91affdbcc6de7eb26b13c9a7944ff39f4b318bd0575ba17b6579179f9eca SHA512 0bfc28e5de34abca6dbc28f6d775ba06e312be95426a8bfbcd06955bdc2152f1773ee5f9ae3ecda124101ea2d64aa58ad6abc1aa373bbad001aadb888bb79785 EBUILD qtdeclarative-6.9.9999.ebuild 1732 BLAKE2B c4360321f3dba2b759215f8d82f38e1551653ed411761441419b3a6d4e198c8cd2ce91affdbcc6de7eb26b13c9a7944ff39f4b318bd0575ba17b6579179f9eca SHA512 0bfc28e5de34abca6dbc28f6d775ba06e312be95426a8bfbcd06955bdc2152f1773ee5f9ae3ecda124101ea2d64aa58ad6abc1aa373bbad001aadb888bb79785 diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.7.3-QTBUG-125053.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.7.3-QTBUG-125053.patch deleted file mode 100644 index c1aa74599923..000000000000 --- a/dev-qt/qtdeclarative/files/qtdeclarative-6.7.3-QTBUG-125053.patch +++ /dev/null @@ -1,259 +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 ---- 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> - -@@ -168,5 +170,4 @@ - , m_incubatorCleanupScheduled(false) - , m_waitingToFetchMore(false) -- , m_maybeResetRoleNames(false) - , m_cacheItems(nullptr) - , m_items(nullptr) -@@ -373,6 +374,4 @@ - qmlobject_connect(aim, QAbstractItemModel, SIGNAL(layoutChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)), - q, QQmlDelegateModel, SLOT(_q_layoutChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint))); -- QObject::connect(aim, &QAbstractItemModel::modelReset, q, &QQmlDelegateModel::handleModelReset); -- QObject::connect(aim, &QAbstractItemModel::layoutChanged, q, &QQmlDelegateModel::_q_layoutChanged); - } - -@@ -404,6 +403,4 @@ - QObject::disconnect(aim, SIGNAL(layoutChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint)), - q, SLOT(_q_layoutChanged(QList<QPersistentModelIndex>,QAbstractItemModel::LayoutChangeHint))); -- QObject::disconnect(aim, &QAbstractItemModel::modelReset, q, &QQmlDelegateModel::handleModelReset); -- QObject::disconnect(aim, &QAbstractItemModel::layoutChanged, q, &QQmlDelegateModel::_q_layoutChanged); - } - -@@ -429,4 +426,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); -+ } - } - -@@ -1915,26 +1927,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); - } - -@@ -1946,21 +1955,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.7.3-QTBUG-129165.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.7.3-QTBUG-129165.patch deleted file mode 100644 index 78ea5f72a341..000000000000 --- a/dev-qt/qtdeclarative/files/qtdeclarative-6.7.3-QTBUG-129165.patch +++ /dev/null @@ -1,162 +0,0 @@ -Recommended backport from 6.8.0 to prevent a crash with kcm_pulseaudio. -https://bugreports.qt.io/browse/QTBUG-129165 -https://bugs.kde.org/show_bug.cgi?id=493266 -(kde bug mentions is for 6.8.0, but was seemingly the -rc without the fix) ---- a/src/quick/items/qquickitemview.cpp -+++ b/src/quick/items/qquickitemview.cpp -@@ -11,4 +11,5 @@ - - Q_LOGGING_CATEGORY(lcItemViewDelegateLifecycle, "qt.quick.itemview.lifecycle") -+Q_LOGGING_CATEGORY(lcCount, "qt.quick.itemview.count") - - // Default cacheBuffer for all views. -@@ -224,5 +225,5 @@ - if (QQmlDelegateModel *dataModel = qobject_cast<QQmlDelegateModel*>(d->model)) - QObjectPrivate::connect(dataModel, &QQmlDelegateModel::delegateChanged, d, &QQuickItemViewPrivate::applyDelegateChange); -- emit countChanged(); -+ d->emitCountChanged(); - } - emit modelChanged(); -@@ -256,5 +257,5 @@ - dataModel->setDelegate(delegate); - if (oldCount != dataModel->count()) -- emit countChanged(); -+ d->emitCountChanged(); - } - emit delegateChanged(); -@@ -1126,4 +1127,12 @@ - } - -+// Simplifies debugging of count. -+void QQuickItemViewPrivate::emitCountChanged() -+{ -+ Q_Q(QQuickItemView); -+ qCDebug(lcCount).nospace() << "about to emit countChanged for " << q << "; count changed to " << q->count(); -+ emit q->countChanged(); -+} -+ - void QQuickItemViewPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, - const QRectF &oldGeometry) -@@ -1225,5 +1234,5 @@ - } - d->moveReason = QQuickItemViewPrivate::Other; -- emit countChanged(); -+ d->emitCountChanged(); - #if QT_CONFIG(quick_viewtransitions) - if (d->transitioner && d->transitioner->populateTransition) -@@ -1488,5 +1497,5 @@ - } - if (d->model && d->model->count()) -- emit countChanged(); -+ d->emitCountChanged(); - } - -@@ -1814,5 +1823,5 @@ - - if (prevCount != itemCount) -- emit q->countChanged(); -+ emitCountChanged(); - } while (currentChanges.hasPendingChanges() || bufferedChanges.hasPendingChanges()); - storeFirstVisibleItemPosition(); -@@ -1865,4 +1874,14 @@ - // views (see tst_QQuickListView::resizeView). - if ((!isValid() && !visibleItems.size()) || q->size().isNull()) { -+ if (q->size().isNull() && hasPendingChanges()) { -+ // count() refers to the number of items in the model, not in the view -+ // (which is why we don't emit for the !visibleItems.size() case). -+ // If there are pending model changes, emit countChanged in order to -+ // support the use case of QTBUG-129165, where visible is bound to count > 0 -+ // and the ListView is in a layout with Layout.preferredHeight bound to -+ // contentHeight. This ensures that a hidden ListView will become visible. -+ emitCountChanged(); -+ } -+ - clear(); - setPosition(contentStartOffset()); -@@ -2139,5 +2158,5 @@ - updateSections(); - if (prevItemCount != itemCount) -- emit q->countChanged(); -+ emitCountChanged(); - if (!visibleAffected && viewportChanged) - updateViewport(); ---- a/src/quick/items/qquickitemview_p_p.h -+++ b/src/quick/items/qquickitemview_p_p.h -@@ -230,4 +230,6 @@ - } - -+ void emitCountChanged(); -+ - virtual QQuickItemViewAttached *getAttachedObject(const QObject *) const { return nullptr; } - ---- a/tests/auto/quick/qquicklistview2/data/visibleBoundToCountGreaterThanZero.qml -+++ b/tests/auto/quick/qquicklistview2/data/visibleBoundToCountGreaterThanZero.qml -@@ -0,0 +1,31 @@ -+import QtQuick -+import QtQuick.Layouts -+ -+ColumnLayout { -+ property alias listView: listView -+ -+ ListView { -+ id: listView -+ -+ visible: count > 0 // actual defect. countChanged never fires so this never turns true -+ -+ Layout.fillWidth: true -+ Layout.preferredHeight: contentHeight // grow with content, initially 0 -+ -+ model: ListModel { -+ id: idModel -+ } -+ -+ delegate: Text { -+ required property string name -+ text: name -+ } -+ -+ Timer { -+ running: true -+ interval: 10 -+ repeat: true -+ onTriggered: idModel.append({name:"Hello"}) -+ } -+ } -+} ---- a/tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp -+++ b/tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp -@@ -19,4 +19,6 @@ - using namespace QQuickVisualTestUtils; - -+static const int oneSecondInMs = 1000; -+ - class tst_QQuickListView2 : public QQmlDataTest - { -@@ -69,4 +71,5 @@ - - void clearObjectListModel(); -+ void visibleBoundToCountGreaterThanZero(); - - private: -@@ -1313,4 +1316,21 @@ - } - -+void tst_QQuickListView2::visibleBoundToCountGreaterThanZero() -+{ -+ QQuickView window; -+ QVERIFY(QQuickTest::showView(window, testFileUrl("visibleBoundToCountGreaterThanZero.qml"))); -+ -+ auto *listView = window.rootObject()->property("listView").value<QQuickListView *>(); -+ QVERIFY(listView); -+ -+ QSignalSpy countChangedSpy(listView, SIGNAL(countChanged())); -+ QVERIFY(countChangedSpy.isValid()); -+ -+ QTRY_COMPARE_GT_WITH_TIMEOUT(listView->count(), 1, oneSecondInMs); -+ // Using the TRY variant here as well is necessary. -+ QTRY_COMPARE_GT_WITH_TIMEOUT(countChangedSpy.count(), 1, oneSecondInMs); -+ QVERIFY(listView->isVisible()); -+} -+ - QTEST_MAIN(tst_QQuickListView2) - diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.7.3-QTBUG-129622.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.7.3-QTBUG-129622.patch deleted file mode 100644 index 3e2bc70b5c2c..000000000000 --- a/dev-qt/qtdeclarative/files/qtdeclarative-6.7.3-QTBUG-129622.patch +++ /dev/null @@ -1,84 +0,0 @@ -https://bugreports.qt.io/browse/QTBUG-129622 -https://bugs.kde.org/show_bug.cgi?id=493854 -https://codereview.qt-project.org/c/qt/qtdeclarative/+/598853 ---- a/src/quick/items/qquickitemview.cpp -+++ b/src/quick/items/qquickitemview.cpp -@@ -2481,5 +2481,7 @@ - QQuickItemPrivate::get(item->item)->setCulled(true); - } -- if (!isClearing) -+ // If deleteLater was called, the item isn't long for this world and so we shouldn't store references to it. -+ // This can happen when a Repeater is used to populate items in SwipeView's ListView contentItem. -+ if (!isClearing && !QObjectPrivate::get(item->item)->deleteLaterCalled) - unrequestedItems.insert(item->item, model->indexOf(item->item, q)); - } else if (flags & QQmlInstanceModel::Destroyed) { ---- a/tests/auto/quickcontrols/controls/data/tst_swipeview.qml -+++ b/tests/auto/quickcontrols/controls/data/tst_swipeview.qml -@@ -5,4 +5,5 @@ - import QtTest - import QtQuick.Controls -+import QtQuick.Layouts - - TestCase { -@@ -761,3 +762,61 @@ - compare(item2.x, swipeListView.width) - } -+ -+ Component { -+ id: zeroSizeSwipeViewWithRepeatersComponent -+ -+ Item { -+ objectName: "rootItem" -+ anchors.fill: parent -+ -+ property alias swipeView: swipeView -+ property int d -+ -+ Timer { -+ interval: 2 -+ running: true -+ repeat: false -+ onTriggered: d = 2 -+ } -+ -+ SwipeView { -+ id: swipeView -+ contentItem.objectName: "swipeViewListView" -+ -+ Repeater { -+ objectName: "swipeViewContentItemRepeater" -+ model: [ -+ { -+ title: d -+ } -+ ] -+ -+ delegate: GridLayout { -+ objectName: "gridLayoutDelegate" -+ -+ Repeater { -+ id: repeater -+ objectName: "delegateRepeater" -+ model: d -+ delegate: Item { -+ objectName: "delegate" + index -+ -+ required property int index -+ } -+ } -+ } -+ } -+ } -+ } -+ } -+ -+ // QTBUG-129622 -+ function test_zeroSizeSwipeViewWithRepeaters() { -+ let root = createTemporaryObject(zeroSizeSwipeViewWithRepeatersComponent, testCase) -+ verify(root) -+ -+ let swipeView = root.swipeView -+ tryCompare(root, "d", 2) -+ // Shouldn't crash when the model is changed. -+ } - } diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.7.2.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.7.2.ebuild deleted file mode 100644 index 05450ab45f3c..000000000000 --- a/dev-qt/qtdeclarative/qtdeclarative-6.7.2.ebuild +++ /dev/null @@ -1,47 +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 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=] - 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 -" - -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 -} diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.7.3-r4.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.7.3-r4.ebuild deleted file mode 100644 index 2678f1b739f3..000000000000 --- a/dev-qt/qtdeclarative/qtdeclarative-6.7.3-r4.ebuild +++ /dev/null @@ -1,68 +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 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}-r2 - 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-125053.patch - "${FILESDIR}"/${PN}-6.7.3-QTBUG-129165.patch - "${FILESDIR}"/${PN}-6.7.3-QTBUG-129622.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 -} |