Skip to content

Commit 459de5d

Browse files
committed
fix(notification-banner): eventFilter guard for QStandartItem
1 parent f561286 commit 459de5d

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

bec_widgets/widgets/containers/main_window/addons/notification_center/notification_banner.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,8 @@ def _absolute_time_string(self) -> str:
485485
# Event Filters
486486
########################################
487487
def eventFilter(self, watched, event):
488+
if not isinstance(event, QtCore.QEvent):
489+
return False
488490
# timestamp label → toggle absolute time
489491
if watched is self.time_lbl:
490492
if event.type() == QtCore.QEvent.Enter and not self._showing_absolute:
@@ -902,6 +904,8 @@ def _adjust_height(self):
902904
self.setFixedHeight(min(content_h, avail))
903905

904906
def eventFilter(self, watched, event):
907+
if not isinstance(event, QtCore.QEvent):
908+
return False
905909
if watched is self.parent() and event.type() == QtCore.QEvent.Resize:
906910
self._adjust_height()
907911
return super().eventFilter(watched, event)

tests/unit_tests/test_notifications.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,17 @@ def test_toast_updates_from_qapp_theme_changed_signal(qtbot, toast):
5757
assert LIGHT_PALETTE["title"] in toast._title_lbl.styleSheet()
5858

5959

60+
def test_notification_event_filters_ignore_non_qevent(qtbot, toast):
61+
assert toast.eventFilter(toast.time_lbl, QtGui.QStandardItem()) is False
62+
63+
parent = QtWidgets.QWidget()
64+
qtbot.addWidget(parent)
65+
centre = NotificationCentre(parent=parent)
66+
qtbot.addWidget(centre)
67+
68+
assert centre.eventFilter(parent, QtGui.QStandardItem()) is False
69+
70+
6071
def test_expired_signal(qtbot, toast):
6172
"""Toast must emit expired once its lifetime finishes."""
6273
with qtbot.waitSignal(toast.expired, timeout=1000):

0 commit comments

Comments
 (0)