[Bf-extensions-cvs] [0aece1d] master: New function: auto-grab

Bart Crouch noreply at git.blender.org
Fri Dec 20 17:18:03 CET 2013


Commit: 0aece1daa257bd80244ed84a8538b72db6c3b522
Author: Bart Crouch
Date:   Fri Dec 20 17:17:47 2013 +0100
http://developer.blender.org/rBA0aece1daa257bd80244ed84a8538b72db6c3b522

New function: auto-grab

Thanks to Alexander Nedovizin for coding first version of this function.

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

M	mesh_f2.py

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

diff --git a/mesh_f2.py b/mesh_f2.py
index f602e0b..b59a761 100644
--- a/mesh_f2.py
+++ b/mesh_f2.py
@@ -20,9 +20,9 @@
 
 bl_info = {
     'name': "F2",
-    'author': "Bart Crouch",
-    'version': (1, 5, 0),
-    'blender': (2, 66, 3),
+    'author': "Bart Crouch, Alexander Nedovizin",
+    'version': (1, 6, 5),
+    'blender': (2, 68, 0),
     'location': "Editmode > F",
     'warning': "",
     'description': "Extends the 'Make Edge/Face' functionality",
@@ -232,6 +232,20 @@ def quad_from_vertex(bm, vert_sel, context, event):
     bpy.ops.object.mode_set(mode='EDIT')
 
 
+# autograb preference in addons panel
+class F2AddonPreferences(bpy.types.AddonPreferences):
+    bl_idname = __name__
+    autograb = bpy.props.BoolProperty(
+            name = "Auto Grab",
+            description = "Automatically puts a newly created vertex in grab \
+mode",
+            default = False)
+
+    def draw(self, context):
+        layout = self.layout
+        layout.prop(self, "autograb")
+
+
 class MeshF2(bpy.types.Operator):
     """Tooltip"""
     bl_idname = "mesh.f2"
@@ -257,6 +271,9 @@ class MeshF2(bpy.types.Operator):
         elif len(sel) == 1:
             # single vertex selected -> mirror vertex and create new face
             quad_from_vertex(bm, sel[0], context, event)
+            addon_prefs = context.user_preferences.addons[__name__].preferences
+            if addon_prefs.autograb:
+                bpy.ops.transform.translate('INVOKE_DEFAULT')
         elif len(sel) == 2:
             edges_sel = [ed for ed in bm.edges if ed.select]
             if len(edges_sel) != 1:
@@ -270,7 +287,7 @@ class MeshF2(bpy.types.Operator):
 
 
 # registration
-classes = [MeshF2]
+classes = [MeshF2, F2AddonPreferences]
 addon_keymaps = []
 
 
@@ -283,19 +300,19 @@ def register():
     km = bpy.context.window_manager.keyconfigs.addon.keymaps.new(\
         name='Mesh', space_type='EMPTY')
     kmi = km.keymap_items.new("mesh.f2", 'F', 'PRESS')
-    addon_keymaps.append(km)
+    addon_keymaps.append((km, kmi))
 
 
 def unregister():
-    # remove operator
-    for c in classes:
-        bpy.utils.unregister_class(c)
-
     # remove keymap entry
-    for km in addon_keymaps:
-        bpy.context.window_manager.keyconfigs.addon.keymaps.remove(km)
+    for km, kmi in addon_keymaps:
+        km.keymap_items.remove(kmi)
     addon_keymaps.clear()
+    
+    # remove operator and preferences
+    for c in reversed(classes):
+        bpy.utils.unregister_class(c)
 
 
 if __name__ == "__main__":
-    register()
+    register()
\ No newline at end of file



More information about the Bf-extensions-cvs mailing list