diff --git a/bec_widgets/widgets/editors/scan_metadata/additional_metadata_table.py b/bec_widgets/widgets/editors/scan_metadata/additional_metadata_table.py index a5f4c180..d5f1d3e0 100644 --- a/bec_widgets/widgets/editors/scan_metadata/additional_metadata_table.py +++ b/bec_widgets/widgets/editors/scan_metadata/additional_metadata_table.py @@ -2,13 +2,14 @@ from __future__ import annotations from typing import Any +from PySide6.QtWidgets import QSizePolicy from qtpy.QtCore import QAbstractTableModel, QModelIndex, Qt, Signal # type: ignore from qtpy.QtWidgets import ( QApplication, QHBoxLayout, QLabel, QPushButton, - QTableView, + QTreeView, QVBoxLayout, QWidget, ) @@ -105,9 +106,11 @@ class AdditionalMetadataTable(QWidget): self._layout = QHBoxLayout() self.setLayout(self._layout) self._table_model = AdditionalMetadataTableModel(initial_data) - self._table_view = QTableView() + self._table_view = QTreeView() self._table_view.setModel(self._table_model) - self._table_view.horizontalHeader().setStretchLastSection(True) + self._table_view.setSizePolicy( + QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum) + ) self._layout.addWidget(self._table_view) self._buttons = QVBoxLayout() diff --git a/tests/unit_tests/test_scan_metadata.py b/tests/unit_tests/test_scan_metadata.py index f8f1ec86..3e1a3c73 100644 --- a/tests/unit_tests/test_scan_metadata.py +++ b/tests/unit_tests/test_scan_metadata.py @@ -1,11 +1,12 @@ from decimal import Decimal from typing import Annotated +from PySide6.QtCore import QItemSelectionModel, QModelIndex, QRect import pytest from bec_lib.metadata_schema import BasicScanMetadata from pydantic import Field from pydantic.types import Json -from qtpy.QtCore import Qt +from qtpy.QtCore import QPoint, Qt from qtpy.QtWidgets import QCheckBox, QDoubleSpinBox, QLineEdit, QSpinBox, QWidget from bec_widgets.widgets.editors.scan_metadata import AdditionalMetadataTableModel, ScanMetadata @@ -189,7 +190,8 @@ def test_additional_metadata_table_add_row(table: AdditionalMetadataTable): def test_additional_metadata_table_delete_row(table: AdditionalMetadataTable): assert table._table_model.rowCount() == 3 - table._table_view.selectRow(1) + m = table._table_view.selectionModel() + m.select(table._table_view.indexAt(QPoint(40, 30)), QItemSelectionModel.SelectionFlag.Select) table.delete_selected_rows() assert table._table_model.rowCount() == 2 assert list(table.dump_dict().keys()) == ["key1", "key3"]