From dee3d138e3d534d9ad7cf81c2dff6e65acdc3e94 Mon Sep 17 00:00:00 2001 From: Ryan Inch Date: Tue, 26 May 2020 17:25:14 -0400 Subject: 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. --- object_collection_manager/__init__.py | 2 +- object_collection_manager/qcd_init.py | 23 ++++++++++++----------- object_collection_manager/qcd_operators.py | 8 +++++--- 3 files changed, 18 insertions(+), 15 deletions(-) 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 = [] -- cgit v1.2.3