@@ -261,121 +261,7 @@ def __init__(self, parent):
261
261
self .setFixedSize (self .sizeHint ())
262
262
263
263
264
- # Paths dialog. ---------------------------------------------------------
265
-
266
-
267
- class Path_setter (QtWidgets .QHBoxLayout ):
268
- """Dialog for editing folder paths."""
269
-
270
- def __init__ (self , parent , label , key ):
271
- super (QtWidgets .QHBoxLayout , self ).__init__ ()
272
- self .name = label
273
- self .key = key
274
- self .parent = parent
275
- self .edited = False
276
- # Instantiate widgets
277
- Vcenter = QtCore .Qt .AlignmentFlag .AlignVCenter
278
- right = QtCore .Qt .AlignmentFlag .AlignRight
279
- self .path = ""
280
- self .name_label = QtWidgets .QLabel (label + " folder" )
281
- self .name_label .setAlignment (right | Vcenter )
282
- self .name_label .setFocusPolicy (QtCore .Qt .FocusPolicy .NoFocus )
283
- self .path_text = QtWidgets .QLineEdit ()
284
- self .path_text .setFocusPolicy (QtCore .Qt .FocusPolicy .NoFocus )
285
- self .path_text .setReadOnly (True )
286
- self .path_text .setFixedWidth (500 )
287
- self .change_button = QtWidgets .QPushButton ("Change" )
288
- self .change_button .setFocusPolicy (QtCore .Qt .FocusPolicy .NoFocus )
289
- self .path_text .setReadOnly (True )
290
- self .change_button .clicked .connect (self .select_path )
291
- # Layout
292
- self .addWidget (self .name_label )
293
- self .addWidget (self .path_text )
294
- self .addWidget (self .change_button )
295
- self .setContentsMargins (0 , 0 , 0 , 0 )
296
-
297
- def select_path (self ):
298
- new_path = QtWidgets .QFileDialog .getExistingDirectory (
299
- self .parent , f"Select { self .name } folder" , self .path_text .text ()
300
- )
301
- if new_path :
302
- new_path = os .path .normpath (new_path )
303
- self .path_text .setText (new_path )
304
- self .show_edit ()
305
-
306
- def show_edit (self ):
307
- if self .path_text .text () != self .path :
308
- if self .edited is False :
309
- self .edited = True
310
- self .name_label .setStyleSheet ("color:red;" )
311
- self .parent .num_edited_setters += 1
312
- self .parent .save_settings_btn .setEnabled (True )
313
- else :
314
- if self .edited is True :
315
- self .edited = False
316
- self .name_label .setStyleSheet ("color:black;" )
317
- self .parent .num_edited_setters -= 1
318
- if self .parent .num_edited_setters < 1 :
319
- self .parent .save_settings_btn .setEnabled (False )
320
-
321
- def reset (self ):
322
- self .path = os .path .normpath (get_setting (* self .key ))
323
- self .path_text .setText (self .path )
324
- self .show_edit ()
325
-
326
-
327
- class Spin_setter :
328
- """Spinbox input for changing user settings"""
329
- def __init__ (self , parent , label , key , suffix = None ):
330
- center = QtCore .Qt .AlignmentFlag .AlignCenter
331
- Vcenter = QtCore .Qt .AlignmentFlag .AlignVCenter
332
- right = QtCore .Qt .AlignmentFlag .AlignRight
333
- spin_width = 85
334
- self .parent = parent
335
- self .key = key
336
- self .edited = False
337
- self .label = QtWidgets .QLabel (label )
338
- self .label .setAlignment (right | Vcenter )
339
-
340
- self .spn = QtWidgets .QSpinBox ()
341
- self .spn .setMaximum (1000 )
342
- self .spn .setAlignment (center )
343
- self .spn .setMinimumWidth (spin_width )
344
- if suffix :
345
- self .spn .setSuffix (suffix )
346
- self .spn .valueChanged .connect (self .show_edit )
347
-
348
- def add_to_grid (self , groupbox_grid , row ):
349
- groupbox_grid .addWidget (self .label , row , 0 )
350
- groupbox_grid .addWidget (self .spn , row , 1 )
351
-
352
- def show_edit (self ):
353
- """
354
- checks whether the settings has been edited, and changes label color accordingly
355
- also keeps a running tally of how many settings have been edited
356
- and enables/disables the "Save settings" button accordingly
357
- """
358
- if self .spn .value () != self .start_value :
359
- if self .edited is False :
360
- self .edited = True
361
- self .label .setStyleSheet ("color:red;" )
362
- self .parent .num_edited_setters += 1
363
- self .parent .save_settings_btn .setEnabled (True )
364
- else :
365
- if self .edited is True :
366
- self .edited = False
367
- self .label .setStyleSheet ("color:black;" )
368
- self .parent .num_edited_setters -= 1
369
- if self .parent .num_edited_setters < 1 :
370
- self .parent .save_settings_btn .setEnabled (False )
371
-
372
- self .spn .lineEdit ().deselect ()
373
-
374
- def reset (self ):
375
- self .start_value = get_setting (* self .key )
376
- self .spn .setValue (self .start_value )
377
- self .show_edit ()
378
-
264
+ # Settings dialog. ---------------------------------------------------------
379
265
380
266
class Settings_dialog (QtWidgets .QDialog ):
381
267
"""Dialog for editing user settings"""
@@ -531,3 +417,118 @@ def closeEvent(self, event):
531
417
)
532
418
if reply == QtWidgets .QMessageBox .StandardButton .Cancel :
533
419
event .ignore ()
420
+
421
+
422
+ class Path_setter (QtWidgets .QHBoxLayout ):
423
+ """Dialog for editing folder paths."""
424
+
425
+ def __init__ (self , parent , label , key ):
426
+ super (QtWidgets .QHBoxLayout , self ).__init__ ()
427
+ self .name = label
428
+ self .key = key
429
+ self .parent = parent
430
+ self .edited = False
431
+ # Instantiate widgets
432
+ Vcenter = QtCore .Qt .AlignmentFlag .AlignVCenter
433
+ right = QtCore .Qt .AlignmentFlag .AlignRight
434
+ self .path = ""
435
+ self .name_label = QtWidgets .QLabel (label + " folder" )
436
+ self .name_label .setAlignment (right | Vcenter )
437
+ self .name_label .setFocusPolicy (QtCore .Qt .FocusPolicy .NoFocus )
438
+ self .path_text = QtWidgets .QLineEdit ()
439
+ self .path_text .setFocusPolicy (QtCore .Qt .FocusPolicy .NoFocus )
440
+ self .path_text .setReadOnly (True )
441
+ self .path_text .setFixedWidth (500 )
442
+ self .change_button = QtWidgets .QPushButton ("Change" )
443
+ self .change_button .setFocusPolicy (QtCore .Qt .FocusPolicy .NoFocus )
444
+ self .path_text .setReadOnly (True )
445
+ self .change_button .clicked .connect (self .select_path )
446
+ # Layout
447
+ self .addWidget (self .name_label )
448
+ self .addWidget (self .path_text )
449
+ self .addWidget (self .change_button )
450
+ self .setContentsMargins (0 , 0 , 0 , 0 )
451
+
452
+ def select_path (self ):
453
+ new_path = QtWidgets .QFileDialog .getExistingDirectory (
454
+ self .parent , f"Select { self .name } folder" , self .path_text .text ()
455
+ )
456
+ if new_path :
457
+ new_path = os .path .normpath (new_path )
458
+ self .path_text .setText (new_path )
459
+ self .show_edit ()
460
+
461
+ def show_edit (self ):
462
+ if self .path_text .text () != self .path :
463
+ if self .edited is False :
464
+ self .edited = True
465
+ self .name_label .setStyleSheet ("color:red;" )
466
+ self .parent .num_edited_setters += 1
467
+ self .parent .save_settings_btn .setEnabled (True )
468
+ else :
469
+ if self .edited is True :
470
+ self .edited = False
471
+ self .name_label .setStyleSheet ("color:black;" )
472
+ self .parent .num_edited_setters -= 1
473
+ if self .parent .num_edited_setters < 1 :
474
+ self .parent .save_settings_btn .setEnabled (False )
475
+
476
+ def reset (self ):
477
+ self .path = os .path .normpath (get_setting (* self .key ))
478
+ self .path_text .setText (self .path )
479
+ self .show_edit ()
480
+
481
+
482
+ class Spin_setter :
483
+ """Spinbox input for changing user settings"""
484
+ def __init__ (self , parent , label , key , suffix = None ):
485
+ center = QtCore .Qt .AlignmentFlag .AlignCenter
486
+ Vcenter = QtCore .Qt .AlignmentFlag .AlignVCenter
487
+ right = QtCore .Qt .AlignmentFlag .AlignRight
488
+ spin_width = 85
489
+ self .parent = parent
490
+ self .key = key
491
+ self .edited = False
492
+ self .label = QtWidgets .QLabel (label )
493
+ self .label .setAlignment (right | Vcenter )
494
+
495
+ self .spn = QtWidgets .QSpinBox ()
496
+ self .spn .setMaximum (1000 )
497
+ self .spn .setAlignment (center )
498
+ self .spn .setMinimumWidth (spin_width )
499
+ if suffix :
500
+ self .spn .setSuffix (suffix )
501
+ self .spn .valueChanged .connect (self .show_edit )
502
+
503
+ def add_to_grid (self , groupbox_grid , row ):
504
+ groupbox_grid .addWidget (self .label , row , 0 )
505
+ groupbox_grid .addWidget (self .spn , row , 1 )
506
+
507
+ def show_edit (self ):
508
+ """
509
+ checks whether the settings has been edited, and changes label color accordingly
510
+ also keeps a running tally of how many settings have been edited
511
+ and enables/disables the "Save settings" button accordingly
512
+ """
513
+ if self .spn .value () != self .start_value :
514
+ if self .edited is False :
515
+ self .edited = True
516
+ self .label .setStyleSheet ("color:red;" )
517
+ self .parent .num_edited_setters += 1
518
+ self .parent .save_settings_btn .setEnabled (True )
519
+ else :
520
+ if self .edited is True :
521
+ self .edited = False
522
+ self .label .setStyleSheet ("color:black;" )
523
+ self .parent .num_edited_setters -= 1
524
+ if self .parent .num_edited_setters < 1 :
525
+ self .parent .save_settings_btn .setEnabled (False )
526
+
527
+ self .spn .lineEdit ().deselect ()
528
+
529
+ def reset (self ):
530
+ self .start_value = get_setting (* self .key )
531
+ self .spn .setValue (self .start_value )
532
+ self .show_edit ()
533
+
534
+
0 commit comments