diff --git a/python_app/gui/controllers/app_window_preprocess_mixin.py b/python_app/gui/controllers/app_window_preprocess_mixin.py index d3ad35b..47a9f2e 100644 --- a/python_app/gui/controllers/app_window_preprocess_mixin.py +++ b/python_app/gui/controllers/app_window_preprocess_mixin.py @@ -25,7 +25,7 @@ class AppWindowPreprocessMixin: self._show_error(f"Failed to open preprocessing panel: {exc}") return - dialog.show() + dialog.showMaximized() dialog.raise_() dialog.activateWindow() diff --git a/python_app/gui/preprocess_dialog.py b/python_app/gui/preprocess_dialog.py index 1c2f9a2..a554202 100644 --- a/python_app/gui/preprocess_dialog.py +++ b/python_app/gui/preprocess_dialog.py @@ -14,7 +14,9 @@ from PyQt6.QtWidgets import ( QLineEdit, QPlainTextEdit, QPushButton, + QScrollArea, QVBoxLayout, + QWidget, ) import numpy as np import pyqtgraph as pg @@ -53,10 +55,20 @@ class PreprocessDialog(QDialog): def _build_ui(self) -> None: """Build root dialog layout and all sections.""" root_layout = QVBoxLayout(self) - root_layout.addWidget(self._build_sets_group()) - root_layout.addWidget(self._build_sequence_group()) - self._build_status_line(root_layout) - self._build_preview_plot(root_layout) + + scroll_area = QScrollArea(self) + scroll_area.setWidgetResizable(True) + + content_widget = QWidget(scroll_area) + content_layout = QVBoxLayout(content_widget) + content_layout.addWidget(self._build_sets_group()) + content_layout.addWidget(self._build_sequence_group()) + self._build_status_line(content_layout) + self._build_preview_plot(content_layout) + content_layout.addStretch(1) + + scroll_area.setWidget(content_widget) + root_layout.addWidget(scroll_area) def _build_sets_group(self) -> QGroupBox: """Build set-management controls used for preprocessing snapshots.""" @@ -119,6 +131,7 @@ class PreprocessDialog(QDialog): self._capture_log = QPlainTextEdit(group) self._capture_log.setReadOnly(True) self._capture_log.setPlaceholderText("Capture history per combo") + self._capture_log.setMinimumHeight(180) layout.addWidget(self._capture_log, 7, 0, 1, 2) return group @@ -158,7 +171,8 @@ class PreprocessDialog(QDialog): self._preview_plot.showGrid(x=True, y=True, alpha=0.2) self._preview_plot.setLabel("bottom", "Frequency", units="Hz") self._preview_plot.setLabel("left", "Magnitude", units="dB") - root_layout.addWidget(self._preview_plot, stretch=1) + self._preview_plot.setMinimumHeight(320) + root_layout.addWidget(self._preview_plot) def set_name(self) -> str: """Return requested target set name."""