|
| 1 | +from os.path import join |
| 2 | +from os import replace |
| 3 | + |
1 | 4 | from PyQt6.QtCore import QObject, pyqtSignal |
| 5 | +from PyQt6.QtWidgets import QApplication |
2 | 6 |
|
3 | 7 | from motorlib.properties import PropertyCollection, EnumProperty |
4 | 8 | from motorlib.units import unitLabels, getAllConversions |
@@ -54,12 +58,19 @@ def newPreferences(self, prefDict): |
54 | 58 | self.publishPreferences() |
55 | 59 |
|
56 | 60 | def loadPreferences(self): |
| 61 | + preferencesPath = join(getConfigPath(), 'preferences.yaml') |
57 | 62 | try: |
58 | | - prefDict = loadFile(getConfigPath() + 'preferences.yaml', fileTypes.PREFERENCES) |
| 63 | + prefDict = loadFile(preferencesPath, fileTypes.PREFERENCES) |
59 | 64 | self.preferences.applyDict(prefDict) |
60 | 65 | self.publishPreferences() |
61 | 66 | except FileNotFoundError: |
62 | | - logger.warn('Unable to load preferences, creating new file') |
| 67 | + logger.warn('Preferences file does not exist, creating new file') |
| 68 | + self.savePreferences() |
| 69 | + except Exception as error: |
| 70 | + backupPath = join(getConfigPath(), 'preferences_backup.yaml') |
| 71 | + logger.warn('Error loading preferences: {}'.format(error)) |
| 72 | + QApplication.instance().outputException(error, "Failed to load preferences. Backing up file to '{}' and starting fresh.".format(backupPath)) |
| 73 | + replace(preferencesPath, backupPath) |
63 | 74 | self.savePreferences() |
64 | 75 |
|
65 | 76 | def savePreferences(self): |
|
0 commit comments