Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-updates-src > by-pkgid > a0d4be9725e5b5edd016ad9f02a3b8f9 > files > 6

plasma-workspace-5.15.4-1.1.mga7.src.rpm

diff --git a/applets/notifications/package/contents/ui/Notifications.qml b/applets/notifications/package/contents/ui/Notifications.qml
index 23b34a3..ea98ae4 100644
--- a/applets/notifications/package/contents/ui/Notifications.qml
+++ b/applets/notifications/package/contents/ui/Notifications.qml
@@ -35,7 +35,7 @@ Column {
 
     property alias count: notificationsRepeater.count
     readonly property int historyCount: historyList.count
-    
+    property alias historyModel: notificationsHistoryModel
     property bool showHistory: plasmoid.configuration.showHistory
     
     signal popupShown(var popup)
@@ -305,13 +305,6 @@ Column {
 
     // History stuff
     // The history is shown outside in a ListView
-    Binding {
-        target: historyList
-        property: "model"
-        value: notificationsHistoryModel
-        when: showHistory
-    }
-
     Binding {
         target: historyList
         property: "delegate"
diff --git a/applets/notifications/package/contents/ui/main.qml b/applets/notifications/package/contents/ui/main.qml
index ad449df..2cd5861 100644
--- a/applets/notifications/package/contents/ui/main.qml
+++ b/applets/notifications/package/contents/ui/main.qml
@@ -112,7 +112,15 @@ MouseEventListener {
             id: historyList
 
             // The history stuff is quite entangled with regular notifications, so
-            // model and delegate are set by Bindings {} inside Notifications.qml
+            // we have to dive into the header item's notification loader to get it
+
+            // NOTE Previously this was done by a Binding {} in Notifications, however
+            // since Qt 5.12.5 changing the model causes ListView to recreate its header
+            // items (among other things) causing infinite recursion until it aborts
+            // item creation. Since the NotificationPopup {} is also created in Notifications
+            // this will then leave the NotificationsHelper try to access a null
+            // popup and crash.
+            model: headerItem && headerItem.notifications && headerItem.notifications.historyModel ? headerItem.notifications.historyModel : null
 
             header: Column {
                 property alias jobs: jobsLoader.item