Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kf6-kitemmodels for openSUSE:Factory
checked in at 2024-07-14 08:49:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kitemmodels (Old)
and /work/SRC/openSUSE:Factory/.kf6-kitemmodels.new.17339 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-kitemmodels"
Sun Jul 14 08:49:57 2024 rev:5 rq:1187123 version:6.4.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kitemmodels/kf6-kitemmodels.changes
2024-06-09 20:22:49.067117535 +0200
+++
/work/SRC/openSUSE:Factory/.kf6-kitemmodels.new.17339/kf6-kitemmodels.changes
2024-07-14 08:53:10.994333128 +0200
@@ -1,0 +2,12 @@
+Tue Jul 9 09:41:49 UTC 2024 - Christophe Marin <[email protected]>
+
+- Update to 6.4.0
+ * New feature release
+ * For more details please see:
+ * https://kde.org/announcements/frameworks/6/6.4.0
+- Changes since 6.3.0:
+ * kdescendantsproxymodel: fix nested signals on source model reset
+ * kdescendantsproxymodeltest: use model tester in the tests where it passes
+ * Port kdescendantsproxymodeltest to std::unique_ptr
+
+-------------------------------------------------------------------
Old:
----
kitemmodels-6.3.0.tar.xz
kitemmodels-6.3.0.tar.xz.sig
New:
----
kitemmodels-6.4.0.tar.xz
kitemmodels-6.4.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kf6-kitemmodels.spec ++++++
--- /var/tmp/diff_new_pack.MK8lYP/_old 2024-07-14 08:53:11.690358559 +0200
+++ /var/tmp/diff_new_pack.MK8lYP/_new 2024-07-14 08:53:11.694358706 +0200
@@ -19,14 +19,14 @@
%define qt6_version 6.6.0
%define rname kitemmodels
-# Full KF6 version (e.g. 6.3.0)
+# Full KF6 version (e.g. 6.4.0)
%{!?_kf6_version: %global _kf6_version %{version}}
# Last major and minor KF6 version (e.g. 6.0)
%{!?_kf6_bugfix_version: %define _kf6_bugfix_version %(echo %{_kf6_version} |
awk -F. '{print $1"."$2}')}
%bcond_with python
%bcond_without released
Name: kf6-kitemmodels
-Version: 6.3.0
+Version: 6.4.0
Release: 0
Summary: Set of item models extending the Qt model-view framework
License: LGPL-2.1-or-later
++++++ kitemmodels-6.3.0.tar.xz -> kitemmodels-6.4.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kitemmodels-6.3.0/CMakeLists.txt
new/kitemmodels-6.4.0/CMakeLists.txt
--- old/kitemmodels-6.3.0/CMakeLists.txt 2024-05-31 15:26:29.000000000
+0200
+++ new/kitemmodels-6.4.0/CMakeLists.txt 2024-07-05 22:07:45.000000000
+0200
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.16)
-set(KF_VERSION "6.3.0") # handled by release scripts
+set(KF_VERSION "6.4.0") # handled by release scripts
project(KItemModels VERSION ${KF_VERSION})
include(FeatureSummary)
-find_package(ECM 6.3.0 NO_MODULE)
+find_package(ECM 6.4.0 NO_MODULE)
set_package_properties(ECM PROPERTIES
TYPE REQUIRED
DESCRIPTION "Extra CMake Modules."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kitemmodels-6.3.0/autotests/kdescendantsproxymodeltest.cpp
new/kitemmodels-6.4.0/autotests/kdescendantsproxymodeltest.cpp
--- old/kitemmodels-6.3.0/autotests/kdescendantsproxymodeltest.cpp
2024-05-31 15:26:29.000000000 +0200
+++ new/kitemmodels-6.4.0/autotests/kdescendantsproxymodeltest.cpp
2024-07-05 22:07:45.000000000 +0200
@@ -6,7 +6,9 @@
#include "kdescendantsproxymodel.h"
+#include <QAbstractItemModelTester>
#include <QAbstractListModel>
+#include <QIdentityProxyModel>
#include <QSignalSpy>
#include <QStandardItemModel>
#include <QTest>
@@ -247,7 +249,7 @@
class tst_KDescendantProxyModel : public QObject
{
Q_OBJECT
- QAbstractItemModel *createTree(const QString &prefix)
+ std::unique_ptr<QStandardItemModel> createTree(const QString &prefix)
{
/*
* |- parent1
@@ -257,7 +259,7 @@
* |- child1
* `- child2
*/
- QStandardItemModel *model = new QStandardItemModel(this);
+ auto model = std::make_unique<QStandardItemModel>(this);
for (int i = 0; i < 2; i++) {
QStandardItem *item = new QStandardItem();
item->setData(QString(prefix + QString::number(i)),
Qt::DisplayRole);
@@ -273,6 +275,7 @@
private Q_SLOTS:
void testResetModelContent();
+ void testSourceModelReset();
void testChangeSeparator();
void testChangeInvisibleSeparator();
void testRemoveSeparator();
@@ -291,16 +294,21 @@
{
auto model1 = createTree("FirstModel");
KDescendantsProxyModel proxy;
- proxy.setSourceModel(model1);
+ new QAbstractItemModelTester(&proxy);
+ proxy.setSourceModel(model1.get());
QCOMPARE(proxy.rowCount(), 6);
{
- QStringList results = QStringList() << "FirstModel0"
- << "FirstModel0-0"
- << "FirstModel0-1"
- << "FirstModel1"
- << "FirstModel1-0"
- << "FirstModel1-1";
+ // clang-format off
+ const QStringList results {
+ "FirstModel0",
+ "FirstModel0-0",
+ "FirstModel0-1",
+ "FirstModel1",
+ "FirstModel1-0",
+ "FirstModel1-1"
+ };
+ // clang-format on
QCOMPARE(proxy.rowCount(), results.count());
for (int i = 0; i < proxy.rowCount(); i++) {
QCOMPARE(proxy.index(i, 0).data(Qt::DisplayRole).toString(),
results[i]);
@@ -308,21 +316,70 @@
}
auto model2 = createTree("SecondModel");
{
- proxy.setSourceModel(model2);
- QStringList results = QStringList() << "SecondModel0"
- << "SecondModel0-0"
- << "SecondModel0-1"
- << "SecondModel1"
- << "SecondModel1-0"
- << "SecondModel1-1";
+ proxy.setSourceModel(model2.get());
+ // clang-format off
+ const QStringList results {
+ "SecondModel0",
+ "SecondModel0-0",
+ "SecondModel0-1",
+ "SecondModel1",
+ "SecondModel1-0",
+ "SecondModel1-1"
+ };
+ // clang-format on
QCOMPARE(proxy.rowCount(), results.count());
for (int i = 0; i < proxy.rowCount(); i++) {
QCOMPARE(proxy.index(i, 0).data(Qt::DisplayRole).toString(),
results[i]);
}
}
+}
+
+/// Tests that a reset in the source model results in data getting changed
+void tst_KDescendantProxyModel::testSourceModelReset()
+{
+ auto model1 = createTree("FirstModel");
+ KDescendantsProxyModel proxy;
+ new QAbstractItemModelTester(&proxy); // ensure no nested signals
+ QIdentityProxyModel identityProxy;
+ identityProxy.setSourceModel(model1.get());
+ proxy.setSourceModel(&identityProxy);
+ QCOMPARE(proxy.rowCount(), 6);
- delete model2;
- delete model1;
+ {
+ // clang-format off
+ const QStringList results {
+ "FirstModel0",
+ "FirstModel0-0",
+ "FirstModel0-1",
+ "FirstModel1",
+ "FirstModel1-0",
+ "FirstModel1-1"
+ };
+ // clang-format on
+ QCOMPARE(proxy.rowCount(), results.count());
+ for (int i = 0; i < proxy.rowCount(); i++) {
+ QCOMPARE(proxy.index(i, 0).data(Qt::DisplayRole).toString(),
results[i]);
+ }
+ }
+
+ auto model2 = createTree("SecondModel");
+ {
+ identityProxy.setSourceModel(model2.get()); // This makes
QIdentityProxyModel emit a reset
+ // clang-format off
+ const QStringList results {
+ "SecondModel0",
+ "SecondModel0-0",
+ "SecondModel0-1",
+ "SecondModel1",
+ "SecondModel1-0",
+ "SecondModel1-1"
+ };
+ // clang-format on
+ QCOMPARE(proxy.rowCount(), results.count());
+ for (int i = 0; i < proxy.rowCount(); i++) {
+ QCOMPARE(proxy.index(i, 0).data(Qt::DisplayRole).toString(),
results[i]);
+ }
+ }
}
/// tests that change separator works, as well as emits the relevant data
changed signals
@@ -330,7 +387,8 @@
{
auto model1 = createTree("FirstModel");
KDescendantsProxyModel proxy;
- proxy.setSourceModel(model1);
+ new QAbstractItemModelTester(&proxy);
+ proxy.setSourceModel(model1.get());
proxy.setDisplayAncestorData(true);
QSignalSpy dataChangedSpy(&proxy, &QAbstractItemModel::dataChanged);
QCOMPARE(proxy.rowCount(), 6);
@@ -360,8 +418,6 @@
QCOMPARE(proxy.index(i, 0).data(Qt::DisplayRole).toString(),
results[i]);
}
}
-
- delete model1;
}
/// tests that change separator that is not shown does not change the content
and does not
@@ -370,7 +426,8 @@
{
auto model1 = createTree("FirstModel");
KDescendantsProxyModel proxy;
- proxy.setSourceModel(model1);
+ new QAbstractItemModelTester(&proxy);
+ proxy.setSourceModel(model1.get());
QSignalSpy dataChangedSpy(&proxy, &QAbstractItemModel::dataChanged);
QCOMPARE(proxy.rowCount(), 6);
{
@@ -399,8 +456,6 @@
QCOMPARE(proxy.index(i, 0).data(Qt::DisplayRole).toString(),
results[i]);
}
}
-
- delete model1;
}
/// tests that data is properly updated when separator is removed/hidden
@@ -409,7 +464,8 @@
{
auto model1 = createTree("FirstModel");
KDescendantsProxyModel proxy;
- proxy.setSourceModel(model1);
+ new QAbstractItemModelTester(&proxy);
+ proxy.setSourceModel(model1.get());
QSignalSpy dataChangedSpy(&proxy, &QAbstractItemModel::dataChanged);
proxy.setDisplayAncestorData(true);
QCOMPARE(dataChangedSpy.count(), 1);
@@ -447,8 +503,9 @@
{
auto model1 = createTree("FirstModel");
KDescendantsProxyModel proxy;
+ new QAbstractItemModelTester(&proxy);
proxy.setExpandsByDefault(false);
- proxy.setSourceModel(model1);
+ proxy.setSourceModel(model1.get());
QCOMPARE(proxy.rowCount(), 2);
{
@@ -488,7 +545,7 @@
auto model2 = createTree("SecondModel");
{
- proxy.setSourceModel(model2);
+ proxy.setSourceModel(model2.get());
QModelIndex idx = model2->index(0, 0);
proxy.expandSourceIndex(idx);
idx = model2->index(1, 0);
@@ -504,17 +561,14 @@
QCOMPARE(proxy.index(i, 0).data(Qt::DisplayRole).toString(),
results[i]);
}
}
-
- delete model2;
- delete model1;
}
void tst_KDescendantProxyModel::testInsertInCollapsedModel()
{
- QStandardItemModel *model1 = static_cast<QStandardItemModel
*>(createTree("Model"));
+ auto model1 = createTree("Model");
KDescendantsProxyModel proxy;
proxy.setExpandsByDefault(false);
- proxy.setSourceModel(model1);
+ proxy.setSourceModel(model1.get());
QCOMPARE(proxy.rowCount(), 2);
QSignalSpy insertSpy(&proxy, &QAbstractItemModel::rowsInserted);
@@ -551,10 +605,10 @@
void tst_KDescendantProxyModel::testRemoveInCollapsedModel()
{
- QStandardItemModel *model1 = static_cast<QStandardItemModel
*>(createTree("Model"));
+ auto model1 = createTree("Model");
KDescendantsProxyModel proxy;
proxy.setExpandsByDefault(false);
- proxy.setSourceModel(model1);
+ proxy.setSourceModel(model1.get());
QCOMPARE(proxy.rowCount(), 2);
QSignalSpy removeSpy(&proxy, &QAbstractItemModel::rowsRemoved);
@@ -678,6 +732,7 @@
model->insert(QModelIndex(), 0, QStringLiteral("Row0"));
model->insert(QModelIndex(), 0, QStringLiteral("Row1"));
KDescendantsProxyModel proxy;
+ new QAbstractItemModelTester(&proxy);
proxy.setSourceModel(model);
QCOMPARE(proxy.rowCount(), 0);
}
@@ -695,6 +750,7 @@
model->getRootNode()->knownChildren = 2;
KDescendantsProxyModel proxy;
+ new QAbstractItemModelTester(&proxy);
proxy.setSourceModel(model);
proxy.setExpandsByDefault(false);
QCOMPARE(proxy.rowCount(), 2);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kitemmodels-6.3.0/src/core/kdescendantsproxymodel.cpp
new/kitemmodels-6.4.0/src/core/kdescendantsproxymodel.cpp
--- old/kitemmodels-6.3.0/src/core/kdescendantsproxymodel.cpp 2024-05-31
15:26:29.000000000 +0200
+++ new/kitemmodels-6.4.0/src/core/kdescendantsproxymodel.cpp 2024-07-05
22:07:45.000000000 +0200
@@ -1202,6 +1202,7 @@
{
Q_Q(KDescendantsProxyModel);
q->beginResetModel();
+ m_relayouting = true;
}
void KDescendantsProxyModelPrivate::sourceModelReset()
@@ -1212,6 +1213,7 @@
m_pendingParents.append(QModelIndex());
scheduleProcessPendingParents();
}
+ m_relayouting = false;
q->endResetModel();
}