Update
This commit is contained in:
40
2023/scripts/animation_tools/dwpicker/hotkeys.py
Normal file
40
2023/scripts/animation_tools/dwpicker/hotkeys.py
Normal file
@@ -0,0 +1,40 @@
|
||||
|
||||
from maya import cmds
|
||||
from .optionvar import save_optionvar, DEFAULT_HOTKEYS, OPTIONVARS
|
||||
|
||||
|
||||
def get_hotkeys_config():
|
||||
# For config retro compatibility, we always ensure that default value is
|
||||
# set in case of new shortcut added in the system. We also ensure that old
|
||||
# shortcut is going to be removed from the config.
|
||||
default = build_config_from_string(OPTIONVARS[DEFAULT_HOTKEYS])
|
||||
saved = build_config_from_string(cmds.optionVar(query=DEFAULT_HOTKEYS))
|
||||
for key in default.keys():
|
||||
if key in saved:
|
||||
default[key] = saved[key]
|
||||
return default
|
||||
|
||||
|
||||
def build_config_from_string(value):
|
||||
config = {}
|
||||
for entry in value.split(';'):
|
||||
function_name = entry.split('=')[0]
|
||||
enabled = bool(int(entry.split('=')[-1].split(',')[-1]))
|
||||
key_sequence = entry.split('=')[-1].split(',')[0]
|
||||
config[function_name] = {
|
||||
'enabled': enabled if key_sequence != 'None' else False,
|
||||
'key_sequence': None if key_sequence == 'None' else key_sequence}
|
||||
return config
|
||||
|
||||
|
||||
def set_hotkey_config(function, key_sequence, enabled):
|
||||
config = get_hotkeys_config()
|
||||
config[function] = {'enabled': enabled, 'key_sequence': key_sequence}
|
||||
save_hotkey_config(config)
|
||||
|
||||
|
||||
def save_hotkey_config(config):
|
||||
value = ';'.join([
|
||||
'{0}={1},{2}'.format(function, data['key_sequence'], int(data['enabled']))
|
||||
for function, data in config.items()])
|
||||
save_optionvar(DEFAULT_HOTKEYS, value)
|
||||
Reference in New Issue
Block a user