mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
add open browser button and operator
This commit is contained in:
@@ -23,6 +23,7 @@ classes = (
|
||||
operator.ConnectToWebsocketServer,
|
||||
operator.DisconnectWebsocketServer,
|
||||
operator.killWebsocketServer,
|
||||
operator.OpenWebBrowser,
|
||||
prop.WebProperties,
|
||||
ui.BIM_PT_webui,
|
||||
)
|
||||
|
||||
@@ -55,3 +55,12 @@ class killWebsocketServer(bpy.types.Operator):
|
||||
def execute(self, context):
|
||||
core.kill_websocket_server(tool.Web)
|
||||
return {"FINISHED"}
|
||||
|
||||
|
||||
class OpenWebBrowser(bpy.types.Operator):
|
||||
bl_idname = "bim.open_web_browser"
|
||||
bl_label = "Open Web Browser"
|
||||
bl_description = "Open the web UI base URL in your Web Browser"
|
||||
|
||||
def execute(self, context):
|
||||
core.open_web_browser(tool.Web)
|
||||
|
||||
@@ -41,8 +41,9 @@ class BIM_PT_webui(Panel):
|
||||
row = layout.row()
|
||||
row.label(text=f"Running on port: {props.webserver_port}")
|
||||
|
||||
row = layout.row()
|
||||
row = layout.row(align=True)
|
||||
row.operator("bim.connect_websocket_server")
|
||||
row.operator("bim.open_web_browser", icon="URL", text="")
|
||||
|
||||
if props.is_connected:
|
||||
row = layout.row()
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
def open_web_ui(web):
|
||||
web.open_web_ui()
|
||||
|
||||
|
||||
def generate_port_number(web):
|
||||
return web.generate_port_number()
|
||||
|
||||
@@ -20,3 +16,7 @@ def disconnect_websocket_server(web):
|
||||
|
||||
def kill_websocket_server(web):
|
||||
web.kill_websocket_server()
|
||||
|
||||
|
||||
def open_web_browser(web):
|
||||
web.open_web_browser()
|
||||
|
||||
@@ -59,6 +59,7 @@ class Web(blenderbim.core.tool.Web):
|
||||
global ws_process
|
||||
ws_path = os.path.join(bpy.context.scene.BIMProperties.data_dir, "webui", "sioserver.py")
|
||||
ws_process = subprocess.Popen(["python", ws_path, "--p", str(port), "--host", "127.0.0.1"])
|
||||
cls.open_web_browser(port)
|
||||
cls.set_is_running(True)
|
||||
|
||||
@classmethod
|
||||
@@ -118,6 +119,10 @@ class Web(blenderbim.core.tool.Web):
|
||||
data["ifc_file"] = bpy.context.scene.BIMProperties.ifc_file
|
||||
return json.dumps(data)
|
||||
|
||||
@classmethod
|
||||
def open_web_browser(cls, port):
|
||||
webbrowser.open(f"http://127.0.0.1:{port}/")
|
||||
|
||||
@classmethod
|
||||
async def sio_connect(cls, url):
|
||||
await sio.connect(url, transports=["websocket"], namespaces="/blender")
|
||||
|
||||
Reference in New Issue
Block a user