This commit is contained in:
Face
2025-09-07 18:49:32 +03:00
parent b4639e80bc
commit 7220880e95
19 changed files with 1078 additions and 23 deletions

View File

@@ -0,0 +1,114 @@
extends Node
const SETTINGS_FILE = "user://browser_settings.json"
var settings_data = {
"startup_new_tab": true,
"startup_specific_page": false,
"startup_url": "",
"search_engine_url": "gurt://search.web?q=",
"download_confirmation": true,
"dns_url": "135.125.163.131:4878"
}
var _loaded = false
func _ready():
load_settings()
func load_settings():
if _loaded:
return
if not FileAccess.file_exists(SETTINGS_FILE):
save_settings()
_loaded = true
return
var file = FileAccess.open(SETTINGS_FILE, FileAccess.READ)
if not file:
print("Failed to open settings file")
_loaded = true
return
var json_text = file.get_as_text()
file.close()
var json = JSON.new()
var parse_result = json.parse(json_text)
if parse_result != OK:
print("Failed to parse settings JSON")
_loaded = true
return
var loaded_data = json.data
if loaded_data is Dictionary:
# Merge loaded settings with defaults
for key in loaded_data:
if key in settings_data:
settings_data[key] = loaded_data[key]
_loaded = true
print("Settings loaded: ", settings_data)
func save_settings():
var file = FileAccess.open(SETTINGS_FILE, FileAccess.WRITE)
if not file:
print("Failed to open settings file for writing")
return
var json_text = JSON.stringify(settings_data)
file.store_string(json_text)
file.close()
print("Settings saved: ", settings_data)
func get_download_confirmation() -> bool:
return settings_data.download_confirmation
func get_search_engine_url() -> String:
return settings_data.search_engine_url
func get_dns_url() -> String:
return settings_data.dns_url
func get_startup_behavior() -> Dictionary:
return {
"new_tab": settings_data.startup_new_tab,
"specific_page": settings_data.startup_specific_page,
"url": settings_data.startup_url
}
func set_download_confirmation(value: bool):
settings_data.download_confirmation = value
save_settings()
func set_search_engine_url(value: String):
settings_data.search_engine_url = value
save_settings()
func set_dns_url(value: String):
settings_data.dns_url = value
save_settings()
# Update GurtProtocol immediately
GurtProtocol.set_dns_server(value)
func set_startup_new_tab(value: bool):
settings_data.startup_new_tab = value
if value:
settings_data.startup_specific_page = false
save_settings()
func set_startup_specific_page(value: bool):
settings_data.startup_specific_page = value
if value:
settings_data.startup_new_tab = false
save_settings()
func set_startup_url(value: String):
settings_data.startup_url = value
save_settings()
func get_setting(key: String, default_value = null):
if key in settings_data:
return settings_data[key]
return default_value