@@ -66,7 +66,7 @@ def __init__(self, ownerComp):
66
66
self .keyboardin_dat_pars = ['keys' , 'shortcuts' ]
67
67
self .comp_pars_substrings = ['key' , 'shortcut' , 'hotkey' ]
68
68
self .comp_pars_exceptions = ['opshortcut' ,'parentshortcut' ,'arrowkeys' ,'savehotkeys' ,'loadhotkeys' ,'shortcutactive' ]
69
- self .comp_except = ['popMenu' ]
69
+ self .comp_except = ['popMenu' , 'popDialog' , 'KeyModifiers' ]
70
70
71
71
self .searchRoot = parent .FNS
72
72
self .hotkeyTable : tableDAT = self .ownerComp .op ('table_gathered_hotkeys' )
@@ -92,47 +92,47 @@ def AllHotkeyPars(self) -> List[tuple]:
92
92
93
93
# Find all keyboardinCHOP operators
94
94
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 ) :
97
97
continue
98
98
99
99
for par_name in self .keyboardin_chop_pars :
100
- _par = getattr (op .par , par_name , None )
100
+ _par = getattr (_op .par , par_name , None )
101
101
if _par is not None :
102
102
# Set the appropriate fields based on parameter
103
103
if par_name == "keys" :
104
104
keys_val = _par .eval () if _par .mode == ParMode .CONSTANT or _par .mode == ParMode .BIND else ""
105
105
keys_expr = _par .expr if _par .mode == ParMode .EXPRESSION and 'app.osName' in _par .expr else ""
106
106
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 } '"
109
109
pars_found_debug .append (debug_info )
110
110
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 )
112
112
elif par_name == "modifiers" :
113
113
mod_val = _par .eval () if _par .mode == ParMode .CONSTANT or _par .mode == ParMode .BIND else ""
114
114
mod_expr = _par .expr if _par .mode == ParMode .EXPRESSION and 'app.osName' in _par .expr else ""
115
115
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 } '"
118
118
pars_found_debug .append (debug_info )
119
119
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 )
121
121
122
122
self .logger .log (f"AllHotkeyPars: Found { chop_pars_found } CHOP parameters" , textport = True )
123
123
124
124
# Find all keyboardinDAT operators with keys or shortcuts parameters
125
125
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 ) :
128
128
continue
129
129
130
130
# 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 )
132
132
133
133
if has_hotkey_pars :
134
134
for par_name in self .keyboardin_dat_pars :
135
- _par = getattr (op .par , par_name , None )
135
+ _par = getattr (_op .par , par_name , None )
136
136
if _par is not None :
137
137
# Set the appropriate fields based on parameter
138
138
if par_name == "keys" :
@@ -153,35 +153,35 @@ def AllHotkeyPars(self) -> List[tuple]:
153
153
if re .match (pattern , _keys_val .lower ()):
154
154
continue
155
155
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 } '"
158
158
pars_found_debug .append (debug_info )
159
159
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 )
161
161
elif _par .mode == ParMode .EXPRESSION :
162
162
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 } '"
165
165
pars_found_debug .append (debug_info )
166
166
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 )
168
168
169
169
elif par_name == "shortcuts" :
170
170
if _par .mode == ParMode .CONSTANT or _par .mode == ParMode .BIND :
171
171
_shortcuts_val = _par .eval ()
172
172
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 } '"
175
175
pars_found_debug .append (debug_info )
176
176
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 )
178
178
elif _par .mode == ParMode .EXPRESSION :
179
179
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 } '"
182
182
pars_found_debug .append (debug_info )
183
183
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 )
185
185
186
186
self .logger .log (f"AllHotkeyPars: Found { dat_pars_found } DAT parameters" , textport = True )
187
187
@@ -190,11 +190,11 @@ def AllHotkeyPars(self) -> List[tuple]:
190
190
all_comps = root .findChildren (type = COMP )
191
191
self .logger .log (f"AllHotkeyPars: Searching through { len (all_comps )} COMPs" , textport = True )
192
192
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 ):
195
195
continue
196
196
197
- custompar_names = [par .name for par in op .customPars ]
197
+ custompar_names = [par .name for par in _op .customPars ]
198
198
199
199
for _par_name in custompar_names :
200
200
# Skip parameters that match any of our exception patterns
@@ -203,18 +203,18 @@ def AllHotkeyPars(self) -> List[tuple]:
203
203
204
204
# Check if this parameter name contains any of our hotkey substrings
205
205
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 )
207
207
if _par is not None :
208
208
custom_val = _par .eval () if _par .mode == ParMode .CONSTANT or _par .mode == ParMode .BIND else ""
209
209
custom_expr = _par .expr if _par .mode == ParMode .EXPRESSION and 'app.osName' in _par .expr else ""
210
210
211
211
# Only count if we have a value or expression
212
212
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 } '"
215
215
pars_found_debug .append (debug_info )
216
216
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 )
218
218
219
219
self .logger .log (f"AllHotkeyPars: Found { comp_pars_found } COMP parameters" , textport = True )
220
220
self .logger .log (f"AllHotkeyPars: Total parameters found: { len (result )} " , textport = True )
@@ -265,7 +265,7 @@ def onParForcedefault(self, val):
265
265
def onShortcutChanged (self , _par : Par ):
266
266
if self .supressWatch :
267
267
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' ])
269
269
if choice :
270
270
self .logger .log (f"Shortcut '{ _par .owner .name } :{ _par .name } ' changed to '{ _par .eval ()} '" )
271
271
self .gatherAllHotkeys ()
@@ -425,7 +425,7 @@ def gatherAllHotkeys(self):
425
425
chops_found = 0
426
426
chop_pars_found = 0
427
427
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 ) :
429
429
continue
430
430
431
431
data = HotkeyParData (
@@ -473,7 +473,7 @@ def gatherAllHotkeys(self):
473
473
dats_found = 0
474
474
dat_pars_found = 0
475
475
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 ) :
477
477
continue
478
478
479
479
# Check if the DAT has any of the relevant parameters
0 commit comments