[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3754] contrib/py/scripts/addons/ oscurart_tools.py: Add a GUI for overrides!
Eugenio Pignataro
info at oscurart.com.ar
Tue Sep 18 21:21:12 CEST 2012
Revision: 3754
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3754
Author: oscurart
Date: 2012-09-18 19:21:12 +0000 (Tue, 18 Sep 2012)
Log Message:
-----------
Add a GUI for overrides!
Modified Paths:
--------------
contrib/py/scripts/addons/oscurart_tools.py
Modified: contrib/py/scripts/addons/oscurart_tools.py
===================================================================
--- contrib/py/scripts/addons/oscurart_tools.py 2012-09-18 14:22:02 UTC (rev 3753)
+++ contrib/py/scripts/addons/oscurart_tools.py 2012-09-18 19:21:12 UTC (rev 3754)
@@ -2277,8 +2277,80 @@
self.Booly = True
self.Boolz = True
return context.window_manager.invoke_props_dialog(self)
+
+##--------------------------------- OVERRIDES PANEL ----------------------------------
+
+class OscOverridesGUI(bpy.types.Panel):
+ bl_label = "Oscurart Material Overrides"
+ bl_idname = "Oscurart Overrides List"
+ bl_space_type = "PROPERTIES"
+ bl_region_type = "WINDOW"
+ bl_context = "render"
+ def draw(self,context):
+
+ layout = self.layout
+ col = layout.column(align=1)
+ colrow = col.row(align=1)
+ colrow.operator("render.overrides_add_slot", icon = "ZOOMIN")
+ colrow.operator("render.overrides_remove_slot", icon = "ZOOMOUT")
+ col.operator("render.overrides_transfer", icon = "SHORTDISPLAY")
+ split = self.layout.split(percentage=0.5)
+ col1,col2= split.column(align=True),split.column(align=True)
+ for m in bpy.context.scene.ovlist:
+ col1.prop_search(m, "grooverride", bpy.data, "groups", text= "")
+ for m in bpy.context.scene.ovlist:
+ col2.prop_search(m, "matoverride", bpy.data, "materials", text= "")
+
+
+
+class OscOverridesProp(bpy.types.PropertyGroup):
+ matoverride = bpy.props.StringProperty()
+ grooverride = bpy.props.StringProperty()
+
+bpy.utils.register_class(OscOverridesGUI)
+bpy.utils.register_class(OscOverridesProp)
+#bpy.types.Material.oscurart_override = bpy.props.StringProperty()
+bpy.types.Scene.ovlist = bpy.props.CollectionProperty(type=OscOverridesProp)
+
+
+class OscTransferOverrides (bpy.types.Operator):
+ """Tooltip"""
+ bl_idname = "render.overrides_transfer"
+ bl_label = "Transfer Overrides"
+
+ def execute(self, context):
+ # CREO LISTA
+ OSCOV = [[OVERRIDE.grooverride,OVERRIDE.matoverride]for OVERRIDE in bpy.context.scene.ovlist[:] if OVERRIDE.matoverride != "" or OVERRIDE.grooverride != ""]
+
+ bpy.context.scene["OVERRIDE"] = str(OSCOV)
+ return {'FINISHED'}
+
+class OscAddOverridesSlot (bpy.types.Operator):
+ """Tooltip"""
+ bl_idname = "render.overrides_add_slot"
+ bl_label = "Add Override Slot"
+
+ def execute(self, context):
+ prop = bpy.context.scene.ovlist.add()
+ prop.matoverride = ""
+ prop.grooverride = ""
+ return {'FINISHED'}
+
+class OscRemoveOverridesSlot (bpy.types.Operator):
+ """Tooltip"""
+ bl_idname = "render.overrides_remove_slot"
+ bl_label = "Remove Override Slot"
+
+ def execute(self, context):
+ bpy.context.scene.ovlist.remove(len(bpy.context.scene.ovlist)-1)
+ return {'FINISHED'}
+
+bpy.utils.register_class(OscTransferOverrides)
+bpy.utils.register_class(OscAddOverridesSlot)
+bpy.utils.register_class(OscRemoveOverridesSlot)
+
##======================================================================================FIN DE SCRIPTS
@@ -2329,6 +2401,8 @@
bpy.utils.register_class(DialogDistributeOsc)
+
+
def unregister():
bpy.utils.unregister_class(OscPanelControl)
bpy.utils.unregister_class(OscPanelObject)
More information about the Bf-extensions-cvs
mailing list