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