mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +00:00
Add engine_help_viewer.py
This commit is contained in:
@@ -489,6 +489,15 @@ def get_renderer_args(renderer):
|
|||||||
return f"Cannot find renderer '{renderer}'", 400
|
return f"Cannot find renderer '{renderer}'", 400
|
||||||
|
|
||||||
|
|
||||||
|
@server.get('/api/renderer/<renderer>/help')
|
||||||
|
def get_renderer_help(renderer):
|
||||||
|
try:
|
||||||
|
renderer_engine_class = EngineManager.engine_with_name(renderer)
|
||||||
|
return renderer_engine_class().get_help()
|
||||||
|
except LookupError:
|
||||||
|
return f"Cannot find renderer '{renderer}'", 400
|
||||||
|
|
||||||
|
|
||||||
@server.route('/upload')
|
@server.route('/upload')
|
||||||
def upload_file_page():
|
def upload_file_page():
|
||||||
return render_template('upload.html', supported_renderers=EngineManager.supported_engines())
|
return render_template('upload.html', supported_renderers=EngineManager.supported_engines())
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ from PyQt6.QtWidgets import (
|
|||||||
|
|
||||||
from src.api.server_proxy import RenderServerProxy
|
from src.api.server_proxy import RenderServerProxy
|
||||||
from src.engines.engine_manager import EngineManager
|
from src.engines.engine_manager import EngineManager
|
||||||
|
from src.ui.engine_help_viewer import EngineHelpViewer
|
||||||
from src.utilities.zeroconf_server import ZeroconfServer
|
from src.utilities.zeroconf_server import ZeroconfServer
|
||||||
|
|
||||||
|
|
||||||
@@ -18,6 +19,7 @@ class NewRenderJobForm(QWidget):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
# UI
|
# UI
|
||||||
|
self.engine_help_viewer = None
|
||||||
self.raw_args = None
|
self.raw_args = None
|
||||||
self.submit_progress_label = None
|
self.submit_progress_label = None
|
||||||
self.submit_progress = None
|
self.submit_progress = None
|
||||||
@@ -217,8 +219,10 @@ class NewRenderJobForm(QWidget):
|
|||||||
self.output_path_input.setText(directory)
|
self.output_path_input.setText(directory)
|
||||||
|
|
||||||
def args_help_button_clicked(self):
|
def args_help_button_clicked(self):
|
||||||
#todo: create a popup window showing args
|
url = (f'http://{self.server_proxy.hostname}:{self.server_proxy.port}/api/renderer/'
|
||||||
pass
|
f'{self.renderer_type.currentText()}/help')
|
||||||
|
self.engine_help_viewer = EngineHelpViewer(url)
|
||||||
|
self.engine_help_viewer.show()
|
||||||
|
|
||||||
# -------- Update --------
|
# -------- Update --------
|
||||||
|
|
||||||
@@ -271,6 +275,7 @@ class NewRenderJobForm(QWidget):
|
|||||||
callback=create_callback)
|
callback=create_callback)
|
||||||
self.submit_progress.setMaximum(0)
|
self.submit_progress.setMaximum(0)
|
||||||
|
|
||||||
|
# todo: error handle
|
||||||
print(result.json())
|
print(result.json())
|
||||||
self.submit_button.setHidden(False)
|
self.submit_button.setHidden(False)
|
||||||
self.submit_progress.setHidden(True)
|
self.submit_progress.setHidden(True)
|
||||||
|
|||||||
30
src/ui/engine_help_viewer.py
Normal file
30
src/ui/engine_help_viewer.py
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import requests
|
||||||
|
from PyQt6.QtGui import QFont
|
||||||
|
from PyQt6.QtWidgets import QMainWindow, QVBoxLayout, QWidget, QPlainTextEdit
|
||||||
|
|
||||||
|
|
||||||
|
class EngineHelpViewer(QMainWindow):
|
||||||
|
def __init__(self, log_path):
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
self.help_path = log_path
|
||||||
|
self.setGeometry(100, 100, 600, 800)
|
||||||
|
self.setWindowTitle("Help Output")
|
||||||
|
|
||||||
|
self.text_edit = QPlainTextEdit(self)
|
||||||
|
self.text_edit.setReadOnly(True)
|
||||||
|
self.text_edit.setFont(QFont("Courier", 10))
|
||||||
|
|
||||||
|
layout = QVBoxLayout()
|
||||||
|
layout.addWidget(self.text_edit)
|
||||||
|
layout.setContentsMargins(0, 0, 0, 0)
|
||||||
|
|
||||||
|
central_widget = QWidget()
|
||||||
|
central_widget.setLayout(layout)
|
||||||
|
self.setCentralWidget(central_widget)
|
||||||
|
|
||||||
|
self.fetch_help()
|
||||||
|
|
||||||
|
def fetch_help(self):
|
||||||
|
result = requests.get(self.help_path)
|
||||||
|
self.text_edit.setPlainText(result.text)
|
||||||
Reference in New Issue
Block a user