diff --git a/b_asic/schedule.py b/b_asic/schedule.py index 628117c462b6c01136e00d00104512dc018976d2..e61ab864949d97e0026029e652e05e9e7c81c54f 100644 --- a/b_asic/schedule.py +++ b/b_asic/schedule.py @@ -314,11 +314,21 @@ class Schedule: """If the current schedule is cyclic.""" return self._cyclic - def edit(self) -> None: - """Edit schedule in GUI.""" + def edit(self, inplace=False) -> "Schedule": + """ + Edit schedule in GUI and return new schedule. + + Parameters + ---------- + inplace : bool, default: False + If True, replace the current schedule. + """ from b_asic.scheduler_gui.main_window import start_scheduler - start_scheduler(self) + new_schedule = start_scheduler(self) + if inplace: + self = new_schedule + return new_schedule def increase_time_resolution(self, factor: int) -> "Schedule": """ diff --git a/b_asic/scheduler_gui/main_window.py b/b_asic/scheduler_gui/main_window.py index 2e6e90c7caf1babf7146f7d9bc5da77f68e69a74..4b379c7549e6406c9ed7417159a3438c3f559ab6 100644 --- a/b_asic/scheduler_gui/main_window.py +++ b/b_asic/scheduler_gui/main_window.py @@ -705,13 +705,14 @@ class ScheduleMainWindow(QMainWindow, Ui_MainWindow): self._update_recent_file_list() -def start_scheduler(schedule: Optional[Schedule] = None) -> None: +def start_scheduler(schedule: Optional[Schedule] = None) -> Schedule: app = QApplication(sys.argv) window = ScheduleMainWindow() if schedule: window.open(schedule) window.show() - sys.exit(app.exec_()) + app.exec_() + return window.schedule if __name__ == "__main__":