From 7af92d6eff8d690789503349991db475dde16972 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sat, 26 Sep 2009 19:50:59 +0000 Subject: netrender: split off job settings in their own panel. Add button to open up web interface in a browser. --- release/io/netrender/operators.py | 44 +++++++++++++++++++++++++++++++++------ release/io/netrender/ui.py | 34 +++++++++++++++++++++++------- 2 files changed, 64 insertions(+), 14 deletions(-) diff --git a/release/io/netrender/operators.py b/release/io/netrender/operators.py index 4278231ab35..42d1f6a0b86 100644 --- a/release/io/netrender/operators.py +++ b/release/io/netrender/operators.py @@ -1,6 +1,7 @@ import bpy import sys, os import http, http.client, http.server, urllib, socket +import webbrowser from netrender.utils import * import netrender.client as client @@ -369,13 +370,13 @@ class netclientscan(bpy.types.Operator): def execute(self, context): netsettings = context.scene.network_render - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) - s.settimeout(30) - - s.bind(('', 8000)) - try: + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) + s.settimeout(30) + + s.bind(('', 8000)) + buf, address = s.recvfrom(64) print("received:", buf) @@ -389,3 +390,34 @@ class netclientscan(bpy.types.Operator): def invoke(self, context, event): return self.execute(context) + +@rnaOperator +class netclientweb(bpy.types.Operator): + '''Operator documentation text, will be used for the operator tooltip and python docs.''' + __idname__ = "render.netclientweb" + __label__ = "Net Render Client Web" + + # List of operator properties, the attributes will be assigned + # to the class instance from the operator settings before calling. + + __props__ = [] + + def poll(self, context): + return True + + def execute(self, context): + netsettings = context.scene.network_render + + + # open connection to make sure server exists + conn = clientConnection(context.scene) + + if conn: + conn.close() + + webbrowser.open("http://%s:%i" % (netsettings.server_address, netsettings.server_port)) + + return ('FINISHED',) + + def invoke(self, context, event): + return self.execute(context) diff --git a/release/io/netrender/ui.py b/release/io/netrender/ui.py index 7ee0b64d150..ddaf0e6854a 100644 --- a/release/io/netrender/ui.py +++ b/release/io/netrender/ui.py @@ -48,9 +48,6 @@ class SCENE_PT_network_settings(RenderButtonsPanel): col = split.column() - if scene.network_render.mode == "RENDER_CLIENT": - col.itemO("render.netclientanim", icon='ICON_RENDER_ANIMATION', text="Animaton on network") - col.itemR(scene.network_render, "mode") col.itemR(scene.network_render, "path") col.itemR(scene.network_render, "server_address") @@ -60,12 +57,33 @@ class SCENE_PT_network_settings(RenderButtonsPanel): col.itemR(scene.network_render, "server_broadcast") else: col.itemO("render.netclientscan", icon="ICON_FILE_REFRESH", text="") + +@rnaType +class SCENE_PT_network_job(RenderButtonsPanel): + __label__ = "Job Settings" + COMPAT_ENGINES = set(['NET_RENDER']) + + def poll(self, context): + scene = context.scene + return super().poll(context) and scene.network_render.mode == "RENDER_CLIENT" + + def draw(self, context): + layout = self.layout + scene = context.scene + rd = scene.render_data + + layout.active = True + + split = layout.split() + + col = split.column() - if scene.network_render.mode == "RENDER_CLIENT": - col.itemO("render.netclientsend", text="send job to server") - col.itemR(scene.network_render, "job_name") - col.itemR(scene.network_render, "priority") - col.itemR(scene.network_render, "chunks") + col.itemO("render.netclientanim", icon='ICON_RENDER_ANIMATION', text="Animaton on network") + col.itemO("render.netclientsend", icon="ICON_FILE_BLEND", text="Send job") + col.itemO("render.netclientweb", icon="ICON_QUESTION", text="Open Master Monitor") + col.itemR(scene.network_render, "job_name") + col.itemR(scene.network_render, "priority") + col.itemR(scene.network_render, "chunks") @rnaType class SCENE_PT_network_slaves(RenderButtonsPanel): -- cgit v1.2.3