wip fix qt event filter

This commit is contained in:
2026-05-29 17:18:04 +02:00
parent 589bb6b7c3
commit 9ce2ded590
2 changed files with 11 additions and 0 deletions
@@ -248,6 +248,9 @@ class BeamlineStatePill(BECWidget, QWidget):
self.set_state_name(state_name, title=title)
def eventFilter(self, watched: object, event: QEvent) -> bool: # noqa: N802
if not isinstance(event, QEvent):
return False
hover_widgets = set(self._hover_widgets())
draggable_widgets = {
self._header,
@@ -3,6 +3,7 @@ import json
import shiboken6
from bec_lib import messages
from qtpy.QtCore import QCoreApplication, QEvent, Qt
from qtpy.QtGui import QStandardItem
from qtpy.QtWidgets import QMessageBox, QSizePolicy
from bec_widgets.utils.toolbars.toolbar import ModularToolBar
@@ -129,6 +130,13 @@ def test_beamline_state_pill_uses_card_style_when_hovered(qtbot, mocked_client):
assert widget._shadow.isEnabled()
def test_beamline_state_pill_event_filter_ignores_non_qevent(qtbot, mocked_client):
widget = BeamlineStatePill(state_name="limits", title="Limits", client=mocked_client)
qtbot.addWidget(widget)
assert widget.eventFilter(widget._title_edit, QStandardItem("not an event")) is False
def test_beamline_state_pill_drag_payload_modes(qtbot, mocked_client):
widget = BeamlineStatePill(state_name="limits", title="Limits", client=mocked_client)
qtbot.addWidget(widget)