diff --git a/csaxs_bec/bec_widgets/widgets/tomo_params/tomo_params.py b/csaxs_bec/bec_widgets/widgets/tomo_params/tomo_params.py index d80c3f1..5a1b962 100644 --- a/csaxs_bec/bec_widgets/widgets/tomo_params/tomo_params.py +++ b/csaxs_bec/bec_widgets/widgets/tomo_params/tomo_params.py @@ -1007,21 +1007,20 @@ class TomoQueueDialog(QDialog): vbox = QVBoxLayout(self) vbox.setSpacing(6) - self._table = QTableWidget(0, 9) + self._table = QTableWidget(0, 8) self._table.setHorizontalHeaderLabels( - [ - "#", - "Label", - "Status", - "Type", - "Projections", - "Exp (s)", - "Step (µm)", - "Details", - "Added at", - ] + ["#", "Label", "Status", "Type", "Projections", "Exp (s)", "Step (µm)", "Details"] ) - self._table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) + # Short, fixed-content columns auto-fit to their text; Label and + # Details -- the two that can hold long text (a custom label, or a + # multi-step command summary) -- stretch to fill the remaining width + # instead of being squeezed to the same share as "Type" or "Exp (s)". + # "Added at" was dropped as a column; it's still in the row tooltip. + header = self._table.horizontalHeader() + for col in (0, 2, 3, 4, 5, 6): + header.setSectionResizeMode(col, QHeaderView.ResizeMode.ResizeToContents) + header.setSectionResizeMode(1, QHeaderView.ResizeMode.Stretch) + header.setSectionResizeMode(7, QHeaderView.ResizeMode.Stretch) self._table.setSelectionBehavior(QTableWidget.SelectionBehavior.SelectRows) self._table.setEditTriggers(QTableWidget.EditTrigger.NoEditTriggers) self._table.itemSelectionChanged.connect(self._update_sort_buttons) @@ -1080,7 +1079,6 @@ class TomoQueueDialog(QDialog): "", "", _format_command_summary(job), - job.get("added_at", ""), ] else: params = job.get("params", {}) @@ -1093,12 +1091,19 @@ class TomoQueueDialog(QDialog): _fmt_num(params.get("tomo_countingtime")), _fmt_num(params.get("tomo_shellstep")), "", - job.get("added_at", ""), ] tooltip = _job_tooltip(job) for col, text in enumerate(cells): item = QTableWidgetItem(text) - item.setTextAlignment(Qt.AlignmentFlag.AlignCenter) + # Label/Details are now wide, free-text columns -- left-align + # them like normal text instead of centering, which reads + # oddly once there's room on both sides. + if col in (1, 7): + item.setTextAlignment( + Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignVCenter + ) + else: + item.setTextAlignment(Qt.AlignmentFlag.AlignCenter) if col == 2: item.setForeground(_color_from_hex(color)) item.setToolTip(tooltip)