[Bf-extensions-cvs] [dee3d138] blender-v2.83-release: Collection Manager: Fix error with QCD switching. Task: T69577

Ryan Inch noreply at git.blender.org
Tue May 26 23:28:14 CEST 2020


Commit: dee3d138e3d534d9ad7cf81c2dff6e65acdc3e94
Author: Ryan Inch
Date:   Tue May 26 17:25:14 2020 -0400
Branches: blender-v2.83-release
https://developer.blender.org/rBAdee3d138e3d534d9ad7cf81c2dff6e65acdc3e94

Collection Manager: Fix error with QCD switching. Task: T69577

This fixes an error when switching to collections with objects in
pose or weight paint mode and adds in the missing hotkeys for
these modes.

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

M	object_collection_manager/__init__.py
M	object_collection_manager/qcd_init.py
M	object_collection_manager/qcd_operators.py

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

diff --git a/object_collection_manager/__init__.py b/object_collection_manager/__init__.py
index c2da282f..33e4c6e0 100644
--- a/object_collection_manager/__init__.py
+++ b/object_collection_manager/__init__.py
@@ -22,7 +22,7 @@ bl_info = {
     "name": "Collection Manager",
     "description": "Manage collections and their objects",
     "author": "Ryan Inch",
-    "version": (2, 7, 25),
+    "version": (2, 7, 26),
     "blender": (2, 80, 0),
     "location": "View3D - Object Mode (Shortcut - M)",
     "warning": '',  # used for warning icon and text in addons panel
diff --git a/object_collection_manager/qcd_init.py b/object_collection_manager/qcd_init.py
index 8eb31e4d..03154830 100644
--- a/object_collection_manager/qcd_init.py
+++ b/object_collection_manager/qcd_init.py
@@ -99,17 +99,18 @@ def register_qcd_view_hotkeys():
     ]
 
     for key in qcd_hotkeys:
-        km = wm.keyconfigs.addon.keymaps.new(name='Object Mode')
-        kmi = km.keymap_items.new('view3d.view_qcd_slot', key[0], 'PRESS', alt=key[1])
-        kmi.properties.slot = key[2]
-        kmi.properties.toggle = False
-        addon_qcd_view_hotkey_keymaps.append((km, kmi))
-
-        km = wm.keyconfigs.addon.keymaps.new(name='Object Mode')
-        kmi = km.keymap_items.new('view3d.view_qcd_slot', key[0], 'PRESS',shift=True,  alt=key[1])
-        kmi.properties.slot = key[2]
-        kmi.properties.toggle = True
-        addon_qcd_view_hotkey_keymaps.append((km, kmi))
+        for mode in ['Object Mode', 'Pose', 'Weight Paint']:
+            km = wm.keyconfigs.addon.keymaps.new(name=mode)
+            kmi = km.keymap_items.new('view3d.view_qcd_slot', key[0], 'PRESS', alt=key[1])
+            kmi.properties.slot = key[2]
+            kmi.properties.toggle = False
+            addon_qcd_view_hotkey_keymaps.append((km, kmi))
+
+            km = wm.keyconfigs.addon.keymaps.new(name=mode)
+            kmi = km.keymap_items.new('view3d.view_qcd_slot', key[0], 'PRESS',shift=True,  alt=key[1])
+            kmi.properties.slot = key[2]
+            kmi.properties.toggle = True
+            addon_qcd_view_hotkey_keymaps.append((km, kmi))
 
 
 def register_qcd_view_edit_mode_hotkeys():
diff --git a/object_collection_manager/qcd_operators.py b/object_collection_manager/qcd_operators.py
index 208e5ae0..53212920 100644
--- a/object_collection_manager/qcd_operators.py
+++ b/object_collection_manager/qcd_operators.py
@@ -201,15 +201,17 @@ class ViewQCDSlot(Operator):
         locked_objs_mode = ""
         for obj in context.view_layer.objects:
             if obj.mode != 'OBJECT':
-                locked_objs.append(obj)
-                locked_objs_mode = obj.mode
+                if obj.mode not in ['POSE', 'WEIGHT_PAINT'] or obj == locked_active_obj:
+                    locked_objs.append(obj)
+                    locked_objs_mode = obj.mode
 
 
         if self.toggle:
             # check if slot can be toggled off.
             for obj in qcd_laycol.collection.objects:
                 if obj.mode != 'OBJECT':
-                    return {'CANCELLED'}
+                    if obj.mode not in ['POSE', 'WEIGHT_PAINT'] or obj == locked_active_obj:
+                        return {'CANCELLED'}
 
             # get current child exclusion state
             child_exclusion = []



More information about the Bf-extensions-cvs mailing list