mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
New job window now lets you pick from all detected servers
This commit is contained in:
@@ -64,12 +64,12 @@ class ChecklistBox(Frame):
|
||||
|
||||
class NewJobWindow(Frame):
|
||||
|
||||
def __init__(self, parent=None, hostname=None):
|
||||
def __init__(self, parent=None, clients=None):
|
||||
super().__init__(parent)
|
||||
|
||||
self.server_proxy = RenderServerProxy(hostname=hostname)
|
||||
self.clients = clients or []
|
||||
self.server_proxy = RenderServerProxy(hostname=clients[0] if clients else None)
|
||||
self.chosen_file = None
|
||||
self.clients = []
|
||||
self.presets = {}
|
||||
self.renderer_info = {}
|
||||
self.priority = IntVar(value=2)
|
||||
@@ -99,6 +99,10 @@ class NewJobWindow(Frame):
|
||||
|
||||
self.client_combo = Combobox(client_frame, state="readonly")
|
||||
self.client_combo.pack(fill=X, padx=5, expand=True)
|
||||
self.client_combo.bind('<<ComboboxSelected>>', self.client_picked)
|
||||
self.client_combo['values'] = self.clients
|
||||
if self.clients:
|
||||
self.client_combo.current(0)
|
||||
|
||||
# renderer frame
|
||||
renderer_frame = Frame(job_frame)
|
||||
@@ -156,16 +160,14 @@ class NewJobWindow(Frame):
|
||||
|
||||
self.fetch_server_data()
|
||||
|
||||
def client_picked(self):
|
||||
self.server_proxy.hostname = self.client_combo.get()
|
||||
self.fetch_server_data()
|
||||
|
||||
def fetch_server_data(self):
|
||||
self.clients = self.server_proxy.request_data('clients', timeout=3) or []
|
||||
self.renderer_info = self.server_proxy.request_data('renderer_info', timeout=3) or {}
|
||||
self.presets = self.server_proxy.request_data('presets', timeout=3) or {}
|
||||
|
||||
# update clients
|
||||
self.client_combo['values'] = self.clients
|
||||
if self.clients:
|
||||
self.client_combo.current(0)
|
||||
|
||||
# update available renders
|
||||
available_renderers = [x for x in self.renderer_info.keys() if self.renderer_info[x].get('available', False)]
|
||||
self.renderer_combo['values'] = available_renderers
|
||||
@@ -174,25 +176,6 @@ class NewJobWindow(Frame):
|
||||
|
||||
self.refresh_renderer_settings()
|
||||
|
||||
def request_new_hostname(self):
|
||||
hostname = None
|
||||
while not hostname:
|
||||
user_hostname_input = askstring("Server Name", "What is the server's hostname?")
|
||||
if not user_hostname_input: # user input is none if they press cancel
|
||||
return
|
||||
server_status = request_data(user_hostname_input, 'status', timeout=server_setup_timeout)
|
||||
if not server_status:
|
||||
messagebox.showerror("Cannot connect", f"Cannot connect to server \"{user_hostname_input}\"")
|
||||
else:
|
||||
hostname = user_hostname_input
|
||||
self.set_hostname(hostname)
|
||||
|
||||
def set_hostname(self, hostname):
|
||||
self.server_hostname = hostname
|
||||
self.server_button.configure(text=self.server_hostname)
|
||||
with open(prefs_name, 'w') as file: # save to prefs
|
||||
file.write(hostname)
|
||||
|
||||
def choose_file_button(self):
|
||||
self.chosen_file = filedialog.askopenfilename()
|
||||
button_text = os.path.basename(self.chosen_file) if self.chosen_file else "no file selected"
|
||||
|
||||
Reference in New Issue
Block a user