feat: handle setting
This commit is contained in:
parent
d6e53aec53
commit
b7e65f1dce
1 changed files with 39 additions and 14 deletions
|
@ -2,8 +2,12 @@ import yaml
|
|||
import os
|
||||
|
||||
class Utilities:
|
||||
def __init__(self):
|
||||
pass
|
||||
def __init__(self, app_folder_path):
|
||||
self.folder_path = app_folder_path
|
||||
self._ensure_program_folder_exists()
|
||||
self.exif_path = os.path.expanduser(f"{app_folder_path}/exif.yaml")
|
||||
self.settings_path = os.path.expanduser(f"{app_folder_path}/settings.yaml")
|
||||
self._prepear_exif_config()
|
||||
|
||||
def read_yaml(self, yaml_file):
|
||||
try:
|
||||
|
@ -12,29 +16,38 @@ class Utilities:
|
|||
return data
|
||||
except (FileNotFoundError, PermissionError) as e:
|
||||
print(f"Error loading settings file: {e}")
|
||||
return
|
||||
return None
|
||||
|
||||
def write_yaml(self, yaml_file, data):
|
||||
try:
|
||||
with open(yaml_file, "w") as file:
|
||||
yaml.dump(data, file)
|
||||
return True
|
||||
except PermissionError as e:
|
||||
print(f"Error saving setings: {e}")
|
||||
return False
|
||||
|
||||
def program_configs(self):
|
||||
def _prepear_exif_config(self):
|
||||
"""Prepear folder for config and generate default exif if non aviable"""
|
||||
program_folder = self._ensure_program_folder_exists()
|
||||
if not os.path.isfile(f"{program_folder}/exif.yaml"):
|
||||
self._default_exif(f"{program_folder}/exif.yaml")
|
||||
if not os.path.isfile(self.exif_path):
|
||||
self.default_exif(self.exif_path)
|
||||
|
||||
def _ensure_program_folder_exists(self):
|
||||
program_folder = os.path.expanduser("~/.config/OptimaLab35")
|
||||
if not os.path.exists(program_folder):
|
||||
print("in not, make folder")
|
||||
os.makedirs(program_folder)
|
||||
return program_folder
|
||||
if not os.path.exists(self.folder_path):
|
||||
os.makedirs(self.folder_path)
|
||||
|
||||
def _default_exif(self, file):
|
||||
def load_settings(self):
|
||||
"""Loads settings from file, or creates default settings if missing."""
|
||||
if os.path.exists(self.settings_path):
|
||||
settings = self.read_yaml(self.settings_path)
|
||||
return settings if settings else self._default_settings()
|
||||
return self._default_settings()
|
||||
|
||||
def save_settings(self, settings):
|
||||
if not self.write_yaml(self.settings_path, settings):
|
||||
print("Error writing file")
|
||||
|
||||
def default_exif(self):
|
||||
"""Makes a default exif file."""
|
||||
print("Making default")
|
||||
def_exif = {
|
||||
|
@ -78,7 +91,19 @@ class Utilities:
|
|||
"Scanner: NA"
|
||||
]
|
||||
}
|
||||
self.write_yaml(file, def_exif)
|
||||
self.write_yaml(self.exif_path, def_exif)
|
||||
|
||||
def _default_settings(self):
|
||||
"""Returns default settings and writes them if the settings file does not exist."""
|
||||
settings = {
|
||||
"theme": {
|
||||
"theme_pkg": False,
|
||||
"use_custom_theme": False,
|
||||
"mode": "Dark"
|
||||
}
|
||||
}
|
||||
self.write_yaml(self.settings_path, settings)
|
||||
return settings
|
||||
|
||||
def append_number_to_name(self, base_name: str, current_image: int, total_images: int, invert: bool):
|
||||
""""Returns name, combination of base_name and ending number."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue