mirror of
https://github.com/thegatesbrowser/thegates.git
synced 2025-08-24 02:17:27 -04:00
use only gate icon, fix emty bookmark icon
This commit is contained in:
parent
550f89bcf6
commit
97045e25de
9 changed files with 41 additions and 28 deletions
|
@ -1,8 +1,8 @@
|
||||||
[gd_resource type="Resource" script_class="Bookmarks" load_steps=2 format=3 uid="uid://bewhdj6jugt6q"]
|
[gd_resource type="Resource" script_class="Bookmarks" load_steps=3 format=3 uid="uid://bewhdj6jugt6q"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/resources/bookmarks.gd" id="1_1h3wl"]
|
[ext_resource type="Script" path="res://scripts/resources/bookmarks.gd" id="1_1h3wl"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/resources/gate.gd" id="2_4h04h"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_1h3wl")
|
script = ExtResource("1_1h3wl")
|
||||||
featured_gates = Array[Resource("res://scripts/resources/gate.gd")]([])
|
starred_gates = Array[ExtResource("2_4h04h")]([])
|
||||||
starred_gates = Array[Resource("res://scripts/resources/gate.gd")]([])
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
|
const KEY_URL = "url"
|
||||||
|
const KEY_TITLE = "title"
|
||||||
|
const KEY_DESCRIPTION = "description"
|
||||||
const KEY_ICON = "icon"
|
const KEY_ICON = "icon"
|
||||||
const KEY_IMAGE = "image"
|
|
||||||
|
|
||||||
@export var api: ApiSettings
|
@export var api: ApiSettings
|
||||||
@export var bookmarks: Bookmarks
|
@export var bookmarks: Bookmarks
|
||||||
|
@ -41,8 +43,8 @@ func featured_gates_request() -> void:
|
||||||
|
|
||||||
|
|
||||||
func star_gate(gate_d: Dictionary) -> void:
|
func star_gate(gate_d: Dictionary) -> void:
|
||||||
var icon_url = gate_d[KEY_ICON] if not gate_d[KEY_ICON].is_empty() else gate_d[KEY_IMAGE]
|
var gate = Gate.create(gate_d[KEY_URL], gate_d[KEY_TITLE], gate_d[KEY_DESCRIPTION], gate_d[KEY_ICON], "")
|
||||||
var icon_path = await FileDownloader.download(icon_url)
|
|
||||||
var gate = Gate.create(gate_d["url"], gate_d["title"], gate_d["description"], icon_path, "", "", "")
|
|
||||||
|
|
||||||
bookmarks.star(gate, true)
|
bookmarks.star(gate, true)
|
||||||
|
|
||||||
|
gate.icon = await FileDownloader.download(gate.icon_url)
|
||||||
|
bookmarks.update(gate)
|
||||||
|
|
|
@ -30,7 +30,7 @@ func load_gate(config_url: String) -> void:
|
||||||
if c_gate.load_result != OK: return error(GateEvents.GateError.INVALID_CONFIG)
|
if c_gate.load_result != OK: return error(GateEvents.GateError.INVALID_CONFIG)
|
||||||
gate_events.gate_config_loaded_emit(config_url, c_gate)
|
gate_events.gate_config_loaded_emit(config_url, c_gate)
|
||||||
|
|
||||||
gate = Gate.create(config_url, c_gate.title, c_gate.description, "", "", "", "")
|
gate = Gate.create(config_url, c_gate.title, c_gate.description, c_gate.icon_url, c_gate.image_url)
|
||||||
gate_events.gate_info_loaded_emit(gate)
|
gate_events.gate_info_loaded_emit(gate)
|
||||||
|
|
||||||
# Download all in parallel
|
# Download all in parallel
|
||||||
|
|
|
@ -23,11 +23,22 @@ func ready() -> void:
|
||||||
on_ready.emit()
|
on_ready.emit()
|
||||||
|
|
||||||
|
|
||||||
|
func make_first(url: String) -> void:
|
||||||
|
if not gates.has(url): return
|
||||||
|
|
||||||
|
var gate = gates[url]
|
||||||
|
gates.erase(url)
|
||||||
|
gates[url] = gate
|
||||||
|
|
||||||
|
|
||||||
func update(gate: Gate) -> void:
|
func update(gate: Gate) -> void:
|
||||||
if not gates.has(gate.url): return
|
if not gates.has(gate.url): return
|
||||||
|
|
||||||
var replace = gates[gate.url]
|
var replace = gates[gate.url]
|
||||||
|
|
||||||
|
if gate.icon_url == replace.icon_url: gate.icon = replace.icon
|
||||||
|
if gate.image_url == replace.image_url: gate.image = replace.image
|
||||||
|
|
||||||
gates.erase(gate.url)
|
gates.erase(gate.url)
|
||||||
gates[gate.url] = gate
|
gates[gate.url] = gate
|
||||||
|
|
||||||
|
|
|
@ -5,28 +5,21 @@ class_name Gate
|
||||||
set(value): url = Url.fix_gate_url(value)
|
set(value): url = Url.fix_gate_url(value)
|
||||||
|
|
||||||
@export var title: String
|
@export var title: String
|
||||||
|
|
||||||
@export var description: String
|
@export var description: String
|
||||||
|
@export var icon_url: String
|
||||||
@export var icon: String:
|
@export var image_url: String
|
||||||
get: return icon if not icon.is_empty() else image
|
@export var icon: String
|
||||||
set(value): icon = value
|
|
||||||
|
|
||||||
@export var image: String
|
@export var image: String
|
||||||
|
|
||||||
var resource_pack: String
|
var resource_pack: String
|
||||||
|
|
||||||
var shared_libs_dir: String # local path where libs downloaded
|
var shared_libs_dir: String # local path where libs downloaded
|
||||||
|
|
||||||
|
|
||||||
static func create(_url: String, _title: String, _description: String, _icon: String,
|
static func create(_url: String, _title: String, _description: String, _icon_url: String, _image_url: String) -> Gate:
|
||||||
_image: String, _resource_pack: String, _shared_libs_dir: String) -> Gate:
|
|
||||||
var gate = Gate.new()
|
var gate = Gate.new()
|
||||||
gate.url = _url
|
gate.url = _url
|
||||||
gate.title = _title
|
gate.title = _title
|
||||||
gate.description = _description
|
gate.description = _description
|
||||||
gate.icon = _icon
|
gate.icon_url = _icon_url
|
||||||
gate.image = _image
|
gate.image_url = _image_url
|
||||||
gate.resource_pack = _resource_pack
|
|
||||||
gate.shared_libs_dir = _shared_libs_dir
|
|
||||||
return gate
|
return gate
|
||||||
|
|
|
@ -23,7 +23,11 @@ func fill(gate: Gate, special: bool = false) -> void:
|
||||||
|
|
||||||
url = gate.url
|
url = gate.url
|
||||||
title.text = "Unnamed" if gate.title.is_empty() else gate.title
|
title.text = "Unnamed" if gate.title.is_empty() else gate.title
|
||||||
icon.texture = FileTools.load_external_tex(gate.icon)
|
|
||||||
|
var icon_path = gate.icon
|
||||||
|
if icon_path.is_empty(): icon_path = await FileDownloader.download(gate.icon_url)
|
||||||
|
|
||||||
|
icon.texture = FileTools.load_external_tex(icon_path)
|
||||||
|
|
||||||
|
|
||||||
func on_pressed() -> void:
|
func on_pressed() -> void:
|
||||||
|
|
|
@ -15,6 +15,7 @@ func _ready() -> void:
|
||||||
unstar.visible = false
|
unstar.visible = false
|
||||||
|
|
||||||
gate_events.open_gate.connect(show_buttons)
|
gate_events.open_gate.connect(show_buttons)
|
||||||
|
gate_events.open_gate.connect(update_gate_order)
|
||||||
gate_events.search.connect(func(_query): hide_buttons())
|
gate_events.search.connect(func(_query): hide_buttons())
|
||||||
gate_events.exit_gate.connect(hide_buttons)
|
gate_events.exit_gate.connect(hide_buttons)
|
||||||
gate_events.gate_info_loaded.connect(update_info)
|
gate_events.gate_info_loaded.connect(update_info)
|
||||||
|
@ -38,10 +39,13 @@ func hide_buttons() -> void:
|
||||||
gate = null
|
gate = null
|
||||||
|
|
||||||
|
|
||||||
|
func update_gate_order(_url: String) -> void:
|
||||||
|
bookmarks.make_first(_url)
|
||||||
|
|
||||||
|
|
||||||
func update_info(_gate: Gate) -> void:
|
func update_info(_gate: Gate) -> void:
|
||||||
gate = _gate
|
gate = _gate
|
||||||
if bookmarks.gates.has(gate.url):
|
bookmarks.update(gate)
|
||||||
bookmarks.update(gate)
|
|
||||||
|
|
||||||
|
|
||||||
func _on_star_pressed() -> void:
|
func _on_star_pressed() -> void:
|
||||||
|
|
|
@ -20,7 +20,7 @@ func _ready() -> void:
|
||||||
root.mouse_filter = Control.MOUSE_FILTER_PASS
|
root.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||||
|
|
||||||
await get_tree().create_timer(1.0).timeout
|
await get_tree().create_timer(1.0).timeout
|
||||||
show_onboarding()
|
#show_onboarding()
|
||||||
|
|
||||||
|
|
||||||
func show_onboarding() -> void:
|
func show_onboarding() -> void:
|
||||||
|
|
|
@ -22,8 +22,7 @@ func fill(gate: Dictionary) -> void:
|
||||||
title.text = "Unnamed" if gate[KEY_TITLE].is_empty() else gate[KEY_TITLE]
|
title.text = "Unnamed" if gate[KEY_TITLE].is_empty() else gate[KEY_TITLE]
|
||||||
description.text = gate[KEY_DESCRIPTION]
|
description.text = gate[KEY_DESCRIPTION]
|
||||||
|
|
||||||
var icon_url = gate[KEY_ICON] if not gate[KEY_ICON].is_empty() else gate[KEY_IMAGE]
|
var icon_path = await FileDownloader.download(gate[KEY_ICON])
|
||||||
var icon_path = await FileDownloader.download(icon_url)
|
|
||||||
icon.texture = FileTools.load_external_tex(icon_path)
|
icon.texture = FileTools.load_external_tex(icon_path)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue