mirror of
https://github.com/blw1138/Zordon.git
synced 2026-06-09 13:39:24 -05:00
Fix issue where add job window always submits to localhost, regardless of selected hostname (#135)
This commit is contained in:
@@ -133,6 +133,7 @@ class NewRenderJobForm(QWidget):
|
||||
server_list_layout = QHBoxLayout()
|
||||
server_list_layout.addWidget(QLabel("Render Target:"))
|
||||
self.server_input = QComboBox()
|
||||
self.server_input.currentTextChanged.connect(self.server_changed)
|
||||
server_list_layout.addWidget(self.server_input)
|
||||
project_layout.addLayout(server_list_layout)
|
||||
|
||||
@@ -353,10 +354,27 @@ class NewRenderJobForm(QWidget):
|
||||
self.engine_version_combo.addItems(engine_vers)
|
||||
self.file_format_combo.addItems(engine_info.get('supported_export_formats'))
|
||||
|
||||
def server_changed(self, hostname):
|
||||
if not hostname:
|
||||
return
|
||||
|
||||
self.server_proxy = RenderServerProxy(hostname)
|
||||
|
||||
if self.engine_type and self.engine_type.count():
|
||||
try:
|
||||
self.engine_changed()
|
||||
except Exception as e:
|
||||
logger.error(f"Error updating engine data for server '{hostname}': {e}")
|
||||
|
||||
def update_server_list(self):
|
||||
current_hostname = self.server_input.currentText()
|
||||
clients = ZeroconfServer.found_hostnames()
|
||||
self.server_input.clear()
|
||||
self.server_input.addItems(clients)
|
||||
if current_hostname and current_hostname in clients:
|
||||
self.server_input.setCurrentText(current_hostname)
|
||||
elif clients:
|
||||
self.server_changed(clients[0])
|
||||
|
||||
def browse_scene_file(self):
|
||||
file_name, _ = QFileDialog.getOpenFileName(self, "Select Scene File")
|
||||
|
||||
+15
-16
@@ -229,26 +229,22 @@ class MainWindow(QMainWindow):
|
||||
|
||||
def server_picked(self):
|
||||
"""Update the UI elements relevant to the server selection."""
|
||||
try:
|
||||
# Retrieve the new hostname selected by the user
|
||||
new_hostname = self.server_list_view.currentItem().text()
|
||||
current_item = self.server_list_view.currentItem()
|
||||
if current_item is None:
|
||||
return
|
||||
|
||||
# Check if the hostname has changed to avoid unnecessary updates
|
||||
if new_hostname != self.current_hostname:
|
||||
# Update the current hostname and clear the job list
|
||||
self.current_hostname = new_hostname
|
||||
self.job_list_view.setRowCount(0)
|
||||
self.refresh_job_list()
|
||||
new_hostname = current_item.text()
|
||||
if new_hostname == self.current_hostname:
|
||||
return
|
||||
|
||||
# Select the first row if there are jobs listed
|
||||
if self.job_list_view.rowCount():
|
||||
self.job_list_view.selectRow(0)
|
||||
self.current_hostname = new_hostname
|
||||
self.job_list_view.setRowCount(0)
|
||||
self.refresh_job_list()
|
||||
|
||||
# Update server information display
|
||||
self.update_server_info_display(new_hostname)
|
||||
if self.job_list_view.rowCount():
|
||||
self.job_list_view.selectRow(0)
|
||||
|
||||
except AttributeError as e:
|
||||
logger.error(f"AttributeError in server_picked: {e}")
|
||||
self.update_server_info_display(new_hostname)
|
||||
|
||||
def update_server_info_display(self, hostname):
|
||||
"""Updates the server information section of the UI."""
|
||||
@@ -494,6 +490,9 @@ class MainWindow(QMainWindow):
|
||||
if not old_count and self.server_list_view.count():
|
||||
self.server_list_view.setCurrentRow(0)
|
||||
self.server_picked()
|
||||
elif self.server_list_view.count() and self.server_list_view.currentItem() is None:
|
||||
self.server_list_view.setCurrentRow(0)
|
||||
self.server_picked()
|
||||
|
||||
def create_toolbars(self) -> None:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user