mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-21 22:50:56 +00:00
add open browser button and operator
This commit is contained in:
@@ -23,6 +23,7 @@ classes = (
|
|||||||
operator.ConnectToWebsocketServer,
|
operator.ConnectToWebsocketServer,
|
||||||
operator.DisconnectWebsocketServer,
|
operator.DisconnectWebsocketServer,
|
||||||
operator.killWebsocketServer,
|
operator.killWebsocketServer,
|
||||||
|
operator.OpenWebBrowser,
|
||||||
prop.WebProperties,
|
prop.WebProperties,
|
||||||
ui.BIM_PT_webui,
|
ui.BIM_PT_webui,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -55,3 +55,12 @@ class killWebsocketServer(bpy.types.Operator):
|
|||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
core.kill_websocket_server(tool.Web)
|
core.kill_websocket_server(tool.Web)
|
||||||
return {"FINISHED"}
|
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 = layout.row()
|
||||||
row.label(text=f"Running on port: {props.webserver_port}")
|
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.connect_websocket_server")
|
||||||
|
row.operator("bim.open_web_browser", icon="URL", text="")
|
||||||
|
|
||||||
if props.is_connected:
|
if props.is_connected:
|
||||||
row = layout.row()
|
row = layout.row()
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
def open_web_ui(web):
|
|
||||||
web.open_web_ui()
|
|
||||||
|
|
||||||
|
|
||||||
def generate_port_number(web):
|
def generate_port_number(web):
|
||||||
return web.generate_port_number()
|
return web.generate_port_number()
|
||||||
|
|
||||||
@@ -20,3 +16,7 @@ def disconnect_websocket_server(web):
|
|||||||
|
|
||||||
def kill_websocket_server(web):
|
def kill_websocket_server(web):
|
||||||
web.kill_websocket_server()
|
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
|
global ws_process
|
||||||
ws_path = os.path.join(bpy.context.scene.BIMProperties.data_dir, "webui", "sioserver.py")
|
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"])
|
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)
|
cls.set_is_running(True)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -118,6 +119,10 @@ class Web(blenderbim.core.tool.Web):
|
|||||||
data["ifc_file"] = bpy.context.scene.BIMProperties.ifc_file
|
data["ifc_file"] = bpy.context.scene.BIMProperties.ifc_file
|
||||||
return json.dumps(data)
|
return json.dumps(data)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def open_web_browser(cls, port):
|
||||||
|
webbrowser.open(f"http://127.0.0.1:{port}/")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def sio_connect(cls, url):
|
async def sio_connect(cls, url):
|
||||||
await sio.connect(url, transports=["websocket"], namespaces="/blender")
|
await sio.connect(url, transports=["websocket"], namespaces="/blender")
|
||||||
|
|||||||
Reference in New Issue
Block a user