-
David Edmundson authored
Summary: RunnerMatchesModel is backed by a list. When this list changes RunnerManagerModel add/removes the new number of rows then called dataChanged on everything that remained. It's a common pattern, but not a great one. Especially with QtQuick where moving a delegate is faster than updating all the properties of an existing one - unfortunately I can't find a nice solution to do this properly in linear time. The problem with the current code is we update the entire list in the insert/remove rows. This is a violation of the model rules as we're updating rows outside the rows listed inside begin/remove rows. It works, but Qt's model test fails. We also have a lot of duplicates of a crash in QtQuick after runner model changes, bug 369430. I think it could be related, but can't prove anything. This patch updates the rows that exist in both the before and after models before adding/removing the remaining rows. BUG: 402439 Test Plan: Added Qt model tester in https://phabricator.kde.org/P283 It now passes. Reviewers: #plasma, hein Reviewed By: #plasma, hein Subscribers: hein, apol, plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D17725
9371a7c9