Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'object_collection_manager/qcd_init.py')
-rw-r--r--object_collection_manager/qcd_init.py74
1 files changed, 51 insertions, 23 deletions
diff --git a/object_collection_manager/qcd_init.py b/object_collection_manager/qcd_init.py
index 1273e6e0..6d4ac7e7 100644
--- a/object_collection_manager/qcd_init.py
+++ b/object_collection_manager/qcd_init.py
@@ -27,6 +27,7 @@ from bpy.app.handlers import persistent
addon_qcd_keymaps = []
addon_qcd_view_hotkey_keymaps = []
addon_qcd_view_edit_mode_hotkey_keymaps = []
+qcd_registered = False
qcd_classes = (
@@ -76,6 +77,11 @@ def load_pre_handler(dummy):
def register_qcd():
+ global qcd_registered
+ if qcd_registered:
+ # guard to handle default value updates (mouse hover + backspace)
+ return
+
for cls in qcd_classes:
bpy.utils.register_class(cls)
@@ -107,8 +113,14 @@ def register_qcd():
if prefs.enable_qcd_3dview_header_widget:
register_qcd_3dview_header_widget()
+ qcd_registered = True
+
def register_qcd_view_hotkeys():
+ if addon_qcd_view_hotkey_keymaps:
+ # guard to handle default value updates (mouse hover + backspace)
+ return
+
wm = bpy.context.window_manager
if wm.keyconfigs.addon: # not present when started with --background
# create qcd hotkeys
@@ -135,8 +147,8 @@ def register_qcd_view_hotkeys():
["ZERO", True, "20"],
]
- for key in qcd_hotkeys:
- for mode in ['Object Mode', 'Pose', 'Weight Paint']:
+ for mode in ['Object Mode', 'Pose', 'Weight Paint']:
+ for key in qcd_hotkeys:
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]
@@ -149,37 +161,41 @@ def register_qcd_view_hotkeys():
kmi.properties.toggle = True
addon_qcd_view_hotkey_keymaps.append((km, kmi))
- km = wm.keyconfigs.addon.keymaps.new(name=mode)
- kmi = km.keymap_items.new('view3d.enable_all_qcd_slots', 'PLUS', 'PRESS', shift=True)
- addon_qcd_view_hotkey_keymaps.append((km, kmi))
+ km = wm.keyconfigs.addon.keymaps.new(name=mode)
+ kmi = km.keymap_items.new('view3d.enable_all_qcd_slots', 'PLUS', 'PRESS', shift=True)
+ addon_qcd_view_hotkey_keymaps.append((km, kmi))
- km = wm.keyconfigs.addon.keymaps.new(name=mode)
- kmi = km.keymap_items.new('view3d.isolate_selected_objects_collections', 'EQUAL', 'PRESS')
- addon_qcd_view_hotkey_keymaps.append((km, kmi))
+ km = wm.keyconfigs.addon.keymaps.new(name=mode)
+ kmi = km.keymap_items.new('view3d.isolate_selected_objects_collections', 'EQUAL', 'PRESS')
+ addon_qcd_view_hotkey_keymaps.append((km, kmi))
- km = wm.keyconfigs.addon.keymaps.new(name=mode)
- kmi = km.keymap_items.new('view3d.disable_selected_objects_collections', 'MINUS', 'PRESS')
- addon_qcd_view_hotkey_keymaps.append((km, kmi))
+ km = wm.keyconfigs.addon.keymaps.new(name=mode)
+ kmi = km.keymap_items.new('view3d.disable_selected_objects_collections', 'MINUS', 'PRESS')
+ addon_qcd_view_hotkey_keymaps.append((km, kmi))
- km = wm.keyconfigs.addon.keymaps.new(name=mode)
- kmi = km.keymap_items.new('view3d.disable_all_non_qcd_slots', 'PLUS', 'PRESS', shift=True, alt=True)
- addon_qcd_view_hotkey_keymaps.append((km, kmi))
+ km = wm.keyconfigs.addon.keymaps.new(name=mode)
+ kmi = km.keymap_items.new('view3d.disable_all_non_qcd_slots', 'PLUS', 'PRESS', shift=True, alt=True)
+ addon_qcd_view_hotkey_keymaps.append((km, kmi))
- km = wm.keyconfigs.addon.keymaps.new(name=mode)
- kmi = km.keymap_items.new('view3d.disable_all_collections', 'EQUAL', 'PRESS', alt=True, ctrl=True)
- addon_qcd_view_hotkey_keymaps.append((km, kmi))
+ km = wm.keyconfigs.addon.keymaps.new(name=mode)
+ kmi = km.keymap_items.new('view3d.disable_all_collections', 'EQUAL', 'PRESS', alt=True, ctrl=True)
+ addon_qcd_view_hotkey_keymaps.append((km, kmi))
- km = wm.keyconfigs.addon.keymaps.new(name=mode)
- kmi = km.keymap_items.new('view3d.select_all_qcd_objects', 'PLUS', 'PRESS', shift=True, ctrl=True)
- addon_qcd_view_hotkey_keymaps.append((km, kmi))
+ km = wm.keyconfigs.addon.keymaps.new(name=mode)
+ kmi = km.keymap_items.new('view3d.select_all_qcd_objects', 'PLUS', 'PRESS', shift=True, ctrl=True)
+ addon_qcd_view_hotkey_keymaps.append((km, kmi))
- km = wm.keyconfigs.addon.keymaps.new(name=mode)
- kmi = km.keymap_items.new('view3d.discard_qcd_history', 'EQUAL', 'PRESS', alt=True)
- addon_qcd_view_hotkey_keymaps.append((km, kmi))
+ km = wm.keyconfigs.addon.keymaps.new(name=mode)
+ kmi = km.keymap_items.new('view3d.discard_qcd_history', 'EQUAL', 'PRESS', alt=True)
+ addon_qcd_view_hotkey_keymaps.append((km, kmi))
def register_qcd_view_edit_mode_hotkeys():
+ if addon_qcd_view_edit_mode_hotkey_keymaps:
+ # guard to handle default value updates (mouse hover + backspace)
+ return
+
wm = bpy.context.window_manager
if wm.keyconfigs.addon: # not present when started with --background
# create qcd hotkeys
@@ -248,12 +264,22 @@ def register_qcd_view_edit_mode_hotkeys():
def register_qcd_3dview_header_widget():
+ # unregister first to guard against default value updates (mouse hover + backspace)
+ # if the widget isn't registered it will just do nothing
+ unregister_qcd_3dview_header_widget()
+
+ # add the widget to the header, and an update function to the top bar to get view layer changes
bpy.types.VIEW3D_HT_header.append(ui.view3d_header_qcd_slots)
bpy.types.TOPBAR_HT_upper_bar.append(ui.view_layer_update)
def unregister_qcd():
+ global qcd_registered
+ if not qcd_registered:
+ # guard to handle default value updates (mouse hover + backspace)
+ return
+
unregister_qcd_3dview_header_widget()
for cls in qcd_classes:
@@ -279,6 +305,8 @@ def unregister_qcd():
unregister_qcd_view_edit_mode_hotkeys()
+ qcd_registered = False
+
def unregister_qcd_view_hotkeys():
# remove keymaps when qcd view hotkeys are deactivated