47
47
get_config ,
48
48
)
49
49
from picard .const import DEFAULT_FILE_NAMING_FORMAT
50
- from picard .const .sys import IS_WIN
50
+ from picard .const .sys import (
51
+ IS_MACOS ,
52
+ IS_WIN ,
53
+ )
51
54
from picard .script import ScriptParser
52
55
53
56
from picard .ui .options import (
@@ -150,15 +153,17 @@ def __init__(self, parent=None):
150
153
self .ui .example_selection_note .setText (_ (self .examples .notes_text ) % self .examples .max_samples )
151
154
self .ui .example_filename_sample_files_button .setToolTip (_ (self .examples .tooltip_text ) % self .examples .max_samples )
152
155
153
- self .script_editor_page = ScriptEditorDialog (parent = self , examples = self .examples )
154
- self .script_editor_page .signal_save .connect (self .save_from_editor )
155
- self .script_editor_page .signal_update .connect (self .update_from_editor )
156
- self .script_editor_page .signal_selection_changed .connect (self .update_selector_from_editor )
156
+ self .script_editor_dialog = ScriptEditorDialog (parent = self , examples = self .examples )
157
+ if IS_MACOS : # Workaround for dialog opening behind options dialog
158
+ self .script_editor_dialog .setModal (True )
159
+ self .script_editor_dialog .signal_save .connect (self .save_from_editor )
160
+ self .script_editor_dialog .signal_update .connect (self .update_from_editor )
161
+ self .script_editor_dialog .signal_selection_changed .connect (self .update_selector_from_editor )
157
162
158
163
self .update_selector_from_editor ()
159
164
160
165
# Sync example lists vertical scrolling and selection colors
161
- self .script_editor_page .synchronize_vertical_scrollbars ((self .ui .example_filename_before , self .ui .example_filename_after ))
166
+ self .script_editor_dialog .synchronize_vertical_scrollbars ((self .ui .example_filename_before , self .ui .example_filename_after ))
162
167
163
168
self .current_row = - 1
164
169
@@ -167,32 +172,32 @@ def update_selector_from_editor(self):
167
172
"""
168
173
self .ui .naming_script_selector .blockSignals (True )
169
174
self .ui .naming_script_selector .clear ()
170
- for i in range (self .script_editor_page .ui .preset_naming_scripts .count ()):
171
- title = self .script_editor_page .ui .preset_naming_scripts .itemText (i )
172
- script = self .script_editor_page .ui .preset_naming_scripts .itemData (i )
175
+ for i in range (self .script_editor_dialog .ui .preset_naming_scripts .count ()):
176
+ title = self .script_editor_dialog .ui .preset_naming_scripts .itemText (i )
177
+ script = self .script_editor_dialog .ui .preset_naming_scripts .itemData (i )
173
178
self .ui .naming_script_selector .addItem (title , script )
174
- self .ui .naming_script_selector .setCurrentIndex (self .script_editor_page .ui .preset_naming_scripts .currentIndex ())
179
+ self .ui .naming_script_selector .setCurrentIndex (self .script_editor_dialog .ui .preset_naming_scripts .currentIndex ())
175
180
self .ui .naming_script_selector .blockSignals (False )
176
181
177
182
def update_selector_in_editor (self ):
178
183
"""Update the selection in the script editor page to match local selection.
179
184
"""
180
- self .script_editor_page .ui .preset_naming_scripts .setCurrentIndex (self .ui .naming_script_selector .currentIndex ())
185
+ self .script_editor_dialog .ui .preset_naming_scripts .setCurrentIndex (self .ui .naming_script_selector .currentIndex ())
181
186
182
187
def match_after_to_before (self ):
183
188
"""Sets the selected item in the 'after' list to the corresponding item in the 'before' list.
184
189
"""
185
- self .script_editor_page .synchronize_selected_example_lines (self .current_row , self .ui .example_filename_before , self .ui .example_filename_after )
190
+ self .script_editor_dialog .synchronize_selected_example_lines (self .current_row , self .ui .example_filename_before , self .ui .example_filename_after )
186
191
187
192
def match_before_to_after (self ):
188
193
"""Sets the selected item in the 'before' list to the corresponding item in the 'after' list.
189
194
"""
190
- self .script_editor_page .synchronize_selected_example_lines (self .current_row , self .ui .example_filename_after , self .ui .example_filename_before )
195
+ self .script_editor_dialog .synchronize_selected_example_lines (self .current_row , self .ui .example_filename_after , self .ui .example_filename_before )
191
196
192
197
def show_script_editing_page (self ):
193
- self .script_editor_page .show ()
194
- self .script_editor_page .raise_ ()
195
- self .script_editor_page .activateWindow ()
198
+ self .script_editor_dialog .show ()
199
+ self .script_editor_dialog .raise_ ()
200
+ self .script_editor_dialog .activateWindow ()
196
201
self .update_examples_from_local ()
197
202
198
203
def show_scripting_documentation (self ):
@@ -217,7 +222,7 @@ def toggle_file_naming_format(self):
217
222
self .ui .windows_compatibility .setEnabled (active )
218
223
219
224
def save_from_editor (self ):
220
- self .script_text = self .script_editor_page .get_script ()
225
+ self .script_text = self .script_editor_dialog .get_script ()
221
226
222
227
def update_from_editor (self ):
223
228
self .display_examples ()
@@ -228,7 +233,7 @@ def check_formats(self):
228
233
229
234
def update_example_files (self ):
230
235
self .examples .update_sample_example_files ()
231
- self .script_editor_page .display_examples ()
236
+ self .script_editor_dialog .display_examples ()
232
237
233
238
def update_examples_from_local (self ):
234
239
override = {
@@ -239,12 +244,12 @@ def update_examples_from_local(self):
239
244
'windows_compatibility' : self .ui .windows_compatibility .isChecked (),
240
245
}
241
246
self .examples .update_examples (override = override )
242
- self .script_editor_page .display_examples ()
247
+ self .script_editor_dialog .display_examples ()
243
248
244
249
def display_examples (self ):
245
250
self .current_row = - 1
246
251
examples = self .examples .get_examples ()
247
- self .script_editor_page .update_example_listboxes (self .ui .example_filename_before , self .ui .example_filename_after , examples )
252
+ self .script_editor_dialog .update_example_listboxes (self .ui .example_filename_before , self .ui .example_filename_after , examples )
248
253
249
254
def load (self ):
250
255
config = get_config ()
@@ -262,7 +267,7 @@ def load(self):
262
267
self .ui .move_additional_files .setChecked (config .setting ["move_additional_files" ])
263
268
self .ui .move_additional_files_pattern .setText (config .setting ["move_additional_files_pattern" ])
264
269
self .ui .delete_empty_dirs .setChecked (config .setting ["delete_empty_dirs" ])
265
- self .script_editor_page .load ()
270
+ self .script_editor_dialog .load ()
266
271
self .update_examples_from_local ()
267
272
268
273
def check (self ):
@@ -292,8 +297,8 @@ def save(self):
292
297
config .setting ["move_additional_files" ] = self .ui .move_additional_files .isChecked ()
293
298
config .setting ["move_additional_files_pattern" ] = self .ui .move_additional_files_pattern .text ()
294
299
config .setting ["delete_empty_dirs" ] = self .ui .delete_empty_dirs .isChecked ()
295
- config .setting ["file_naming_scripts" ] = self .script_editor_page .naming_scripts
296
- config .setting ["selected_file_naming_script_id" ] = self .script_editor_page .selected_script_id
300
+ config .setting ["file_naming_scripts" ] = self .script_editor_dialog .naming_scripts
301
+ config .setting ["selected_file_naming_script_id" ] = self .script_editor_dialog .selected_script_id
297
302
self .tagger .window .enable_moving_action .setChecked (config .setting ["move_files" ])
298
303
299
304
def display_error (self , error ):
0 commit comments