From facb8c30ffa3b12a97c7c68f8594b0354372ca17 Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Wed, 19 Feb 2025 15:44:44 +0100 Subject: [PATCH] fix(toolbar): update_separators logic updated, there cannot be two separators next to each other --- bec_widgets/qt_utils/toolbar.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/bec_widgets/qt_utils/toolbar.py b/bec_widgets/qt_utils/toolbar.py index ca85f6c0..9afdea96 100644 --- a/bec_widgets/qt_utils/toolbar.py +++ b/bec_widgets/qt_utils/toolbar.py @@ -760,9 +760,10 @@ class ModularToolBar(QToolBar): def update_separators(self): """ - Hide separators adjacent to another separator or with no actions nearby. + Hide separators that are adjacent to another separator or have no non-separator actions between them. """ toolbar_actions = self.actions() + # First pass: set visibility based on surrounding non-separator actions. for i, action in enumerate(toolbar_actions): if not action.isSeparator(): continue @@ -782,6 +783,17 @@ class ModularToolBar(QToolBar): action.setVisible(False) else: action.setVisible(True) + # Second pass: ensure no two visible separators are adjacent. + prev = None + for action in toolbar_actions: + if action.isVisible() and action.isSeparator(): + if prev and prev.isSeparator(): + action.setVisible(False) + else: + prev = action + else: + if action.isVisible(): + prev = action class MainWindow(QMainWindow): # pragma: no cover