1212from PyQt6 .QtCore import pyqtSlot as Slot
1313from PyQt6 .QtWidgets import (
1414 QApplication ,
15- QButtonGroup ,
1615 QDialog ,
1716 QHBoxLayout ,
1817 QLabel ,
1918 QMainWindow ,
20- QRadioButton ,
2119 QSplitter ,
2220 QStyle ,
2321 QTabWidget ,
5957from .utils .qt_creator import create_group_box , create_group_layout , create_side_panel
6058from .widgets .data_type_keys_widget import DataTypeKeysWidget
6159from .widgets .everest_control_selection_widget import EverestControlSelectionWidget
62- from .widgets .plot_controls . misfits_options import MisfitsOptions
60+ from .widgets .plot_controls import EverestControlsPlotOptions , MisfitsOptions
6361from .widgets .plot_ensemble_selection_widget import EnsembleSelectionWidget
6462from .widgets .plot_widget import Plotter , PlotWidget
6563
@@ -321,26 +319,8 @@ def __init__(
321319 create_group_layout ([self ._ensemble_selection_widget ]),
322320 )
323321
324- self ._display_over_batches_radio = QRadioButton ("batches" )
325- self ._display_over_batches_radio .setObjectName ("display_over_batches_radio" )
326- self ._display_over_batches_radio .setChecked (True )
327- self ._display_over_controls_radio = QRadioButton ("controls" )
328- self ._display_over_controls_radio .setObjectName (
329- "display_over_controls_radio"
330- )
331- self ._display_over_button_group = QButtonGroup (self )
332- self ._display_over_button_group .addButton (self ._display_over_batches_radio )
333- self ._display_over_button_group .addButton (self ._display_over_controls_radio )
334- self ._display_over_button_group .buttonClicked .connect (self .updatePlot )
335-
336- self ._display_over_group = create_group_box (
337- "X-axis:" ,
338- create_group_layout (
339- [
340- self ._display_over_batches_radio ,
341- self ._display_over_controls_radio ,
342- ]
343- ),
322+ self ._everest_controls_plot_options = EverestControlsPlotOptions (
323+ self .updatePlot
344324 )
345325
346326 self ._misfits_options = MisfitsOptions (self .updatePlot )
@@ -349,15 +329,15 @@ def __init__(
349329 right_layout = create_group_layout (
350330 [
351331 self ._ensemble_group ,
352- self ._display_over_group ,
332+ self ._everest_controls_plot_options . get_widget () ,
353333 self ._everest_controls_group ,
354334 self ._misfits_options .get_widget (),
355335 ]
356336 )
357337 right_container .setLayout (right_layout )
358338
359339 self ._everest_controls_group .setVisible (False )
360- self ._display_over_group .setVisible (False )
340+ self ._everest_controls_plot_options . get_widget () .setVisible (False )
361341 self ._misfits_options .get_widget ().setVisible (False )
362342 self ._data_type_keys_widget .selectDefault ()
363343
@@ -435,7 +415,7 @@ def updatePlot(self, layer: int | None = None) -> None:
435415
436416 is_everest_ensemble = plot_widget .name == ENSEMBLE and self .is_everest
437417 self ._everest_controls_group .setVisible (is_gradient_plot or is_controls_plot )
438- self ._display_over_group .setVisible (is_controls_plot )
418+ self ._everest_controls_plot_options . get_widget () .setVisible (is_controls_plot )
439419 self ._ensemble_selection_widget .apply_ensemble_filtering (
440420 require_func_eval = is_objective_plot
441421 or is_everest_ensemble
@@ -575,7 +555,9 @@ def fetch_data(
575555 key ,
576556 layer ,
577557 )
578- plot_context .by_batch = self ._display_over_batches_radio .isChecked ()
558+ plot_context .by_batch = (
559+ self ._everest_controls_plot_options .is_batches_selected ()
560+ )
579561
580562 plot_context .scatter_plot = self ._misfits_options .scatter_checkbox_state
581563 plot_context .box_plot = self ._misfits_options .box_checkbox_state
0 commit comments