[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4807] contrib/py/scripts/addons/ scene_amaranth_toolset.py: Two new features from project pampa (caminandes) :

Pablo Vazquez venomgfx at gmail.com
Thu Oct 17 15:12:34 CEST 2013


Revision: 4807
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4807
Author:   venomgfx
Date:     2013-10-17 13:12:34 +0000 (Thu, 17 Oct 2013)
Log Message:
-----------
Two new features from project pampa (caminandes):

Libraries panel on the file browser
- Display a list of links to the libraries folders for easier access to previously linked assets (Thanks to Sergey for help here)

Mtaterial indicator on Particle settings
- Particle settings lets you choose a material if you know its index, now displays the name of it as well, no more guessing!

Modified Paths:
--------------
    contrib/py/scripts/addons/scene_amaranth_toolset.py

Modified: contrib/py/scripts/addons/scene_amaranth_toolset.py
===================================================================
--- contrib/py/scripts/addons/scene_amaranth_toolset.py	2013-10-16 17:56:01 UTC (rev 4806)
+++ contrib/py/scripts/addons/scene_amaranth_toolset.py	2013-10-17 13:12:34 UTC (rev 4807)
@@ -19,8 +19,8 @@
 bl_info = {
     "name": "Amaranth Toolset",
     "author": "Pablo Vazquez, Bassam Kurdali, Sergey Sharybin",
-    "version": (0, 6),
-    "blender": (2, 68),
+    "version": (0, 7),
+    "blender": (2, 69),
     "location": "Scene Properties > Amaranth Toolset Panel",
     "description": "A collection of tools and settings to improve productivity",
     "warning": "",
@@ -30,7 +30,7 @@
 
 
 import bpy
-from bpy.types import Operator, AddonPreferences
+from bpy.types import Operator, AddonPreferences, Panel
 from bpy.props import BoolProperty
 from mathutils import Vector
 from bpy.app.handlers import persistent
@@ -291,6 +291,63 @@
             icon='APPEND_BLEND')
 # // FEATURE: Directory Current Blend
 
+# FEATURE: Libraries panel on file browser
+class FILE_PT_libraries(Panel):
+    bl_space_type = 'FILE_BROWSER'
+    bl_region_type = 'CHANNELS'
+    bl_label = "Libraries"
+
+    def draw(self, context):
+        layout = self.layout
+
+        libs = bpy.data.libraries
+        libslist = []
+
+        # Build the list of folders from libraries
+        import os
+
+        for lib in libs:
+            directory_name = os.path.dirname(lib.filepath)
+            libslist.append(directory_name)
+
+        # Remove duplicates and sort by name
+        libslist = set(libslist)
+        libslist = sorted(libslist)
+
+        # Draw the box with libs
+        
+        row = layout.row()
+        box = row.box()
+       
+        if libslist:
+            for filepath in libslist:
+                if filepath != '//':
+                    split = box.split(percentage=0.85)
+                    col = split.column()
+                    sub = col.column(align=True)
+                    sub.label(text=filepath)
+            
+                    col = split.column()
+                    sub = col.column(align=True)
+                    props = sub.operator(
+                        FILE_OT_directory_go_to.bl_idname,
+                        text="", icon="BOOKMARKS")
+                    props.filepath = filepath
+        else:
+            box.label(text='No libraries loaded')
+
+class FILE_OT_directory_go_to(Operator):
+    """Go to this library's directory"""
+    bl_idname = "file.directory_go_to"
+    bl_label = "Go To"
+    
+    filepath = bpy.props.StringProperty(subtype="FILE_PATH")
+
+    def execute(self, context):
+
+        bpy.ops.file.select_bookmark(dir=self.filepath)
+        return {'FINISHED'}
+    
 # FEATURE: Node Templates
 class NODE_OT_AddTemplateVignette(Operator):
     bl_idname = "node.template_add_vignette"
@@ -797,19 +854,37 @@
         row.prop(obj, "show_transparent", text="Viewport Alpha")
         row.active = obj.show_transparent
         row.prop(mat, "alpha", text="Alpha")
+# // FEATURE: Cycles Viewport Extra Settings
 
+# FEATURE: Particles Material indicator
+def particles_material_info(self, context):
+
+    layout = self.layout
+
+    ob = context.object
+    psys = context.particle_system
+
+    layout.label(
+        text="Material: %s" % ob.material_slots[psys.settings.material-1].name \
+            if psys.settings.material <= len(ob.material_slots) \
+            else "No material with this index. Using '{}'".format( \
+                ob.material_slots[len(ob.material_slots)-1].name))
+# // FEATURE: Particles Material indicator
+
 classes = (SCENE_OT_refresh,
            WM_OT_save_reload,
            NODE_OT_AddTemplateVignette,
            NODE_MT_amaranth_templates,
            FILE_OT_directory_current_blend,
+           FILE_OT_directory_go_to,
            NODE_PT_indices,
            NODE_PT_simplify,
            NODE_OT_toggle_mute,
            NODE_OT_show_active_node_image,
            VIEW3D_OT_render_border_camera,
            VIEW3D_OT_show_only_render,
-           OBJECT_OT_select_meshlights)
+           OBJECT_OT_select_meshlights,
+           FILE_PT_libraries)
 
 addon_keymaps = []
 
@@ -849,6 +924,8 @@
     bpy.types.SCENE_PT_simplify.append(unsimplify_ui)
     bpy.types.CyclesScene_PT_simplify.append(unsimplify_ui)
 
+    bpy.types.PARTICLE_PT_render.prepend(particles_material_info)
+
     bpy.app.handlers.render_pre.append(unsimplify_render_pre)
     bpy.app.handlers.render_post.append(unsimplify_render_post)
 
@@ -911,6 +988,8 @@
     bpy.types.SCENE_PT_simplify.remove(unsimplify_ui)
     bpy.types.CyclesScene_PT_simplify.remove(unsimplify_ui)
 
+    bpy.types.PARTICLE_PT_render.remove(particles_material_info)
+
     bpy.app.handlers.render_pre.remove(unsimplify_render_pre)
     bpy.app.handlers.render_post.remove(unsimplify_render_post)
     
@@ -922,3 +1001,4 @@
 
 if __name__ == "__main__":
     register()
+



More information about the Bf-extensions-cvs mailing list