mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Added presets to scheduler gui
This commit is contained in:
@@ -67,6 +67,7 @@ class ScheduleJob(Frame):
|
||||
self.server_hostname = None
|
||||
self.chosen_file = None
|
||||
self.clients = []
|
||||
self.presets = {}
|
||||
self.renderer_info = {}
|
||||
self.priority = IntVar(value=2)
|
||||
|
||||
@@ -115,6 +116,15 @@ class ScheduleJob(Frame):
|
||||
Radiobutton(priority_frame, text="2", value=2, variable=self.priority).pack(anchor=W, side=LEFT, padx=5)
|
||||
Radiobutton(priority_frame, text="3", value=3, variable=self.priority).pack(anchor=W, side=LEFT, padx=5)
|
||||
|
||||
# presets
|
||||
presets_frame = Frame(self)
|
||||
presets_frame.pack(fill=X)
|
||||
|
||||
Label(presets_frame, text="Presets", width=label_width).pack(side=LEFT, padx=5, pady=5)
|
||||
self.presets_combo = Combobox(presets_frame, state="readonly")
|
||||
self.presets_combo.pack(side=LEFT, padx=5, pady=5, expand=True, fill=X)
|
||||
self.presets_combo.bind('<<ComboboxSelected>>', self.chose_preset)
|
||||
|
||||
# output frame
|
||||
output_frame = Frame(self)
|
||||
output_frame.pack(fill=X)
|
||||
@@ -159,6 +169,7 @@ class ScheduleJob(Frame):
|
||||
def fetch_server_data(self):
|
||||
self.clients = request_data(self.server_hostname, 'clients', timeout=3) or []
|
||||
self.renderer_info = request_data(self.server_hostname, 'renderer_info', timeout=3) or {}
|
||||
self.presets = request_data(self.server_hostname, 'presets', timeout=3) or {}
|
||||
|
||||
# update clients
|
||||
self.client_combo['values'] = self.clients
|
||||
@@ -213,6 +224,17 @@ class ScheduleJob(Frame):
|
||||
|
||||
self.refresh_renderer_settings()
|
||||
|
||||
def chose_preset(self, event=None):
|
||||
preset_name = self.presets_combo.get()
|
||||
renderer = self.renderer_combo.get()
|
||||
|
||||
presets_to_show = {key: value for key, value in self.presets.items() if value.get("renderer") == renderer}
|
||||
matching_dict = next((value for value in presets_to_show.values() if value.get("name") == preset_name), None)
|
||||
if matching_dict:
|
||||
self.custom_args_entry.delete(0, END)
|
||||
self.custom_args_entry.insert(0, matching_dict['args'])
|
||||
|
||||
|
||||
def refresh_renderer_settings(self, event=None):
|
||||
renderer = self.renderer_combo.get()
|
||||
|
||||
@@ -235,6 +257,10 @@ class ScheduleJob(Frame):
|
||||
self.output_format['values'] = []
|
||||
self.output_format['state'] = DISABLED
|
||||
|
||||
# update presets
|
||||
presets_to_show = {key: value for key, value in self.presets.items() if value.get("renderer") == renderer}
|
||||
self.presets_combo['values'] = [value['name'] for value in presets_to_show.values()]
|
||||
|
||||
def draw_custom_args(self):
|
||||
if hasattr(self, 'custom_args_frame') and self.custom_args_frame:
|
||||
self.custom_args_frame.forget()
|
||||
|
||||
Reference in New Issue
Block a user