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 = QHBoxLayout()
|
||||||
server_list_layout.addWidget(QLabel("Render Target:"))
|
server_list_layout.addWidget(QLabel("Render Target:"))
|
||||||
self.server_input = QComboBox()
|
self.server_input = QComboBox()
|
||||||
|
self.server_input.currentTextChanged.connect(self.server_changed)
|
||||||
server_list_layout.addWidget(self.server_input)
|
server_list_layout.addWidget(self.server_input)
|
||||||
project_layout.addLayout(server_list_layout)
|
project_layout.addLayout(server_list_layout)
|
||||||
|
|
||||||
@@ -353,10 +354,27 @@ class NewRenderJobForm(QWidget):
|
|||||||
self.engine_version_combo.addItems(engine_vers)
|
self.engine_version_combo.addItems(engine_vers)
|
||||||
self.file_format_combo.addItems(engine_info.get('supported_export_formats'))
|
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):
|
def update_server_list(self):
|
||||||
|
current_hostname = self.server_input.currentText()
|
||||||
clients = ZeroconfServer.found_hostnames()
|
clients = ZeroconfServer.found_hostnames()
|
||||||
self.server_input.clear()
|
self.server_input.clear()
|
||||||
self.server_input.addItems(clients)
|
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):
|
def browse_scene_file(self):
|
||||||
file_name, _ = QFileDialog.getOpenFileName(self, "Select Scene File")
|
file_name, _ = QFileDialog.getOpenFileName(self, "Select Scene File")
|
||||||
|
|||||||
+15
-16
@@ -229,26 +229,22 @@ class MainWindow(QMainWindow):
|
|||||||
|
|
||||||
def server_picked(self):
|
def server_picked(self):
|
||||||
"""Update the UI elements relevant to the server selection."""
|
"""Update the UI elements relevant to the server selection."""
|
||||||
try:
|
current_item = self.server_list_view.currentItem()
|
||||||
# Retrieve the new hostname selected by the user
|
if current_item is None:
|
||||||
new_hostname = self.server_list_view.currentItem().text()
|
return
|
||||||
|
|
||||||
# Check if the hostname has changed to avoid unnecessary updates
|
new_hostname = current_item.text()
|
||||||
if new_hostname != self.current_hostname:
|
if new_hostname == self.current_hostname:
|
||||||
# Update the current hostname and clear the job list
|
return
|
||||||
self.current_hostname = new_hostname
|
|
||||||
self.job_list_view.setRowCount(0)
|
|
||||||
self.refresh_job_list()
|
|
||||||
|
|
||||||
# Select the first row if there are jobs listed
|
self.current_hostname = new_hostname
|
||||||
if self.job_list_view.rowCount():
|
self.job_list_view.setRowCount(0)
|
||||||
self.job_list_view.selectRow(0)
|
self.refresh_job_list()
|
||||||
|
|
||||||
# Update server information display
|
if self.job_list_view.rowCount():
|
||||||
self.update_server_info_display(new_hostname)
|
self.job_list_view.selectRow(0)
|
||||||
|
|
||||||
except AttributeError as e:
|
self.update_server_info_display(new_hostname)
|
||||||
logger.error(f"AttributeError in server_picked: {e}")
|
|
||||||
|
|
||||||
def update_server_info_display(self, hostname):
|
def update_server_info_display(self, hostname):
|
||||||
"""Updates the server information section of the UI."""
|
"""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():
|
if not old_count and self.server_list_view.count():
|
||||||
self.server_list_view.setCurrentRow(0)
|
self.server_list_view.setCurrentRow(0)
|
||||||
self.server_picked()
|
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:
|
def create_toolbars(self) -> None:
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user