Skip to content

Commit f8cd36c

Browse files
committed
- Renamed paths_action to settings_action in GUI_main.
- Moved Settings_dialog above the definitions of the classes that are used within it in dialogs.py for clarity.
1 parent b21a914 commit f8cd36c

File tree

2 files changed

+119
-118
lines changed

2 files changed

+119
-118
lines changed

gui/GUI_main.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ def __init__(self,app):
9191
## --------Settings menu--------
9292
settings_menu = main_menu.addMenu('Settings')
9393
# Folder paths
94-
paths_action = QtGui.QAction("&Edit settings", self)
95-
paths_action.triggered.connect(self.settings_dialog.exec)
96-
settings_menu.addAction(paths_action)
94+
settings_action = QtGui.QAction("&Edit settings", self)
95+
settings_action.triggered.connect(self.settings_dialog.exec)
96+
settings_menu.addAction(settings_action)
9797
# ---------Help menu----------
9898
help_menu= main_menu.addMenu('Help')
9999
# Go to readthedocs

gui/dialogs.py

Lines changed: 116 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -261,121 +261,7 @@ def __init__(self, parent):
261261
self.setFixedSize(self.sizeHint())
262262

263263

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. ---------------------------------------------------------
379265

380266
class Settings_dialog(QtWidgets.QDialog):
381267
"""Dialog for editing user settings"""
@@ -531,3 +417,118 @@ def closeEvent(self, event):
531417
)
532418
if reply == QtWidgets.QMessageBox.StandardButton.Cancel:
533419
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

Comments
 (0)