Hello community, here is the log from the commit of package plasma5-workspace for openSUSE:Factory checked in at 2016-02-11 12:35:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/plasma5-workspace (Old) and /work/SRC/openSUSE:Factory/.plasma5-workspace.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-workspace" Changes: -------- --- /work/SRC/openSUSE:Factory/plasma5-workspace/plasma5-workspace.changes 2016-01-28 17:19:20.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.plasma5-workspace.new/plasma5-workspace.changes 2016-02-11 12:35:58.000000000 +0100 @@ -1,0 +2,15 @@ +Thu Feb 4 16:20:20 UTC 2016 - [email protected] + +- Added reset-the-model-on-list-always-shown-hide-change.patch + (kde#357627, kde#352055) + +------------------------------------------------------------------- +Tue Jan 26 22:20:18 UTC 2016 - [email protected] + +- Update to 5.5.4: + * Bugfix release + * For more details please see: + https://www.kde.org/announcements/plasma-5.5.4.php +- Drop xembedsniproxy-check-for-null-geometry.patch, upstreamed + +------------------------------------------------------------------- Old: ---- plasma-workspace-5.5.3.tar.xz xembedsniproxy-check-for-null-geometry.patch New: ---- plasma-workspace-5.5.4.tar.xz reset-the-model-on-list-always-shown-hide-change.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ plasma5-workspace.spec ++++++ --- /var/tmp/diff_new_pack.KHipVC/_old 2016-02-11 12:35:59.000000000 +0100 +++ /var/tmp/diff_new_pack.KHipVC/_new 2016-02-11 12:35:59.000000000 +0100 @@ -18,9 +18,9 @@ %bcond_without lang Name: plasma5-workspace -Version: 5.5.3 +Version: 5.5.4 Release: 0 -%define plasma_version 5.5.3 +%define plasma_version 5.5.4 Summary: The KDE Plasma Workspace Components License: GPL-2.0+ Group: System/GUI/KDE @@ -35,8 +35,7 @@ # PATCH-FIX_OPENSUSE fix-breeze-sddm-theme-with-many-users.patch [email protected] -- Asks for user/password and hide the user list when there's a large number of users Patch2: fix-breeze-sddm-theme-with-many-users.patch # PATCHES 100-200 and above are from upstream 5.5 branch -# PATCH-FIX-UPSTREAM xembedsniproxy-check-for-null-geometry.patch boo#954623, kde#355463, kde#358227 -- fixes an xembedsniproxy crash -Patch100: xembedsniproxy-check-for-null-geometry.patch +Patch100: reset-the-model-on-list-always-shown-hide-change.patch # PATCHES 201-300 and above are from upstream master/5.6 branch BuildRequires: kf5-filesystem BuildRequires: update-desktop-files ++++++ plasma-workspace-5.5.3.tar.xz -> plasma-workspace-5.5.4.tar.xz ++++++ /work/SRC/openSUSE:Factory/plasma5-workspace/plasma-workspace-5.5.3.tar.xz /work/SRC/openSUSE:Factory/.plasma5-workspace.new/plasma-workspace-5.5.4.tar.xz differ: char 26, line 1 ++++++ reset-the-model-on-list-always-shown-hide-change.patch ++++++ >From 42a3d8accd4e494d343954ddaa916a6c618d94f3 Mon Sep 17 00:00:00 2001 From: Marco Martin <[email protected]> Date: Wed, 3 Feb 2016 15:36:31 +0100 Subject: [PATCH 1/1] reset the model on list always shown/hide change something really wrong is going on on the proxymodel updates the wrong item gets removed from the list. it may be a wrong mapping between source and dest model (doesn't seem so) or may have been some misguided attempt by QML to recycle delegates anyways resetting the model in some conditions even if expensive seems to be the only way to workaround this. Anyways this systray implementation is beyond any repair and the rewritten version won't have to rely on so many models and proxymodels BUG:357627 CCBUG:352055 --- applets/systemtray/plugin/tasksproxymodel.cpp | 13 ++++++++++--- applets/systemtray/plugin/tasksproxymodel.h | 5 ++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/applets/systemtray/plugin/tasksproxymodel.cpp b/applets/systemtray/plugin/tasksproxymodel.cpp index 632e84b..b93b05e 100644 --- a/applets/systemtray/plugin/tasksproxymodel.cpp +++ b/applets/systemtray/plugin/tasksproxymodel.cpp @@ -50,9 +50,9 @@ void TasksProxyModel::setHost(Host *host) connect(m_host, &Host::taskStatusChanged, this, &TasksProxyModel::invalidateFilter); connect(m_host, &Host::shownCategoriesChanged, this, &TasksProxyModel::invalidateFilter); - connect(m_host, &Host::showAllItemsChanged, this, &TasksProxyModel::invalidateFilter); - connect(m_host, &Host::forcedHiddenItemsChanged, this, &TasksProxyModel::invalidateFilter); - connect(m_host, &Host::forcedShownItemsChanged, this, &TasksProxyModel::invalidateFilter); + connect(m_host, &Host::showAllItemsChanged, this, &TasksProxyModel::reset); + connect(m_host, &Host::forcedHiddenItemsChanged, this, &TasksProxyModel::reset); + connect(m_host, &Host::forcedShownItemsChanged, this, &TasksProxyModel::reset); } invalidateFilter(); @@ -74,6 +74,13 @@ void TasksProxyModel::setCategory(Category category) } } +void TasksProxyModel::reset() +{ + beginResetModel(); + invalidateFilter(); + endResetModel(); +} + bool TasksProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { Q_UNUSED(sourceParent); diff --git a/applets/systemtray/plugin/tasksproxymodel.h b/applets/systemtray/plugin/tasksproxymodel.h index 70e723a..5799d62 100644 --- a/applets/systemtray/plugin/tasksproxymodel.h +++ b/applets/systemtray/plugin/tasksproxymodel.h @@ -56,7 +56,10 @@ public: virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override; -signals: +private Q_SLOTS: + void reset(); + +Q_SIGNALS: void hostChanged(); void categoryChanged(); void countChanged(); -- 2.6.2
