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 2026-02-16 13:02:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kitemmodels (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-kitemmodels.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-kitemmodels"

Mon Feb 16 13:02:53 2026 rev:24 rq:1332937 version:6.23.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kitemmodels/kf6-kitemmodels.changes  
2026-01-12 10:16:08.132699091 +0100
+++ 
/work/SRC/openSUSE:Factory/.kf6-kitemmodels.new.1977/kf6-kitemmodels.changes    
    2026-02-16 13:05:46.221195556 +0100
@@ -1,0 +2,15 @@
+Fri Feb  6 14:25:54 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.23.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.23.0
+- Changes since 6.22.0:
+  * Update dependency version to 6.23.0
+  * Remove wrong documentation markup
+  * Fix memory leaks in unit tests
+  * Enable LSAN in CI
+  * KRearrangeColumnsProxyModel: don't nest begin/endResetModel signals
+  * Update version to 6.23.0
+
+-------------------------------------------------------------------

Old:
----
  kitemmodels-6.22.0.tar.xz
  kitemmodels-6.22.0.tar.xz.sig

New:
----
  kitemmodels-6.23.0.tar.xz
  kitemmodels-6.23.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kf6-kitemmodels.spec ++++++
--- /var/tmp/diff_new_pack.FMnjhl/_old  2026-02-16 13:05:47.889264699 +0100
+++ /var/tmp/diff_new_pack.FMnjhl/_new  2026-02-16 13:05:47.889264699 +0100
@@ -19,12 +19,12 @@
 %define qt6_version 6.8.0
 
 %define rname kitemmodels
-# Full KF6 version (e.g. 6.22.0)
+# Full KF6 version (e.g. 6.23.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
 %bcond_with python
 %bcond_without released
 Name:           kf6-kitemmodels
-Version:        6.22.0
+Version:        6.23.0
 Release:        0
 Summary:        Set of item models extending the Qt model-view framework
 License:        LGPL-2.1-or-later


++++++ kitemmodels-6.22.0.tar.xz -> kitemmodels-6.23.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitemmodels-6.22.0/.kde-ci.yml 
new/kitemmodels-6.23.0/.kde-ci.yml
--- old/kitemmodels-6.22.0/.kde-ci.yml  2026-01-02 18:42:53.000000000 +0100
+++ new/kitemmodels-6.23.0/.kde-ci.yml  2026-02-06 13:15:31.000000000 +0100
@@ -6,3 +6,4 @@
 Options:
  test-before-installing: True
  require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows']
+ enable-lsan: True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kitemmodels-6.22.0/CMakeLists.txt 
new/kitemmodels-6.23.0/CMakeLists.txt
--- old/kitemmodels-6.22.0/CMakeLists.txt       2026-01-02 18:42:53.000000000 
+0100
+++ new/kitemmodels-6.23.0/CMakeLists.txt       2026-02-06 13:15:31.000000000 
+0100
@@ -1,10 +1,10 @@
-cmake_minimum_required(VERSION 3.16)
+cmake_minimum_required(VERSION 3.27)
 
-set(KF_VERSION "6.22.0") # handled by release scripts
+set(KF_VERSION "6.23.0") # handled by release scripts
 project(KItemModels VERSION ${KF_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 6.22.0 NO_MODULE)
+find_package(ECM 6.23.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.22.0/autotests/kdescendantsproxymodel_smoketest.cpp 
new/kitemmodels-6.23.0/autotests/kdescendantsproxymodel_smoketest.cpp
--- old/kitemmodels-6.22.0/autotests/kdescendantsproxymodel_smoketest.cpp       
2026-01-02 18:42:53.000000000 +0100
+++ new/kitemmodels-6.23.0/autotests/kdescendantsproxymodel_smoketest.cpp       
2026-02-06 13:15:31.000000000 +0100
@@ -256,6 +256,7 @@
     {
         qDebug() << data;
         connectTestSignals(data);
+        m_data.reset(data);
     }
 
 protected:
@@ -277,6 +278,7 @@
 
 private:
     KDescendantsProxyModel *m_proxyModel;
+    std::unique_ptr<TestData> m_data;
 };
 
 PROXYMODELTEST_MAIN(DescendantsProxyModelTest,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitemmodels-6.22.0/autotests/kdescendantsproxymodeltest.cpp 
new/kitemmodels-6.23.0/autotests/kdescendantsproxymodeltest.cpp
--- old/kitemmodels-6.22.0/autotests/kdescendantsproxymodeltest.cpp     
2026-01-02 18:42:53.000000000 +0100
+++ new/kitemmodels-6.23.0/autotests/kdescendantsproxymodeltest.cpp     
2026-02-06 13:15:31.000000000 +0100
@@ -294,7 +294,7 @@
 {
     auto model1 = createTree("FirstModel");
     KDescendantsProxyModel proxy;
-    new QAbstractItemModelTester(&proxy);
+    QAbstractItemModelTester modelTest(&proxy);
     proxy.setSourceModel(model1.get());
     QCOMPARE(proxy.rowCount(), 6);
 
@@ -339,7 +339,7 @@
 {
     auto model1 = createTree("FirstModel");
     KDescendantsProxyModel proxy;
-    new QAbstractItemModelTester(&proxy); // ensure no nested signals
+    QAbstractItemModelTester modelTest(&proxy); // ensure no nested signals
     QIdentityProxyModel identityProxy;
     identityProxy.setSourceModel(model1.get());
     proxy.setSourceModel(&identityProxy);
@@ -387,7 +387,7 @@
 {
     auto model1 = createTree("FirstModel");
     KDescendantsProxyModel proxy;
-    new QAbstractItemModelTester(&proxy);
+    QAbstractItemModelTester modelTest(&proxy);
     proxy.setSourceModel(model1.get());
     proxy.setDisplayAncestorData(true);
     QSignalSpy dataChangedSpy(&proxy, &QAbstractItemModel::dataChanged);
@@ -426,7 +426,7 @@
 {
     auto model1 = createTree("FirstModel");
     KDescendantsProxyModel proxy;
-    new QAbstractItemModelTester(&proxy);
+    QAbstractItemModelTester modelTest(&proxy);
     proxy.setSourceModel(model1.get());
     QSignalSpy dataChangedSpy(&proxy, &QAbstractItemModel::dataChanged);
     QCOMPARE(proxy.rowCount(), 6);
@@ -464,7 +464,7 @@
 {
     auto model1 = createTree("FirstModel");
     KDescendantsProxyModel proxy;
-    new QAbstractItemModelTester(&proxy);
+    QAbstractItemModelTester modelTest(&proxy);
     proxy.setSourceModel(model1.get());
     QSignalSpy dataChangedSpy(&proxy, &QAbstractItemModel::dataChanged);
     proxy.setDisplayAncestorData(true);
@@ -503,7 +503,7 @@
 {
     auto model1 = createTree("FirstModel");
     KDescendantsProxyModel proxy;
-    new QAbstractItemModelTester(&proxy);
+    QAbstractItemModelTester modelTest(&proxy);
     proxy.setExpandsByDefault(false);
     proxy.setSourceModel(model1.get());
     QCOMPARE(proxy.rowCount(), 2);
@@ -732,7 +732,7 @@
     model->insert(QModelIndex(), 0, QStringLiteral("Row0"));
     model->insert(QModelIndex(), 0, QStringLiteral("Row1"));
     KDescendantsProxyModel proxy;
-    new QAbstractItemModelTester(&proxy);
+    QAbstractItemModelTester modelTest(&proxy);
     proxy.setSourceModel(model);
     QCOMPARE(proxy.rowCount(), 0);
 }
@@ -750,7 +750,7 @@
     model->getRootNode()->knownChildren = 2;
 
     KDescendantsProxyModel proxy;
-    new QAbstractItemModelTester(&proxy);
+    QAbstractItemModelTester modelTest(&proxy);
     proxy.setSourceModel(model);
     proxy.setExpandsByDefault(false);
     QCOMPARE(proxy.rowCount(), 2);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitemmodels-6.22.0/autotests/krearrangecolumnsproxymodeltest.cpp 
new/kitemmodels-6.23.0/autotests/krearrangecolumnsproxymodeltest.cpp
--- old/kitemmodels-6.22.0/autotests/krearrangecolumnsproxymodeltest.cpp        
2026-01-02 18:42:53.000000000 +0100
+++ new/kitemmodels-6.23.0/autotests/krearrangecolumnsproxymodeltest.cpp        
2026-02-06 13:15:31.000000000 +0100
@@ -221,6 +221,25 @@
         QCOMPARE(extractRowTexts(&mod, 0), QStringLiteral("AZCDE"));
     }
 
+    void shouldNotNestReset()
+    {
+        // Given a rearrange-columns proxy
+        KRearrangeColumnsProxyModel pm;
+        connect(&mod, &QAbstractItemModel::modelReset, [&] {
+            pm.setSourceColumns({});
+        });
+        setup(pm);
+        QSignalSpy resetSpy(&pm, SIGNAL(modelReset()));
+
+        // When calling setSourceColumns in the middle of a reset
+        mod.clear();
+
+        // Then no nested signals should be emitted
+        QCOMPARE(resetSpy.count(), 1);
+        QCOMPARE(pm.rowCount(), 0);
+        QCOMPARE(pm.columnCount(), 0);
+    }
+
 private:
     // setup proxy
     void setup(KRearrangeColumnsProxyModel &pm)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitemmodels-6.22.0/src/core/krearrangecolumnsproxymodel.cpp 
new/kitemmodels-6.23.0/src/core/krearrangecolumnsproxymodel.cpp
--- old/kitemmodels-6.22.0/src/core/krearrangecolumnsproxymodel.cpp     
2026-01-02 18:42:53.000000000 +0100
+++ new/kitemmodels-6.23.0/src/core/krearrangecolumnsproxymodel.cpp     
2026-02-06 13:15:31.000000000 +0100
@@ -11,6 +11,9 @@
 {
 public:
     QList<int> m_sourceColumns;
+    bool m_resetting = false;
+    QMetaObject::Connection m_sourceModelAboutToBeResetConnection;
+    QMetaObject::Connection m_sourceModelResetConnection;
 };
 
 KRearrangeColumnsProxyModel::KRearrangeColumnsProxyModel(QObject *parent)
@@ -23,13 +26,28 @@
 {
 }
 
+void KRearrangeColumnsProxyModel::setSourceModel(QAbstractItemModel 
*sourceModel)
+{
+    disconnect(d_ptr->m_sourceModelAboutToBeResetConnection);
+    disconnect(d_ptr->m_sourceModelResetConnection);
+    d_ptr->m_sourceModelAboutToBeResetConnection = connect(sourceModel, 
&QAbstractItemModel::modelAboutToBeReset, this, [this]() {
+        d_ptr->m_resetting = true;
+    });
+    d_ptr->m_sourceModelResetConnection = connect(sourceModel, 
&QAbstractItemModel::modelReset, this, [this]() {
+        d_ptr->m_resetting = false;
+    });
+    QIdentityProxyModel::setSourceModel(sourceModel);
+}
+
 void KRearrangeColumnsProxyModel::setSourceColumns(const QList<int> &columns)
 {
     // We could use layoutChanged() here, but we would have to map persistent
     // indexes from the old to the new location...
-    beginResetModel();
+    if (!d_ptr->m_resetting)
+        beginResetModel();
     d_ptr->m_sourceColumns = columns;
-    endResetModel();
+    if (!d_ptr->m_resetting)
+        endResetModel();
 }
 
 int KRearrangeColumnsProxyModel::columnCount(const QModelIndex &parent) const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kitemmodels-6.22.0/src/core/krearrangecolumnsproxymodel.h 
new/kitemmodels-6.23.0/src/core/krearrangecolumnsproxymodel.h
--- old/kitemmodels-6.22.0/src/core/krearrangecolumnsproxymodel.h       
2026-01-02 18:42:53.000000000 +0100
+++ new/kitemmodels-6.23.0/src/core/krearrangecolumnsproxymodel.h       
2026-02-06 13:15:31.000000000 +0100
@@ -83,6 +83,8 @@
      */
     int sourceColumnForProxyColumn(int proxyColumn) const;
 
+    void setSourceModel(QAbstractItemModel *sourceModel) override;
+
 private:
     std::unique_ptr<KRearrangeColumnsProxyModelPrivate> const d_ptr;
 };

Reply via email to