[Bf-extensions-cvs] [9b4eb64d] master: space_view3d_brush_menus: initial update to 2.8 series : T68350

Ryan Inch noreply at git.blender.org
Sun Aug 18 04:32:36 CEST 2019


Commit: 9b4eb64de707ba899f7c37b019ee4991f0917615
Author: Ryan Inch
Date:   Sat Aug 17 03:33:43 2019 -0400
Branches: master
https://developer.blender.org/rBAC9b4eb64de707ba899f7c37b019ee4991f0917615

space_view3d_brush_menus: initial update to 2.8 series : T68350

===================================================================

M	space_view3d_brush_menus/__init__.py
M	space_view3d_brush_menus/brush_menu.py
M	space_view3d_brush_menus/brushes.py
M	space_view3d_brush_menus/curve_menu.py
M	space_view3d_brush_menus/dyntopo_menu.py
M	space_view3d_brush_menus/stroke_menu.py
M	space_view3d_brush_menus/symmetry_menu.py
M	space_view3d_brush_menus/texture_menu.py
M	space_view3d_brush_menus/utils_core.py

===================================================================

diff --git a/space_view3d_brush_menus/__init__.py b/space_view3d_brush_menus/__init__.py
index 891a22de..b07bfd65 100644
--- a/space_view3d_brush_menus/__init__.py
+++ b/space_view3d_brush_menus/__init__.py
@@ -24,7 +24,7 @@ bl_info = {
     "description": "Fast access to brushes & tools in Sculpt and Paint Modes",
     "author": "Ryan Inch (Imaginer)",
     "version": (1, 1, 6),
-    "blender": (2, 78, 0),
+    "blender": (2, 80, 0),
     "location": "Alt V in Sculpt/Paint Modes",
     "warning": '',
     "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
@@ -61,23 +61,21 @@ from bpy.props import (
         )
 
 
+addon_files = (
+    brush_menu,
+    brushes,
+    curve_menu,
+    dyntopo_menu,
+    stroke_menu,
+    symmetry_menu,
+    texture_menu,
+    )
+    
+
+
 class VIEW3D_MT_Brushes_Pref(AddonPreferences):
     bl_idname = __name__
-
-    use_brushes_menu_type: EnumProperty(
-        name="Choose Brushes Selection",
-        description="",
-        items=[('lists', "Use compact Menus",
-                "Use more compact menus instead  \n"
-                "of thumbnails for displaying brushes"),
-               ('template', "Template ID Preview",
-                "Use Template ID preview menu (thumbnails) for brushes\n"
-                "(Still part of the menu)"),
-               ('popup', "Pop up menu",
-                "Use a separate pop-up window for accessing brushes")
-            ],
-        default='lists'
-        )
+    
     column_set: IntProperty(
         name="Number of Columns",
         description="Number of columns used for the brushes menu",
@@ -90,8 +88,6 @@ class VIEW3D_MT_Brushes_Pref(AddonPreferences):
         layout = self.layout
 
         col = layout.column(align=True)
-        row = col.row(align=True)
-        row.prop(self, "use_brushes_menu_type", expand=True)
         col.prop(self, "column_set", slider=True)
 
 
@@ -101,11 +97,15 @@ addon_keymaps = []
 
 
 def register():
-    # register all blender classes
-    bpy.utils.register_module(__name__)
-
+    # register all files
+    for addon_file in addon_files:
+        addon_file.register()
+    
     # set the add-on name variable to access the preferences
     utils_core.get_addon_name = __name__
+    
+    # register preferences
+    bpy.utils.register_class(VIEW3D_MT_Brushes_Pref)
 
     # register hotkeys
     wm = bpy.context.window_manager
@@ -119,13 +119,17 @@ def register():
 
 
 def unregister():
+    # unregister all files
+    for addon_file in addon_files:
+        addon_file.unregister()
+    
+    # unregister preferences
+    bpy.utils.unregister_class(VIEW3D_MT_Brushes_Pref)
+    
     for km, kmi in addon_keymaps:
         km.keymap_items.remove(kmi)
     addon_keymaps.clear()
 
-    # unregister all blender classes
-    bpy.utils.unregister_module(__name__)
-
 
 if __name__ == "__main__":
     register()
diff --git a/space_view3d_brush_menus/brush_menu.py b/space_view3d_brush_menus/brush_menu.py
index d4c6863f..c76a107a 100644
--- a/space_view3d_brush_menus/brush_menu.py
+++ b/space_view3d_brush_menus/brush_menu.py
@@ -22,18 +22,6 @@ class BrushOptionsMenu(Menu):
                     'PARTICLE_EDIT'
                     )
 
-    def draw_brushes(self, layout, h_brush, ico, context):
-        if utils_core.addon_settings(lists=True) == 'popup' or not h_brush:
-            layout.row().operator(
-                    "view3d.sv3_brush_menu_popup", text="Brush",
-                    icon=ico
-                    )
-        else:
-            layout.row().menu(
-                    "VIEW3D_MT_sv3_brushes_menu", text="Brush",
-                    icon=ico
-                    )
-
     def draw(self, context):
         mode = utils_core.get_mode()
         layout = self.layout
@@ -55,7 +43,8 @@ class BrushOptionsMenu(Menu):
         icons = brushes.brush_icon[mode][has_brush.sculpt_tool] if \
                 has_brush else "BRUSH_DATA"
 
-        self.draw_brushes(layout, has_brush, icons, context)
+        layout.row().menu("VIEW3D_MT_sv3_brushes_menu",
+                            icon=icons)
 
         layout.row().menu(BrushRadiusMenu.bl_idname)
 
@@ -80,7 +69,8 @@ class BrushOptionsMenu(Menu):
             layout.row().operator(ColorPickerPopup.bl_idname, icon="COLOR")
             layout.row().separator()
 
-        self.draw_brushes(layout, has_brush, icons, context)
+        layout.row().menu("VIEW3D_MT_sv3_brushes_menu",
+                            icon=icons)
 
         if mode == 'VERTEX_PAINT':
             layout.row().menu(BrushRadiusMenu.bl_idname)
@@ -106,21 +96,42 @@ class BrushOptionsMenu(Menu):
 
     def texpaint(self, mode, layout, context):
         toolsettings = context.tool_settings.image_paint
+        
+        has_brush = utils_core.get_brush_link(context, types="brush")
+        icons = brushes.brush_icon[mode][has_brush.image_tool] if \
+                    has_brush else "BRUSH_DATA"
 
         if context.image_paint_object and not toolsettings.detect_data():
-            layout.row().label(text="Missing Data", icon="INFO")
-            layout.row().label(text="See Tool Shelf", icon="BACK")
+            if toolsettings.missing_uvs or toolsettings.missing_materials or \
+               toolsettings.missing_texture:
+                layout.row().label(text="Missing Data", icon='ERROR')
+                layout.row().operator_menu_enum("paint.add_texture_paint_slot", \
+                                                  "type", \
+                                                  icon='ADD', \
+                                                  text="Add Texture Paint Slot")
+                
+                return
+        
+            elif toolsettings.missing_stencil:
+                layout.row().label(text="Missing Data", icon='ERROR')
+                layout.row().label(text="See Mask Properties", icon='FORWARD')
+                layout.row().separator()
+                layout.row().menu("VIEW3D_MT_sv3_brushes_menu",
+                                    icon=icons)
+                
+                return
+            
+            else:
+                layout.row().label(text="Missing Data", icon="INFO")
+        
         else:
-            has_brush = utils_core.get_brush_link(context, types="brush")
             if has_brush and has_brush.image_tool in {'DRAW', 'FILL'} and \
                has_brush.blend not in {'ERASE_ALPHA', 'ADD_ALPHA'}:
                 layout.row().operator(ColorPickerPopup.bl_idname, icon="COLOR")
                 layout.row().separator()
 
-            icons = brushes.brush_icon[mode][has_brush.image_tool] if \
-                    has_brush else "BRUSH_DATA"
-
-            self.draw_brushes(layout, has_brush, icons, context)
+            layout.row().menu("VIEW3D_MT_sv3_brushes_menu",
+                                icon=icons)
 
             if has_brush:
                 # if the active brush is unlinked these menus don't do anything
@@ -144,34 +155,28 @@ class BrushOptionsMenu(Menu):
     def particle(self, layout, context):
         particle_edit = context.tool_settings.particle_edit
 
-        if particle_edit.tool == 'NONE':
-            layout.row().label(text="No Brush Selected", icon="INFO")
-            layout.row().separator()
-            layout.row().menu("VIEW3D_MT_sv3_brushes_menu",
-                                text="Select Brush", icon="BRUSH_DATA")
-        else:
-            layout.row().menu("VIEW3D_MT_sv3_brushes_menu",
-                                icon="BRUSH_DATA")
-            layout.row().menu(BrushRadiusMenu.bl_idname)
+        layout.row().menu("VIEW3D_MT_sv3_brushes_menu",
+                            icon="BRUSH_DATA")
+        layout.row().menu(BrushRadiusMenu.bl_idname)
 
-            if particle_edit.tool != 'ADD':
-                layout.row().menu(BrushStrengthMenu.bl_idname)
-            else:
-                layout.row().menu(ParticleCountMenu.bl_idname)
-                layout.row().separator()
-                layout.row().prop(particle_edit, "use_default_interpolate", toggle=True)
+        if particle_edit.tool != 'ADD':
+            layout.row().menu(BrushStrengthMenu.bl_idname)
+        else:
+            layout.row().menu(ParticleCountMenu.bl_idname)
+            layout.row().separator()
+            layout.row().prop(particle_edit, "use_default_interpolate", toggle=True)
 
-                layout.row().prop(particle_edit.brush, "steps", slider=True)
-                layout.row().prop(particle_edit, "default_key_count", slider=True)
+            layout.row().prop(particle_edit.brush, "steps", slider=True)
+            layout.row().prop(particle_edit, "default_key_count", slider=True)
 
-            if particle_edit.tool == 'LENGTH':
-                layout.row().separator()
-                layout.row().menu(ParticleLengthMenu.bl_idname)
+        if particle_edit.tool == 'LENGTH':
+            layout.row().separator()
+            layout.row().menu(ParticleLengthMenu.bl_idname)
 
-            if particle_edit.tool == 'PUFF':
-                layout.row().separator()
-                layout.row().menu(ParticlePuffMenu.bl_idname)
-                layout.row().prop(particle_edit.brush, "use_puff_volume", toggle=True)
+        if particle_edit.tool == 'PUFF':
+            layout.row().separator()
+            layout.row().menu(ParticlePuffMenu.bl_idname)
+            layout.row().prop(particle_edit.brush, "use_puff_volume", toggle=True)
 
 
 class BrushRadiusMenu(Menu):
@@ -288,14 +293,14 @@ class BrushModeMenu(Menu):
             path = "tool_settings.sculpt.brush.sculpt_plane"
 
         elif mode == 'VERTEX_PAINT':
-            enum = has_brush.bl_rna.properties['vertex_tool'].enum_items if \
+            enum = has_brush.bl_rna.properties['blend'].enum_items if \
                    has_brush else None
-            path = "tool_settings.vertex_paint.brush.vertex_tool"
+            path = "tool_settings.vertex_paint.brush.blend"
 
         elif mode == 'WEIGHT_PAINT':
-            enum = has_brush.bl_rna.properties['vertex_tool'].enum_items if \
+            enum = has_brush.bl_rna.properties['blend'].enum_items if \
                    has_brush else None
-            path = "tool_settings.weight_pain

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list