Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 16 additions & 6 deletions __init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
]


def register_keymaps(menumodes, panelmodes, keyconfig):
def register_keymaps(menumodes, panelmodes, keyconfig):
# Deactivating menus
for i in menumodes:
for key in keyconfig.keymaps[i].keymap_items:
Expand All @@ -47,7 +47,11 @@ def register_keymaps(menumodes, panelmodes, keyconfig):
# Deactivating panels
for i in panelmodes:
for key in keyconfig.keymaps[i].keymap_items:
if key.idname == "wm.call_panel" and key.type == "RIGHTMOUSE" and key.active:
if (
key.idname == "wm.call_panel"
and key.type == "RIGHTMOUSE"
and key.active
):
key.active = False

# Changing the Walk Modal Map
Expand Down Expand Up @@ -90,7 +94,7 @@ def rebind_rmb(scene):
addon_prefs = bpy.context.preferences.addons[__package__].preferences
addon_prefs.menumodes = menumodes
addon_prefs.panelmodes = panelmodes

wm = bpy.context.window_manager
active_keyconfig = wm.keyconfigs.active
addon_keyconfig = wm.keyconfigs.addon
Expand All @@ -99,13 +103,19 @@ def rebind_rmb(scene):

try:
addon_prefs.rebind_3dview_keymap(active_keyconfig, addon_prefs.rmb_pan_rotate)
addon_prefs.rebind_switch_nav_rotate(active_keyconfig, addon_keyconfig, addon_prefs.rmb_rotate_switch)
addon_prefs.rebind_switch_nav_rotate(
active_keyconfig, addon_keyconfig, addon_prefs.rmb_rotate_switch
)
except KeyError:
addon_prefs.rebind_3dview_keymap(blender_keyconfig, addon_prefs.rmb_pan_rotate)
addon_prefs.rebind_switch_nav_rotate(blender_keyconfig, addon_keyconfig, addon_prefs.rmb_rotate_switch)
addon_prefs.rebind_switch_nav_rotate(
blender_keyconfig, addon_keyconfig, addon_prefs.rmb_rotate_switch
)
except KeyError:
addon_prefs.rebind_3dview_keymap(user_keyconfig, addon_prefs.rmb_pan_rotate)
addon_prefs.rebind_switch_nav_rotate(user_keyconfig, addon_keyconfig, addon_prefs.rmb_rotate_switch)
addon_prefs.rebind_switch_nav_rotate(
user_keyconfig, addon_keyconfig, addon_prefs.rmb_rotate_switch
)


def register():
Expand Down
13 changes: 10 additions & 3 deletions operators.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,15 @@ def callMenu(self, context):
if space_type == "NODE_EDITOR":
node_tree = context.space_data.node_tree
if node_tree:
if node_tree.nodes.active is not None and node_tree.nodes.active.select:
if (
node_tree.nodes.active is not None
and node_tree.nodes.active.select
):
bpy.ops.wm.call_menu(name="NODE_MT_context_menu")
else:
bpy.ops.wm.search_single_menu("INVOKE_DEFAULT", menu_idname="NODE_MT_add")
bpy.ops.wm.search_single_menu(
"INVOKE_DEFAULT", menu_idname="NODE_MT_add"
)
else:
try:
bpy.ops.wm.call_menu(name=self.menu_by_mode[context.mode])
Expand Down Expand Up @@ -181,5 +186,7 @@ class RMN_OT_toggle_cam_navigation(Operator):

def execute(self, context):
addon_prefs = context.preferences.addons[__package__].preferences
addon_prefs.disable_camera_navigation = not addon_prefs.disable_camera_navigation
addon_prefs.disable_camera_navigation = (
not addon_prefs.disable_camera_navigation
)
return {"FINISHED"}
26 changes: 18 additions & 8 deletions preferences.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def update_node_keymap(self, context):
key.active = addon_prefs.enable_for_node_editors


def update_rebind_3dview_keymap(self, context):
def update_rebind_3dview_keymap(self, context):
wm = context.window_manager
active_keyconfig = wm.keyconfigs.active
blender_keyconfig = wm.keyconfigs["Blender"]
Expand All @@ -81,19 +81,25 @@ def update_rebind_3dview_keymap(self, context):
self.rebind_3dview_keymap(user_keyconfig, self.rmb_pan_rotate)


def update_rebind_switch_nav_rotate(self, context):
def update_rebind_switch_nav_rotate(self, context):
wm = context.window_manager
active_keyconfig = wm.keyconfigs.active
addon_keyconfig = wm.keyconfigs.addon
blender_keyconfig = wm.keyconfigs["Blender"]
user_keyconfig = wm.keyconfigs["Blender user"]

try:
self.rebind_switch_nav_rotate(active_keyconfig, addon_keyconfig, self.rmb_rotate_switch)
self.rebind_switch_nav_rotate(
active_keyconfig, addon_keyconfig, self.rmb_rotate_switch
)
except KeyError:
self.rebind_switch_nav_rotate(blender_keyconfig, addon_keyconfig, self.rmb_rotate_switch)
self.rebind_switch_nav_rotate(
blender_keyconfig, addon_keyconfig, self.rmb_rotate_switch
)
except KeyError:
self.rebind_switch_nav_rotate(user_keyconfig, addon_keyconfig, self.rmb_rotate_switch)
self.rebind_switch_nav_rotate(
user_keyconfig, addon_keyconfig, self.rmb_rotate_switch
)


class RightMouseNavigationPreferences(AddonPreferences):
Expand Down Expand Up @@ -261,7 +267,7 @@ def rebind_3dview_keymap(self, keyconfig, isActive):
if key.idname == "transform.translate" and key.type == "MIDDLEMOUSE":
key.type = "RIGHTMOUSE"

def rebind_switch_nav_rotate(self, keyconfig, addon_kc, isActive):
def rebind_switch_nav_rotate(self, keyconfig, addon_kc, isActive):
if isActive:
for key in addon_kc.keymaps["3D View"].keymap_items:
if key.idname == "rmn.right_mouse_navigation":
Expand Down Expand Up @@ -349,7 +355,9 @@ def draw(self, context):
if panel:
row = panel.row()
row.prop(self, "rmb_pan_rotate", text="Swap MMB & RMB Navigation Controls")
row.prop(self, "rmb_rotate_switch", text="Require Alt for Walk/Fly Navigation")
row.prop(
self, "rmb_rotate_switch", text="Require Alt for Walk/Fly Navigation"
)

# Split the layout at 30%
split = panel.split(factor=0.3)
Expand Down Expand Up @@ -413,7 +421,9 @@ def draw(self, context):
row.label(text="", icon="MOUSE_RMB_DRAG")
label = row.row()
label.active = False
text = "(Alt + Right Mouse)" if not self.rmb_rotate_switch else "(Right Mouse)"
text = (
"(Alt + Right Mouse)" if not self.rmb_rotate_switch else "(Right Mouse)"
)
label.label(text=text)

row = content.row(align=True)
Expand Down