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)
+
+...@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="")
+
+...@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):


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to