Skip to content

Commit 900880a

Browse files
committed
Show sim result menu only on multiple sims
1 parent 6cb19d7 commit 900880a

File tree

1 file changed

+30
-9
lines changed

1 file changed

+30
-9
lines changed

src/ert/gui/main_window.py

+30-9
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def __init__(
105105
"Simulation status", QIcon("img:in_progress.svg")
106106
)
107107
self.results_button.setEnabled(False)
108-
self.results_button.setMenu(QMenu())
108+
self.run_dialog_counter = 0
109109

110110
self.vbox_layout.addStretch()
111111
self.central_layout.addWidget(self.side_frame)
@@ -126,6 +126,13 @@ def select_central_widget(self):
126126
self.central_layout.addWidget(self._plot_window)
127127
self.central_panels_map["Create plot"] = self._plot_window
128128

129+
if index_name == "Simulation status":
130+
# select the only available simulation
131+
for k, v in self.central_panels_map.items():
132+
if isinstance(v, RunDialog):
133+
index_name = k
134+
break
135+
129136
for i, widget in self.central_panels_map.items():
130137
widget.setVisible(i == index_name)
131138

@@ -135,16 +142,30 @@ def slot_add_widget(self, run_dialog: RunDialog) -> None:
135142
widget.setVisible(False)
136143

137144
run_dialog.setParent(self)
138-
self.central_layout.addWidget(run_dialog)
139-
self.results_button.setEnabled(True)
140-
date_time = datetime.datetime.utcnow().strftime("%Y-%d-%m %H:%M:%S")
145+
date_time = datetime.datetime.now(datetime.UTC).strftime("%Y-%d-%m %H:%M:%S")
141146
self.central_panels_map[date_time] = run_dialog
142-
act = self.results_button.menu()
147+
self.run_dialog_counter += 1
148+
self.central_layout.addWidget(run_dialog)
143149

144-
if act:
145-
act.addAction(date_time)
146-
act.setProperty("index", date_time)
147-
act.triggered.connect(self.select_central_widget)
150+
def add_sim_run_option(datetime: str) -> None:
151+
menu = self.results_button.menu()
152+
if menu:
153+
act = menu.addAction(datetime)
154+
act.setProperty("index", datetime)
155+
act.triggered.connect(self.select_central_widget)
156+
157+
if self.run_dialog_counter == 2:
158+
# swap from button to menu selection
159+
self.results_button.clicked.disconnect(self.select_central_widget)
160+
self.results_button.setMenu(QMenu())
161+
162+
for prev_date_time, widget in self.central_panels_map.items():
163+
if isinstance(widget, RunDialog):
164+
add_sim_run_option(prev_date_time)
165+
elif self.run_dialog_counter > 2:
166+
add_sim_run_option(date_time)
167+
168+
self.results_button.setEnabled(True)
148169

149170
def post_init(self) -> None:
150171
experiment_panel = ExperimentPanel(

0 commit comments

Comments
 (0)