Rewrite preference system

This commit is contained in:
2024-01-14 19:26:33 +01:00
parent 20223b21de
commit 4a4cc9f778
4 changed files with 135 additions and 122 deletions

View File

@@ -6,31 +6,92 @@ class Cinnamon_Pref_Handler:
self.pref_location = os.path.expanduser("~") + \
"/.config/cinnamon/spices/cinnamon-dynamic-wallpaper@TobiZog/cinnamon-dynamic-wallpaper@TobiZog.json"
self.prefs = {}
self.load_preferences()
def load_preferences(self):
""" Load the JSON preferences to the Preference object
"""
with open(self.pref_location, "r") as pref_file:
pref_data = json.load(pref_file)
self.picture_aspect = pref_data['picture_aspect']['value']
self.dynamic_background_color = pref_data['dynamic_background_color']['value']
self.image_source = pref_data['image_source']['value']
self.selected_image_set = pref_data['selected_image_set']['value']
self.source_folder = pref_data['source_folder']['value']
for i in pref_data:
try:
self.prefs[i] = pref_data[i]["value"]
except:
pass
self.period_images = [
pref_data['period_0_image']['value'],
pref_data['period_1_image']['value'],
pref_data['period_2_image']['value'],
pref_data['period_3_image']['value'],
pref_data['period_4_image']['value'],
pref_data['period_5_image']['value'],
pref_data['period_6_image']['value'],
pref_data['period_7_image']['value'],
pref_data['period_8_image']['value'],
pref_data['period_9_image']['value']
]
self.period_source = pref_data['period_source']['value']
self.location_refresh_intervals = pref_data['location_refresh_intervals']['value']
self.latitude_auto = pref_data['latitude_auto']['value']
self.longitude_auto = pref_data['longitude_auto']['value']
self.latitude_custom = pref_data['latitude_custom']['value']
self.longitude_custom = pref_data['longitude_custom']['value']
self.period_custom_start_time = [
pref_data['period_0_custom_start_time']['value'],
pref_data['period_1_custom_start_time']['value'],
pref_data['period_2_custom_start_time']['value'],
pref_data['period_3_custom_start_time']['value'],
pref_data['period_4_custom_start_time']['value'],
pref_data['period_5_custom_start_time']['value'],
pref_data['period_6_custom_start_time']['value'],
pref_data['period_7_custom_start_time']['value'],
pref_data['period_8_custom_start_time']['value'],
pref_data['period_9_custom_start_time']['value']
]
def store_preferences(self):
""" Store the values of the Preference object to the JSON file
"""
with open(self.pref_location, "r") as pref_file:
pref_data = json.load(pref_file)
for i in pref_data:
try:
pref_data[i]["value"] = self.prefs[i]
except:
pass
pref_data['picture_aspect']['value'] = self.picture_aspect
pref_data['dynamic_background_color']['value'] = self.dynamic_background_color
pref_data['image_source']['value'] = self.image_source
pref_data['selected_image_set']['value'] = self.selected_image_set
pref_data['source_folder']['value'] = self.source_folder
pref_data['period_0_image']['value'] = self.period_images[0]
pref_data['period_1_image']['value'] = self.period_images[1]
pref_data['period_2_image']['value'] = self.period_images[2]
pref_data['period_3_image']['value'] = self.period_images[3]
pref_data['period_4_image']['value'] = self.period_images[4]
pref_data['period_5_image']['value'] = self.period_images[5]
pref_data['period_6_image']['value'] = self.period_images[6]
pref_data['period_7_image']['value'] = self.period_images[7]
pref_data['period_8_image']['value'] = self.period_images[8]
pref_data['period_9_image']['value'] = self.period_images[9]
pref_data['period_source']['value'] = self.period_source
pref_data['location_refresh_intervals']['value'] = self.location_refresh_intervals
pref_data['latitude_auto']['value'] = self.latitude_auto
pref_data['longitude_auto']['value'] = self.longitude_auto
pref_data['latitude_custom']['value'] = self.latitude_custom
pref_data['longitude_custom']['value'] = self.longitude_custom
pref_data['period_0_custom_start_time']['value'] = self.period_custom_start_time[0]
pref_data['period_1_custom_start_time']['value'] = self.period_custom_start_time[1]
pref_data['period_2_custom_start_time']['value'] = self.period_custom_start_time[2]
pref_data['period_3_custom_start_time']['value'] = self.period_custom_start_time[3]
pref_data['period_4_custom_start_time']['value'] = self.period_custom_start_time[4]
pref_data['period_5_custom_start_time']['value'] = self.period_custom_start_time[5]
pref_data['period_6_custom_start_time']['value'] = self.period_custom_start_time[6]
pref_data['period_7_custom_start_time']['value'] = self.period_custom_start_time[7]
pref_data['period_8_custom_start_time']['value'] = self.period_custom_start_time[8]
pref_data['period_9_custom_start_time']['value'] = self.period_custom_start_time[9]
# Write to file
with open(self.pref_location, "w") as pref_file:
json.dump(pref_data, pref_file, separators=(',', ':'), indent=4)