Skip to content

Commit b5deb8d

Browse files
hopefully fixes to hotkey manager
1 parent 416b568 commit b5deb8d

File tree

4 files changed

+36
-36
lines changed

4 files changed

+36
-36
lines changed
-1.34 KB
Binary file not shown.
8 Bytes
Binary file not shown.
Binary file not shown.

scripts/FNS_HotkeyManager/HotkeyManagerExt.py

+36-36
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def __init__(self, ownerComp):
6666
self.keyboardin_dat_pars = ['keys', 'shortcuts']
6767
self.comp_pars_substrings = ['key', 'shortcut', 'hotkey']
6868
self.comp_pars_exceptions = ['opshortcut','parentshortcut','arrowkeys','savehotkeys','loadhotkeys','shortcutactive']
69-
self.comp_except = ['popMenu']
69+
self.comp_except = ['popMenu', 'popDialog', 'KeyModifiers']
7070

7171
self.searchRoot = parent.FNS
7272
self.hotkeyTable : tableDAT = self.ownerComp.op('table_gathered_hotkeys')
@@ -92,47 +92,47 @@ def AllHotkeyPars(self) -> List[tuple]:
9292

9393
# Find all keyboardinCHOP operators
9494
chop_pars_found = 0
95-
for op in root.findChildren(type=keyboardinCHOP):
96-
if 'KeyModifiers' in op.path:
95+
for _op in root.findChildren(type=keyboardinCHOP):
96+
if any(_sub in _op.path for _sub in self.comp_except):
9797
continue
9898

9999
for par_name in self.keyboardin_chop_pars:
100-
_par = getattr(op.par, par_name, None)
100+
_par = getattr(_op.par, par_name, None)
101101
if _par is not None:
102102
# Set the appropriate fields based on parameter
103103
if par_name == "keys":
104104
keys_val = _par.eval() if _par.mode == ParMode.CONSTANT or _par.mode == ParMode.BIND else ""
105105
keys_expr = _par.expr if _par.mode == ParMode.EXPRESSION and 'app.osName' in _par.expr else ""
106106
if keys_val or keys_expr:
107-
result.append((op, par_name))
108-
debug_info = f"CHOP: {op.path}.{par_name} - val: '{keys_val}', expr: '{keys_expr}'"
107+
result.append((_op, par_name))
108+
debug_info = f"CHOP: {_op.path}.{par_name} - val: '{keys_val}', expr: '{keys_expr}'"
109109
pars_found_debug.append(debug_info)
110110
chop_pars_found += 1
111-
self.logger.log(f"AllHotkeyPars: CHOP {op.path} has {par_name} data", textport=False)
111+
self.logger.log(f"AllHotkeyPars: CHOP {_op.path} has {par_name} data", textport=False)
112112
elif par_name == "modifiers":
113113
mod_val = _par.eval() if _par.mode == ParMode.CONSTANT or _par.mode == ParMode.BIND else ""
114114
mod_expr = _par.expr if _par.mode == ParMode.EXPRESSION and 'app.osName' in _par.expr else ""
115115
if mod_val or mod_expr:
116-
result.append((op, par_name))
117-
debug_info = f"CHOP: {op.path}.{par_name} - val: '{mod_val}', expr: '{mod_expr}'"
116+
result.append((_op, par_name))
117+
debug_info = f"CHOP: {_op.path}.{par_name} - val: '{mod_val}', expr: '{mod_expr}'"
118118
pars_found_debug.append(debug_info)
119119
chop_pars_found += 1
120-
self.logger.log(f"AllHotkeyPars: CHOP {op.path} has {par_name} data", textport=False)
120+
self.logger.log(f"AllHotkeyPars: CHOP {_op.path} has {par_name} data", textport=False)
121121

122122
self.logger.log(f"AllHotkeyPars: Found {chop_pars_found} CHOP parameters", textport=True)
123123

124124
# Find all keyboardinDAT operators with keys or shortcuts parameters
125125
dat_pars_found = 0
126-
for op in root.findChildren(type=keyboardinDAT):
127-
if 'KeyModifiers' in op.path:
126+
for _op in root.findChildren(type=keyboardinDAT):
127+
if any(_sub in _op.path for _sub in self.comp_except):
128128
continue
129129

130130
# Check if the DAT has any of the relevant parameters
131-
has_hotkey_pars = any(hasattr(op.par, par_name) for par_name in self.keyboardin_dat_pars)
131+
has_hotkey_pars = any(hasattr(_op.par, par_name) for par_name in self.keyboardin_dat_pars)
132132

133133
if has_hotkey_pars:
134134
for par_name in self.keyboardin_dat_pars:
135-
_par = getattr(op.par, par_name, None)
135+
_par = getattr(_op.par, par_name, None)
136136
if _par is not None:
137137
# Set the appropriate fields based on parameter
138138
if par_name == "keys":
@@ -153,35 +153,35 @@ def AllHotkeyPars(self) -> List[tuple]:
153153
if re.match(pattern, _keys_val.lower()):
154154
continue
155155

156-
result.append((op, par_name))
157-
debug_info = f"DAT: {op.path}.{par_name} - val: '{_keys_val}'"
156+
result.append((_op, par_name))
157+
debug_info = f"DAT: {_op.path}.{par_name} - val: '{_keys_val}'"
158158
pars_found_debug.append(debug_info)
159159
dat_pars_found += 1
160-
self.logger.log(f"AllHotkeyPars: DAT {op.path} has {par_name} value", textport=False)
160+
self.logger.log(f"AllHotkeyPars: DAT {_op.path} has {par_name} value", textport=False)
161161
elif _par.mode == ParMode.EXPRESSION:
162162
if _par.expr and 'app.osName' in _par.expr:
163-
result.append((op, par_name))
164-
debug_info = f"DAT: {op.path}.{par_name} - expr: '{_par.expr}'"
163+
result.append((_op, par_name))
164+
debug_info = f"DAT: {_op.path}.{par_name} - expr: '{_par.expr}'"
165165
pars_found_debug.append(debug_info)
166166
dat_pars_found += 1
167-
self.logger.log(f"AllHotkeyPars: DAT {op.path} has {par_name} expr", textport=False)
167+
self.logger.log(f"AllHotkeyPars: DAT {_op.path} has {par_name} expr", textport=False)
168168

169169
elif par_name == "shortcuts":
170170
if _par.mode == ParMode.CONSTANT or _par.mode == ParMode.BIND:
171171
_shortcuts_val = _par.eval()
172172
if _shortcuts_val:
173-
result.append((op, par_name))
174-
debug_info = f"DAT: {op.path}.{par_name} - val: '{_shortcuts_val}'"
173+
result.append((_op, par_name))
174+
debug_info = f"DAT: {_op.path}.{par_name} - val: '{_shortcuts_val}'"
175175
pars_found_debug.append(debug_info)
176176
dat_pars_found += 1
177-
self.logger.log(f"AllHotkeyPars: DAT {op.path} has {par_name} value", textport=False)
177+
self.logger.log(f"AllHotkeyPars: DAT {_op.path} has {par_name} value", textport=False)
178178
elif _par.mode == ParMode.EXPRESSION:
179179
if _par.expr and 'app.osName' in _par.expr:
180-
result.append((op, par_name))
181-
debug_info = f"DAT: {op.path}.{par_name} - expr: '{_par.expr}'"
180+
result.append((_op, par_name))
181+
debug_info = f"DAT: {_op.path}.{par_name} - expr: '{_par.expr}'"
182182
pars_found_debug.append(debug_info)
183183
dat_pars_found += 1
184-
self.logger.log(f"AllHotkeyPars: DAT {op.path} has {par_name} expr", textport=False)
184+
self.logger.log(f"AllHotkeyPars: DAT {_op.path} has {par_name} expr", textport=False)
185185

186186
self.logger.log(f"AllHotkeyPars: Found {dat_pars_found} DAT parameters", textport=True)
187187

@@ -190,11 +190,11 @@ def AllHotkeyPars(self) -> List[tuple]:
190190
all_comps = root.findChildren(type=COMP)
191191
self.logger.log(f"AllHotkeyPars: Searching through {len(all_comps)} COMPs", textport=True)
192192

193-
for op in all_comps:
194-
if any(_sub in op.path for _sub in self.comp_except):
193+
for _op in all_comps:
194+
if any(_sub in _op.path for _sub in self.comp_except):
195195
continue
196196

197-
custompar_names = [par.name for par in op.customPars]
197+
custompar_names = [par.name for par in _op.customPars]
198198

199199
for _par_name in custompar_names:
200200
# Skip parameters that match any of our exception patterns
@@ -203,18 +203,18 @@ def AllHotkeyPars(self) -> List[tuple]:
203203

204204
# Check if this parameter name contains any of our hotkey substrings
205205
if any(_sub in _par_name.lower() for _sub in self.comp_pars_substrings):
206-
_par = getattr(op.par, _par_name, None)
206+
_par = getattr(_op.par, _par_name, None)
207207
if _par is not None:
208208
custom_val = _par.eval() if _par.mode == ParMode.CONSTANT or _par.mode == ParMode.BIND else ""
209209
custom_expr = _par.expr if _par.mode == ParMode.EXPRESSION and 'app.osName' in _par.expr else ""
210210

211211
# Only count if we have a value or expression
212212
if custom_val or custom_expr:
213-
result.append((op, _par_name))
214-
debug_info = f"COMP: {op.path}.{_par_name} - val: '{custom_val}', expr: '{custom_expr}'"
213+
result.append((_op, _par_name))
214+
debug_info = f"COMP: {_op.path}.{_par_name} - val: '{custom_val}', expr: '{custom_expr}'"
215215
pars_found_debug.append(debug_info)
216216
comp_pars_found += 1
217-
self.logger.log(f"AllHotkeyPars: COMP {op.path} has hotkey param {_par_name}", textport=False)
217+
self.logger.log(f"AllHotkeyPars: COMP {_op.path} has hotkey param {_par_name}", textport=False)
218218

219219
self.logger.log(f"AllHotkeyPars: Found {comp_pars_found} COMP parameters", textport=True)
220220
self.logger.log(f"AllHotkeyPars: Total parameters found: {len(result)}", textport=True)
@@ -265,7 +265,7 @@ def onParForcedefault(self, val):
265265
def onShortcutChanged(self, _par: Par):
266266
if self.supressWatch:
267267
return
268-
choice = ui.messageBox('Shortcut Changed', f'Shortcut "{_par.owner.name}:{_par.name}" changed to "{_par.eval()}". Do you want to externalize this?', buttons=['No','Yes'])
268+
choice = ui.messageBox('Shortcut Changed', f'Shortcut "{_par.owner.path}:{_par.name}" changed to "{_par.eval()}". Do you want to externalize this?', buttons=['No','Yes'])
269269
if choice:
270270
self.logger.log(f"Shortcut '{_par.owner.name}:{_par.name}' changed to '{_par.eval()}'")
271271
self.gatherAllHotkeys()
@@ -425,7 +425,7 @@ def gatherAllHotkeys(self):
425425
chops_found = 0
426426
chop_pars_found = 0
427427
for _keyboardinCHOP in root.findChildren(type=keyboardinCHOP):
428-
if 'KeyModifiers' in _keyboardinCHOP.path:
428+
if any(_sub in _keyboardinCHOP.path for _sub in self.comp_except):
429429
continue
430430

431431
data = HotkeyParData(
@@ -473,7 +473,7 @@ def gatherAllHotkeys(self):
473473
dats_found = 0
474474
dat_pars_found = 0
475475
for _keyboardinDAT in root.findChildren(type=keyboardinDAT):
476-
if 'KeyModifiers' in _keyboardinDAT.path:
476+
if any(_sub in _keyboardinDAT.path for _sub in self.comp_except):
477477
continue
478478

479479
# Check if the DAT has any of the relevant parameters

0 commit comments

Comments
 (0)