Skip to content

Commit a76eec7

Browse files
committed
Add toolbar to HDF5 browser tree widget
Added a horizontal toolbar above the tree widget containing navigation actions (expand all, collapse all, restore, expand/collapse selection) for better accessibility. The toolbar uses compact sizing with 16x16 icons and minimal padding.
1 parent 17d2b3b commit a76eec7

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

datalab/widgets/h5browser.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,9 @@ def __init__(self, parent: QW.QWidget | None = None) -> None:
751751
selectorandtree = QW.QFrame(self)
752752
selectorandtree.setLayout(QW.QVBoxLayout())
753753
selectorandtree.layout().addWidget(self.selector)
754+
# Add toolbar with tree actions
755+
toolbar = self.__create_toolbar()
756+
selectorandtree.layout().addWidget(toolbar)
754757
selectorandtree.layout().addWidget(self.tree)
755758
selectorandtree.layout().setContentsMargins(0, 0, 0, 0)
756759
self.addWidget(selectorandtree)
@@ -763,6 +766,24 @@ def __init__(self, parent: QW.QWidget | None = None) -> None:
763766
preview.addWidget(self.groupandattrs)
764767
preview.setSizes([int(self.size().height() / 2)] * 2)
765768

769+
def __create_toolbar(self) -> QW.QToolBar:
770+
"""Create toolbar with tree actions
771+
772+
Returns:
773+
Toolbar widget
774+
"""
775+
toolbar = QW.QToolBar(self)
776+
toolbar.setToolButtonStyle(QC.Qt.ToolButtonTextBesideIcon)
777+
toolbar.setIconSize(QC.QSize(16, 16))
778+
toolbar.setStyleSheet("QToolBar { padding: 2px; spacing: 2px; }")
779+
toolbar.addAction(self.tree.expand_all_action)
780+
toolbar.addAction(self.tree.collapse_all_action)
781+
toolbar.addAction(self.tree.restore_action)
782+
toolbar.addSeparator()
783+
toolbar.addAction(self.tree.expand_selection_action)
784+
toolbar.addAction(self.tree.collapse_selection_action)
785+
return toolbar
786+
766787
def open_file(self, fname: str) -> None:
767788
"""Open HDF5 file
768789

0 commit comments

Comments
 (0)