From e3ffa30518c09e952485ec98dfd246fd0963cced Mon Sep 17 00:00:00 2001 From: David Robertson Date: Tue, 28 Apr 2020 03:30:30 +0100 Subject: [PATCH] Clean up the factory defaults writing --- FlatCAMApp.py | 14 ++++---------- defaults.py | 24 +++++++++++++----------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 1eee36f7..98ddc196 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -389,15 +389,8 @@ class App(QtCore.QObject): json.dump({}, f) f.close() - # create factory_defaults.FlatConfig file if there is none - try: - f = open(self.data_path + '/factory_defaults.FlatConfig') - f.close() - except IOError: - App.log.debug('Creating empty factory_defaults.FlatConfig') - f = open(self.data_path + '/factory_defaults.FlatConfig', 'w') - json.dump({}, f) - f.close() + # Write factory_defaults.FlatConfig file to disk + FlatCAMDefaults.save_factory_defaults_file(os.path.join(self.data_path, "factory_defaults.FlatConfig")) # create a recent files json file if there is none try: @@ -438,7 +431,8 @@ class App(QtCore.QObject): # ############################################################################################################ self.fcDefaults = FlatCAMDefaults() current_defaults_path = os.path.join(self.data_path, "current_defaults.FlatConfig") - self.fcDefaults.load_defaults(filename=current_defaults_path) + if user_defaults: + self.fcDefaults.load_defaults(filename=current_defaults_path) self.defaults = self.fcDefaults.defaults if self.defaults["global_gray_icons"] is False: diff --git a/defaults.py b/defaults.py index 13844aad..79c6f2e6 100644 --- a/defaults.py +++ b/defaults.py @@ -20,6 +20,7 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') + class FlatCAMDefaults: factory_defaults = { @@ -673,7 +674,6 @@ class FlatCAMDefaults: self.current_defaults.update(self.factory_defaults) self.old_defaults_found = False - def load_defaults(self, filename: str): """ Loads the application's default settings from current_defaults.FlatConfig into @@ -711,7 +711,6 @@ class FlatCAMDefaults: if self.is_old_defaults(defaults): self.old_defaults_found = True defaults = self.migrate_old_defaults(defaults=defaults) - self.recreate_factory_defaults_file(data_path=os.path.dirname(filename)) else: self.old_defaults_found = False @@ -752,19 +751,22 @@ class FlatCAMDefaults: migrated[k] = v return migrated - def recreate_factory_defaults_file(self, data_path: str): - try: - fact_def_file_path = os.path.join(data_path, 'factory_defaults.FlatConfig') - os.chmod(fact_def_file_path, stat.S_IRWXO | stat.S_IWRITE | stat.S_IWGRP) - os.remove(fact_def_file_path) + @classmethod + def save_factory_defaults_file(cls, file_path: str): + # Delete any existing factory defaults file + if os.path.isfile(file_path): + os.chmod(file_path, stat.S_IRWXO | stat.S_IWRITE | stat.S_IWGRP) + os.remove(file_path) + try: # recreate a new factory defaults file and save the factory defaults data into it - f_f_def_s = open(fact_def_file_path, "w") - simplejson.dump(self.defaults, f_f_def_s, default=to_dict, indent=2, sort_keys=True) + f_f_def_s = open(file_path, "w") + simplejson.dump(cls.factory_defaults, f_f_def_s, default=to_dict, indent=2, sort_keys=True) f_f_def_s.close() # and then make the factory_defaults.FlatConfig file read_only # so it can't be modified after creation. - os.chmod(fact_def_file_path, stat.S_IREAD | stat.S_IRGRP | stat.S_IROTH) + os.chmod(file_path, stat.S_IREAD | stat.S_IRGRP | stat.S_IROTH) + log.debug("FlatCAM factory defaults written to: %s" % file_path) except Exception as e: - log.debug("recreate_factory_defaults_file() -> %s" % str(e)) + log.error("save_factory_defaults_file() -> %s" % str(e))