[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59654] branches/soc-2013-depsgraph_mt: Merging r59633 through r59653 from trunk into soc-2013-depsgraph_mt
Sergey Sharybin
sergey.vfx at gmail.com
Fri Aug 30 11:36:41 CEST 2013
Revision: 59654
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59654
Author: nazgul
Date: 2013-08-30 09:36:41 +0000 (Fri, 30 Aug 2013)
Log Message:
-----------
Merging r59633 through r59653 from trunk into soc-2013-depsgraph_mt
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59633
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59653
Modified Paths:
--------------
branches/soc-2013-depsgraph_mt/intern/cycles/render/image.cpp
branches/soc-2013-depsgraph_mt/intern/ghost/intern/GHOST_DisplayManagerSDL.cpp
branches/soc-2013-depsgraph_mt/intern/ghost/intern/GHOST_SystemSDL.cpp
branches/soc-2013-depsgraph_mt/intern/ghost/intern/GHOST_WindowSDL.cpp
branches/soc-2013-depsgraph_mt/intern/ghost/intern/GHOST_WindowSDL.h
branches/soc-2013-depsgraph_mt/intern/guardedalloc/intern/mallocn.c
branches/soc-2013-depsgraph_mt/release/scripts/freestyle/style_modules/parameter_editor.py
branches/soc-2013-depsgraph_mt/release/scripts/startup/bl_ui/__init__.py
branches/soc-2013-depsgraph_mt/release/scripts/startup/bl_ui/space_view3d_toolbar.py
branches/soc-2013-depsgraph_mt/release/scripts/templates_py/ui_list.py
branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/curve.c
branches/soc-2013-depsgraph_mt/source/blender/editors/interface/interface_templates.c
branches/soc-2013-depsgraph_mt/source/blender/editors/mesh/CMakeLists.txt
branches/soc-2013-depsgraph_mt/source/blender/editors/mesh/editmesh_tools.c
branches/soc-2013-depsgraph_mt/source/blender/editors/mesh/mesh_intern.h
branches/soc-2013-depsgraph_mt/source/blender/editors/space_clip/clip_graph_ops.c
branches/soc-2013-depsgraph_mt/source/blender/editors/space_text/text_ops.c
branches/soc-2013-depsgraph_mt/source/blender/render/intern/source/pipeline.c
branches/soc-2013-depsgraph_mt/source/blender/windowmanager/intern/wm_operators.c
branches/soc-2013-depsgraph_mt/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
branches/soc-2013-depsgraph_mt/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
Added Paths:
-----------
branches/soc-2013-depsgraph_mt/doc/python_api/examples/bpy.types.UIList.1.py
branches/soc-2013-depsgraph_mt/doc/python_api/examples/bpy.types.UIList.2.py
branches/soc-2013-depsgraph_mt/release/scripts/templates_py/ui_list_simple.py
branches/soc-2013-depsgraph_mt/source/blender/editors/mesh/editmesh_bisect.c
Removed Paths:
-------------
branches/soc-2013-depsgraph_mt/doc/python_api/examples/bpy.types.UIList.py
Property Changed:
----------------
branches/soc-2013-depsgraph_mt/
branches/soc-2013-depsgraph_mt/source/blender/editors/interface/interface.c
branches/soc-2013-depsgraph_mt/source/blender/editors/space_outliner/
Property changes on: branches/soc-2013-depsgraph_mt
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573,58822,58989
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032,59214,59220,59251,59601
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57395-59632
+ /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573,58822,58989
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032,59214,59220,59251,59601
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57395-59653
Copied: branches/soc-2013-depsgraph_mt/doc/python_api/examples/bpy.types.UIList.1.py (from rev 59653, trunk/blender/doc/python_api/examples/bpy.types.UIList.1.py)
===================================================================
--- branches/soc-2013-depsgraph_mt/doc/python_api/examples/bpy.types.UIList.1.py (rev 0)
+++ branches/soc-2013-depsgraph_mt/doc/python_api/examples/bpy.types.UIList.1.py 2013-08-30 09:36:41 UTC (rev 59654)
@@ -0,0 +1,93 @@
+"""
+Basic UIList Example
++++++++++++++++++++
+This script is the UIList subclass used to show material slots, with a bunch of additional commentaries.
+
+Notice the name of the class, this naming convention is similar as the one for panels or menus.
+
+.. note::
+
+ UIList subclasses must be registered for blender to use them.
+"""
+import bpy
+
+
+class MATERIAL_UL_matslots_example(bpy.types.UIList):
+ # The draw_item function is called for each item of the collection that is visible in the list.
+ # data is the RNA object containing the collection,
+ # item is the current drawn item of the collection,
+ # icon is the "computed" icon for the item (as an integer, because some objects like materials or textures
+ # have custom icons ID, which are not available as enum items).
+ # active_data is the RNA object containing the active property for the collection (i.e. integer pointing to the
+ # active item of the collection).
+ # active_propname is the name of the active property (use 'getattr(active_data, active_propname)').
+ # index is index of the current item in the collection.
+ # flt_flag is the result of the filtering process for this item.
+ # Note: as index and flt_flag are optional arguments, you do not have to use/declare them here if you don't
+ # need them.
+ def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
+ ob = data
+ slot = item
+ ma = slot.material
+ # draw_item must handle the three layout types... Usually 'DEFAULT' and 'COMPACT' can share the same code.
+ if self.layout_type in {'DEFAULT', 'COMPACT'}:
+ # You should always start your row layout by a label (icon + text), this will also make the row easily
+ # selectable in the list!
+ # We use icon_value of label, as our given icon is an integer value, not an enum ID.
+ # Note "data" names should never be translated!
+ layout.label(text=ma.name if ma else "", translate=False, icon_value=icon)
+ # And now we can add other UI stuff...
+ # Here, we add nodes info if this material uses (old!) shading nodes.
+ if ma and not context.scene.render.use_shading_nodes:
+ manode = ma.active_node_material
+ if manode:
+ # The static method UILayout.icon returns the integer value of the icon ID "computed" for the given
+ # RNA object.
+ layout.label(text="Node %s" % manode.name, translate=False, icon_value=layout.icon(manode))
+ elif ma.use_nodes:
+ layout.label(text="Node <none>", translate=False)
+ else:
+ layout.label(text="")
+ # 'GRID' layout type should be as compact as possible (typically a single icon!).
+ elif self.layout_type in {'GRID'}:
+ layout.alignment = 'CENTER'
+ layout.label(text="", icon_value=icon)
+
+
+# And now we can use this list everywhere in Blender. Here is a small example panel.
+class UIListPanelExample(bpy.types.Panel):
+ """Creates a Panel in the Object properties window"""
+ bl_label = "UIList Panel"
+ bl_idname = "OBJECT_PT_ui_list_example"
+ bl_space_type = 'PROPERTIES'
+ bl_region_type = 'WINDOW'
+ bl_context = "object"
+
+ def draw(self, context):
+ layout = self.layout
+
+ obj = context.object
+
+ # template_list now takes two new args.
+ # The first one is the identifier of the registered UIList to use (if you want only the default list,
+ # with no custom draw code, use "UI_UL_list").
+ layout.template_list("MATERIAL_UL_matslots_example", "", obj, "material_slots", obj, "active_material_index")
+
+ # The second one can usually be left as an empty string. It's an additional ID used to distinguish lists in case you
+ # use the same list several times in a given area.
+ layout.template_list("MATERIAL_UL_matslots_example", "compact", obj, "material_slots",
+ obj, "active_material_index", type='COMPACT')
+
+
+def register():
+ bpy.utils.register_class(MATERIAL_UL_matslots_example)
+ bpy.utils.register_class(UIListPanelExample)
+
+
+def unregister():
+ bpy.utils.unregister_class(MATERIAL_UL_matslots_example)
+ bpy.utils.unregister_class(UIListPanelExample)
+
+
+if __name__ == "__main__":
+ register()
Copied: branches/soc-2013-depsgraph_mt/doc/python_api/examples/bpy.types.UIList.2.py (from rev 59653, trunk/blender/doc/python_api/examples/bpy.types.UIList.2.py)
===================================================================
--- branches/soc-2013-depsgraph_mt/doc/python_api/examples/bpy.types.UIList.2.py (rev 0)
+++ branches/soc-2013-depsgraph_mt/doc/python_api/examples/bpy.types.UIList.2.py 2013-08-30 09:36:41 UTC (rev 59654)
@@ -0,0 +1,160 @@
+"""
+Advanced UIList Example - Filtering and Reordering
+++++++++++++++++++++++++++++++++++++++++++++++++++
+This script is an extended version of the UIList subclass used to show vertex groups. It is not used 'as is',
+because iterating over all vertices in a 'draw' function is a very bad idea for UI performances! However, it's a good
+example of how to create/use filtering/reordering callbacks.
+"""
+import bpy
+
+
+class MESH_UL_vgroups_slow(UIList):
+ # Constants (flags)
+ # Be careful not to shadow FILTER_ITEM!
+ VGROUP_EMPTY = 1 << 0
+
+ # Custom properties, saved with .blend file.
+ use_filter_empty = bpy.props.BoolProperty(name="Filter Empty", default=False, options=set(),
+ description="Whether to filter empty vertex groups")
+ use_filter_empty_reverse = bpy.props.BoolProperty(name="Reverse Empty", default=False, options=set(),
+ description="Reverse empty filtering")
+ use_filter_name_reverse = bpy.props.BoolProperty(name="Reverse Name", default=False, options=set(),
+ description="Reverse name filtering")
+
+ # This allows us to have mutually exclusive options, which are also all disable-able!
+ def _gen_order_update(name1, name2):
+ def _u(self, ctxt):
+ if (getattr(self, name1)):
+ setattr(self, name2, False)
+ return _u
+ use_order_name = bpy.props.BoolProperty(name="Name", default=False, options=set(),
+ description="Sort groups by their name (case-insensitive)",
+ update=_gen_order_update("use_order_name", "use_order_importance"))
+ use_order_importance = bpy.props.BoolProperty(name="Importance", default=False, options=set(),
+ description="Sort groups by their average weight in the mesh",
+ update=_gen_order_update("use_order_importance", "use_order_name"))
+
+ # Usual draw item function.
+ def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index, flt_flag):
+ # Just in case, we do not use it here!
+ self.use_filter_invert = False
+
+ # assert(isinstance(item, bpy.types.VertexGroup)
+ vgroup = item
+ if self.layout_type in {'DEFAULT', 'COMPACT'}:
+ # Here we use one feature of new filtering feature: it can pass data to draw_item, through flt_flag
+ # parameter, which contains exactly what filter_items set in its filter list for this item!
+ # In this case, we show empty groups grayed out.
+ if flt_flag & self.VGROUP_EMPTY:
+ col = layout.column()
+ col.enabled = False
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list