diff --git a/bouquin/statistics_dialog.py b/bouquin/statistics_dialog.py index f6898e0..4950b6a 100644 --- a/bouquin/statistics_dialog.py +++ b/bouquin/statistics_dialog.py @@ -249,7 +249,6 @@ class StatisticsDialog(QDialog): self.setWindowTitle(strings._("statistics")) self.setMinimumWidth(600) - self.setMinimumHeight(350) root = QVBoxLayout(self) ( @@ -325,10 +324,16 @@ class StatisticsDialog(QDialog): self._revisions_by_date = revisions_by_date scroll = QScrollArea() - scroll.setWidgetResizable(True) + scroll.setWidgetResizable(False) scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded) scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) + self._heatmap.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) scroll.setWidget(self._heatmap) + + # ensure the scroll area is never shorter than the heatmap's preferred height + scroll.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + scroll.setMinimumHeight(self._heatmap.minimumSizeHint().height()) + group_layout.addWidget(scroll) root.addWidget(group) @@ -339,6 +344,8 @@ class StatisticsDialog(QDialog): else: root.addWidget(QLabel(strings._("stats_no_data"))) + self.adjustSize() + # ---------- internal helpers ---------- def _apply_metric(self, metric: str) -> None: