Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/ert/gui/plotting/widgets/collapsible_section.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from PyQt6.QtCore import Qt
from PyQt6.QtCore import Qt, QTimer
from PyQt6.QtWidgets import (
QSizePolicy,
QToolButton,
Expand Down Expand Up @@ -47,7 +47,7 @@ def _on_toggled(self, checked: bool) -> None:
self._toggle_button.setArrowType(
Qt.ArrowType.DownArrow if checked else Qt.ArrowType.RightArrow
)
self._content_widget.setVisible(checked)
QTimer.singleShot(0, lambda: self._content_widget.setVisible(checked))

def set_title(self, title: str) -> None:
self._toggle_button.setText(title)
22 changes: 14 additions & 8 deletions src/ert/gui/plotting/widgets/plot_side_panel.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from PyQt6.QtCore import QSize, Qt
from PyQt6.QtCore import QSize, Qt, QTimer
from PyQt6.QtWidgets import (
QWIDGETSIZE_MAX,
QDockWidget,
Expand Down Expand Up @@ -113,11 +113,17 @@ def _set_expanded(self, expanded: bool) -> None:
)

if expanded:
self.setMinimumWidth(self._min_expanded_width)
self.setMaximumWidth(QWIDGETSIZE_MAX)
self._main_window.resizeDocks(
[self], [self._expanded_width], Qt.Orientation.Horizontal
)

def _expand() -> None:
self.setMinimumWidth(self._min_expanded_width)
self.setMaximumWidth(QWIDGETSIZE_MAX)
self._main_window.resizeDocks(
[self], [self._expanded_width], Qt.Orientation.Horizontal
)

QTimer.singleShot(0, _expand)
else:
# Collapsed width is button + slight padding
self.setFixedWidth(self._toggle_button.sizeHint().width() + 8)
QTimer.singleShot(
0,
lambda: self.setFixedWidth(self._toggle_button.sizeHint().width() + 8),
)
Original file line number Diff line number Diff line change
Expand Up @@ -40,23 +40,27 @@ def test_that_collapsing_hides_content_but_keeps_toggle_button_visible(main_wind
assert side_panel._toggle_button.isVisibleTo(side_panel.titleBarWidget())


def test_that_collapsing_fixes_width_to_toggle_button_width(main_window):
def test_that_collapsing_fixes_width_to_toggle_button_width(
qtbot: QtBot, main_window: QMainWindow
) -> None:
side_panel = make_side_panel(main_window)

side_panel._toggle_button.setChecked(False)

expected = side_panel._toggle_button.sizeHint().width() + 8
assert side_panel.minimumWidth() == expected
qtbot.waitUntil(lambda: side_panel.minimumWidth() == expected)
assert side_panel.maximumWidth() == expected


def test_that_expanding_restores_minimum_width_and_unbounded_maximum(main_window):
def test_that_expanding_restores_minimum_width_and_unbounded_maximum(
qtbot: QtBot, main_window: QMainWindow
) -> None:
side_panel = make_side_panel(main_window)

side_panel._toggle_button.setChecked(False)
side_panel._toggle_button.setChecked(True)

assert side_panel.minimumWidth() == MIN_WIDTH
qtbot.waitUntil(lambda: side_panel.minimumWidth() == MIN_WIDTH)
assert side_panel.maximumWidth() == QWIDGETSIZE_MAX


Expand Down
Loading