瀏覽代碼

Revert "Delete Global directory"

This reverts commit c0afb3040a6e729324d048dc2afa49030b743c1a.
Jonathan Higgins 2 月之前
父節點
當前提交
1dd7ee0902
共有 4 個文件被更改,包括 116 次插入0 次删除
  1. 39 0
      Global/Global.gd
  2. 1 0
      Global/Global.gd.uid
  3. 75 0
      Global/config_handler.gd
  4. 1 0
      Global/config_handler.gd.uid

+ 39 - 0
Global/Global.gd

@@ -0,0 +1,39 @@
+extends Node
+
+var outfile = "no_file" #bad name for the output directory
+var cdpoutput = "no_file" #output from running thread used for recycling output files
+
+func check_for_invalid_chars(file: String) -> Dictionary:
+	var output = {
+		"contains_invalid_characters" = false,
+		"invalid_characters_found" = [],
+		"string_without_invalid_characters" = ""
+	}
+	#check path and file name do not contain special characters
+	var check_characters = []
+	if file.contains("/"):
+		check_characters = file.get_basename().split("/")
+	else:
+		check_characters.append(file)
+		
+	var invalid_chars:= []
+	var regex = RegEx.new()
+	regex.compile("[^a-zA-Z0-9\\-_ :+]")
+	for string in check_characters:
+		if string != "":
+			var result = regex.search_all(string)
+			for matches in result:
+				var character = matches.get_string()
+				if invalid_chars.has(character) == false:
+					invalid_chars.append(character)
+	
+	if invalid_chars.size() == 0:
+		output["contains_invalid_characters"] = false
+	else:
+		output["contains_invalid_characters"] = true
+		output["invalid_characters_found"] = invalid_chars
+		var cleaned_string = file
+		for character in invalid_chars:
+			cleaned_string = cleaned_string.replace(character, "")
+		output["string_without_invalid_characters"] = cleaned_string
+	return output

+ 1 - 0
Global/Global.gd.uid

@@ -0,0 +1 @@
+uid://dh7ms858eb30a

+ 75 - 0
Global/config_handler.gd

@@ -0,0 +1,75 @@
+extends Node
+
+var config = ConfigFile.new()
+const SETTINGS_FILE_PATH = "user://settings.ini"
+
+func _ready():
+	var file_exists = FileAccess.file_exists(SETTINGS_FILE_PATH)
+
+	if file_exists:
+		config.load(SETTINGS_FILE_PATH)
+
+	# Set defaults only if not present
+	ensure_setting("cdpprogs", "location", "no_location")
+	ensure_setting("interface_settings", "disable_pvoc_warning", false)
+	ensure_setting("interface_settings", "disable_progress_bar", false)
+	ensure_setting("interface_settings", "auto_close_console", false)
+	ensure_setting("interface_settings", "console_on_top", true)
+	ensure_setting("interface_settings", "theme", 0)
+	ensure_setting("interface_settings", "theme_custom_colour", "#865699")
+	ensure_setting("interface_settings", "invert_theme", false)
+	ensure_setting("interface_settings", "high_contrast_selected_cables", false)
+	ensure_setting("interface_settings", "swap_zoom_and_move", false)
+	ensure_setting("interface_settings", "right_click_opens_explore", false)
+	ensure_setting("interface_settings", "ui_scale_multiplier", 1.0)
+	ensure_setting("interface_settings", "delete_intermediate", true)
+	ensure_setting("interface_settings", "reuse_output_folder", true)
+	ensure_setting("interface_settings", "last_used_output_folder", "no_file")
+	ensure_setting("interface_settings", "last_used_input_folder", "no_file")
+	ensure_setting("interface_settings", "autoplay", true)
+	ensure_setting("interface_settings", "favourites", [])
+	ensure_setting("audio_settings", "device", "Default")
+	
+
+	# Only save if we added anything new
+	if !file_exists or config_changed:
+		config.save(SETTINGS_FILE_PATH)
+
+# Internal tracker
+var config_changed := false
+
+func ensure_setting(section: String, key: String, default_value):
+	if !config.has_section_key(section, key):
+		config.set_value(section, key, default_value)
+		config_changed = true
+	
+
+func save_cdpprogs_settings(location: String):
+	config.set_value("cdpprogs", "location", location)
+	config.save(SETTINGS_FILE_PATH)
+	
+func load_cdpprogs_settings():
+	var cdpprogs_settings = {}
+	for key in config.get_section_keys("cdpprogs"):
+		cdpprogs_settings[key] = config.get_value("cdpprogs", key)
+	return cdpprogs_settings
+
+func save_interface_settings(key: String, value):
+	config.set_value("interface_settings", key, value)
+	config.save(SETTINGS_FILE_PATH)
+
+func load_interface_settings():
+	var interface_settings = {}
+	for key in config.get_section_keys("interface_settings"):
+		interface_settings[key] = config.get_value("interface_settings", key)
+	return interface_settings
+	
+func save_audio_settings(key: String, device: String):
+	config.set_value("audio_settings", key, device)
+	config.save(SETTINGS_FILE_PATH)
+
+func load_audio_settings():
+	var audio_settings = {}
+	for key in config.get_section_keys("audio_settings"):
+		audio_settings[key] = config.get_value("audio_settings", key)
+	return audio_settings

+ 1 - 0
Global/config_handler.gd.uid

@@ -0,0 +1 @@
+uid://d28wppnott7xa