[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23498] trunk/blender/release/io/netrender : netrender: split off job settings in their own panel.

Martin Poirier theeth at yahoo.com
Sat Sep 26 21:51:00 CEST 2009


Revision: 23498
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23498
Author:   theeth
Date:     2009-09-26 21:50:59 +0200 (Sat, 26 Sep 2009)

Log Message:
-----------
netrender: split off job settings in their own panel. Add button to open up web interface in a browser.

Modified Paths:
--------------
    trunk/blender/release/io/netrender/operators.py
    trunk/blender/release/io/netrender/ui.py

Modified: trunk/blender/release/io/netrender/operators.py
===================================================================
--- trunk/blender/release/io/netrender/operators.py	2009-09-26 16:43:20 UTC (rev 23497)
+++ trunk/blender/release/io/netrender/operators.py	2009-09-26 19:50:59 UTC (rev 23498)
@@ -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 @@
 	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 @@
 	
 	def invoke(self, context, event):
 		return self.execute(context)
+
+ at 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)

Modified: trunk/blender/release/io/netrender/ui.py
===================================================================
--- trunk/blender/release/io/netrender/ui.py	2009-09-26 16:43:20 UTC (rev 23497)
+++ trunk/blender/release/io/netrender/ui.py	2009-09-26 19:50:59 UTC (rev 23498)
@@ -48,9 +48,6 @@
 		
 		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 @@
 			col.itemR(scene.network_render, "server_broadcast")
 		else:
 			col.itemO("render.netclientscan", icon="ICON_FILE_REFRESH", text="")
+
+ at 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
 		
-		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")
+		layout.active = True
+		
+		split = layout.split()
+		
+		col = split.column()
+		
+		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):





More information about the Bf-blender-cvs mailing list