addded a function to store the configuration to disk
parent
a3d6129bad
commit
664c01c49b
21
main.py
21
main.py
|
@ -16,6 +16,8 @@ default_configuration = {
|
|||
# empty configuration by default because new values will be added while trying to load them
|
||||
# this allows the IDE to load old configuration files with missing keys
|
||||
configuration = {}
|
||||
home_directory = os.path.expanduser("~")
|
||||
config_file_path = os.path.join(home_directory, "some_ide_config.json")
|
||||
|
||||
def info(message):
|
||||
# print info to sys.stderr because it isn’t really output, just debug information
|
||||
|
@ -52,6 +54,23 @@ def get_configuration_value(key):
|
|||
return None
|
||||
return configuration[key]
|
||||
|
||||
def set_configuration_value(key, value, save_to_disk=True):
|
||||
if not key in configuration:
|
||||
info("Writing configuration for previously unknown key "+str(key)+".")
|
||||
configuration[key]=value
|
||||
try:
|
||||
config_file = open(config_file_path, "w")
|
||||
config_file.write(json.dumps(configuration))
|
||||
config_file.close()
|
||||
except:
|
||||
warn("Failed to save config file.", is_exception=True)
|
||||
dialog = tk.Tk()
|
||||
dialog.title("Failed to save config file")
|
||||
ttk.Label(dialog, text="Failed to save the configuration file.").pack()
|
||||
ttk.Button(dialog, text="Continue", command=dialog.destroy).pack()
|
||||
dialog.resizable(0,0)
|
||||
dialog.mainloop()
|
||||
|
||||
# easy way to get data out of window events
|
||||
class Window_Interaction_Handler:
|
||||
# constructor
|
||||
|
@ -107,8 +126,6 @@ class Window_Interaction_Handler:
|
|||
################################################################################
|
||||
|
||||
# read configuration
|
||||
home_directory = os.path.expanduser("~")
|
||||
config_file_path = os.path.join(home_directory, "some_ide_config.json")
|
||||
if os.path.isfile(config_file_path):
|
||||
try:
|
||||
config_file = open(config_file_path, "r")
|
||||
|
|
Reference in New Issue