[SCM] kitemmodels packaging branch, master, updated. debian/5.28.0-1-5-gc3678e0
Maximiliano Curia
maxy at moszumanska.debian.org
Tue Apr 4 16:04:29 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/frameworks/kitemmodels.git;a=commitdiff;h=34a39ea
The following commit has been merged in the master branch:
commit 34a39ea0e77036345e095b8056ea4db65d75af53
Author: Maximiliano Curia <maxy at gnuservers.com.ar>
Date: Tue Apr 4 17:46:05 2017 +0200
Add new upstream patch: KExtraColumnsProxyModel-Persist-model-indexes-after-emitt.patch
---
...xyModel-Persist-model-indexes-after-emitt.patch | 65 ++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 66 insertions(+)
diff --git a/debian/patches/KExtraColumnsProxyModel-Persist-model-indexes-after-emitt.patch b/debian/patches/KExtraColumnsProxyModel-Persist-model-indexes-after-emitt.patch
new file mode 100644
index 0000000..379be8b
--- /dev/null
+++ b/debian/patches/KExtraColumnsProxyModel-Persist-model-indexes-after-emitt.patch
@@ -0,0 +1,65 @@
+From: David Faure <faure at kde.org>
+Date: Tue, 20 Dec 2016 11:16:35 +0100
+Subject: KExtraColumnsProxyModel: Persist model indexes after emitting
+ layoutChange, not before
+
+Same fix as Stephen Kelly's fix for QIdentityProxyModel in https://codereview.qt-project.org/180390
+
+I tried to write a unittest but QStandardItemModel doesn't support moveRow,
+and we don't have all the infrastructure here to force emitting a layoutChange
+with specific parents like in the Qt unittests.
+
+This commit, added to the 3 fixes in Qt, fixes crashes when moving folders in kmail.
+
+CCMAIL: steveire at gmail.com
+---
+ src/kextracolumnsproxymodel.cpp | 29 +++++++++++++++--------------
+ 1 file changed, 15 insertions(+), 14 deletions(-)
+
+diff --git a/src/kextracolumnsproxymodel.cpp b/src/kextracolumnsproxymodel.cpp
+index 53235b8..3626d26 100644
+--- a/src/kextracolumnsproxymodel.cpp
++++ b/src/kextracolumnsproxymodel.cpp
+@@ -271,6 +271,21 @@ int KExtraColumnsProxyModel::proxyColumnForExtraColumn(int extraColumn) const
+ void KExtraColumnsProxyModelPrivate::_ec_sourceLayoutAboutToBeChanged(const QList<QPersistentModelIndex> &sourceParents, QAbstractItemModel::LayoutChangeHint hint)
+ {
+ Q_Q(KExtraColumnsProxyModel);
++
++ QList<QPersistentModelIndex> parents;
++ parents.reserve(sourceParents.size());
++ foreach (const QPersistentModelIndex &parent, sourceParents) {
++ if (!parent.isValid()) {
++ parents << QPersistentModelIndex();
++ continue;
++ }
++ const QModelIndex mappedParent = q->mapFromSource(parent);
++ Q_ASSERT(mappedParent.isValid());
++ parents << mappedParent;
++ }
++
++ emit q->layoutAboutToBeChanged(parents, hint);
++
+ const QModelIndexList persistentIndexList = q->persistentIndexList();
+ layoutChangePersistentIndexes.reserve(persistentIndexList.size());
+ layoutChangeProxyColumns.reserve(persistentIndexList.size());
+@@ -287,20 +302,6 @@ void KExtraColumnsProxyModelPrivate::_ec_sourceLayoutAboutToBeChanged(const QLis
+ Q_ASSERT(srcPersistentIndex.isValid());
+ layoutChangePersistentIndexes << srcPersistentIndex;
+ }
+-
+- QList<QPersistentModelIndex> parents;
+- parents.reserve(sourceParents.size());
+- foreach (const QPersistentModelIndex &parent, sourceParents) {
+- if (!parent.isValid()) {
+- parents << QPersistentModelIndex();
+- continue;
+- }
+- const QModelIndex mappedParent = q->mapFromSource(parent);
+- Q_ASSERT(mappedParent.isValid());
+- parents << mappedParent;
+- }
+-
+- emit q->layoutAboutToBeChanged(parents, hint);
+ }
+
+ void KExtraColumnsProxyModelPrivate::_ec_sourceLayoutChanged(const QList<QPersistentModelIndex> &sourceParents, QAbstractItemModel::LayoutChangeHint hint)
diff --git a/debian/patches/series b/debian/patches/series
index 56685dc..4120a8c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
Fix-assert-in-beginRemoveRows-when-deselecting-an-empty-c.patch
+KExtraColumnsProxyModel-Persist-model-indexes-after-emitt.patch
--
kitemmodels packaging
More information about the pkg-kde-commits
mailing list