From a76b0340f98b5e16aa11d9c17df4954e9349fb4c Mon Sep 17 00:00:00 2001 From: Brett Williams Date: Sun, 4 Aug 2024 12:06:29 -0500 Subject: [PATCH] Disable parts of add_job UI when missing critical project data instead of crashing --- src/api/api_server.py | 1 + src/ui/add_job.py | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/api/api_server.py b/src/api/api_server.py index 2900360..e644743 100755 --- a/src/api/api_server.py +++ b/src/api/api_server.py @@ -463,6 +463,7 @@ def delete_engine_download(): @server.get('/api/renderer//args') def get_renderer_args(renderer): try: + # todo: possibly deprecate renderer_engine_class = EngineManager.engine_with_name(renderer) return renderer_engine_class().get_arguments() except LookupError: diff --git a/src/ui/add_job.py b/src/ui/add_job.py index da98f03..89360bb 100644 --- a/src/ui/add_job.py +++ b/src/ui/add_job.py @@ -322,12 +322,22 @@ class NewRenderJobForm(QWidget): self.load_file_group.setHidden(True) self.toggle_renderer_enablement(True) - # Load scene data - self.start_frame_input.setValue(self.project_info.get('frame_start')) - self.end_frame_input.setValue(self.project_info.get('frame_end')) - self.resolution_x_input.setValue(self.project_info.get('resolution_x')) - self.resolution_y_input.setValue(self.project_info.get('resolution_y')) - self.frame_rate_input.setValue(self.project_info.get('fps')) + # -- Load scene data + # start / end frames + self.start_frame_input.setValue(self.project_info.get('start_frame', 0)) + self.end_frame_input.setValue(self.project_info.get('end_frame', 0)) + self.start_frame_input.setEnabled(bool(self.project_info.get('start_frame'))) + self.end_frame_input.setEnabled(bool(self.project_info.get('start_frame'))) + + # resolution + self.resolution_x_input.setValue(self.project_info.get('resolution_x', 1920)) + self.resolution_y_input.setValue(self.project_info.get('resolution_y', 1080)) + self.resolution_x_input.setEnabled(bool(self.project_info.get('resolution_x'))) + self.resolution_y_input.setEnabled(bool(self.project_info.get('resolution_y'))) + + # frame rate + self.frame_rate_input.setValue(self.project_info.get('fps', 24)) + self.frame_rate_input.setEnabled(bool(self.project_info.get('fps'))) # Cameras self.cameras_list.clear()