34 from PyQt5.QtCore import QStandardPaths, QCoreApplication
37 from classes.logger
import log
38 from classes
import info
39 from classes.json_data
import JsonDataStore
45 return QCoreApplication.instance().settings
54 JsonDataStore.__init__(self)
67 def set(self, key, value):
72 for item
in self.
_data:
73 if "setting" in item
and "value" in item:
74 user_values[item[
"setting"].lower()] = item
77 if key
in user_values:
78 user_values[key][
"value"] = value
80 log.warn(
"{} key '{}' not valid. The following are valid: {}".format(self.
data_type, key,
81 list(self._data.keys())))
89 default_settings, user_settings = {}, {}
98 if os.path.exists(file_path.encode(
'UTF-8')):
102 user_settings = self.read_from_file(file_path)
103 except Exception
as ex:
104 log.error(
"Error loading settings file: %s" % ex)
106 _ = QCoreApplication.instance()._tr
107 QMessageBox.warning(
None, _(
"Settings Error"),
108 _(
"Error loading settings file: %(file_path)s. Settings will be reset.") % {
"file_path": file_path})
112 self.
_data = self.merge_settings(default_settings, user_settings)
115 return self.write_to_file(file_path, self.
_data)
125 self.write_to_file(file_path, self.
_data)
def load
Load user settings file from disk, merging with allowed settings in default settings file...
def set
Store setting, but adding isn't allowed.
def get_all_settings
Get the entire list of settings (with all metadata)
This class only allows setting pre-existing keys taken from default settings file, and merges user settings on load, assumes default OS dir.
default_settings_filename
def get_settings
Get the current QApplication's settings instance.
def save
Save user settings file to disk.