@@ -7,6 +7,7 @@ var settings_state := load("res://assets/state/states/settings.tres") as State
77var game_settings_state := preload ("res://assets/state/states/game_settings.tres" ) as State
88var button_scene := load ("res://core/ui/components/card_button.tscn" ) as PackedScene
99
10+ @onready var local_library_toggle := $% LocalLibraryToggle as Toggle
1011@onready var max_recent_slider := $% MaxRecentAppsSlider
1112@onready var no_hidden_label := $% NoHiddenLabel
1213@onready var container := $% VBoxContainer
@@ -21,6 +22,13 @@ func _ready() -> void:
2122 var max_recent := settings_manager .get_value ("general.home" , "max_home_items" , 10 ) as int
2223 max_recent_slider .value = max_recent
2324
25+ # Configure desktop library
26+ await get_tree ().process_frame
27+ var enable_local_library := settings_manager .get_value ("general" , "enable_local_library" , true ) as bool
28+ local_library_toggle .button_pressed = enable_local_library
29+ local_library_toggle .toggled .connect (_on_local_library_toggled )
30+ _on_local_library_toggled (enable_local_library )
31+
2432
2533func _on_state_entered (_from : State ) -> void :
2634 # Clear old buttons
@@ -58,3 +66,30 @@ func _on_state_entered(_from: State) -> void:
5866
5967func _on_state_exited (_to : State ) -> void :
6068 pass
69+
70+
71+ func _on_local_library_toggled (enabled : bool ) -> void :
72+ if enabled :
73+ _enable_local_library ()
74+ return
75+ _disable_local_library ()
76+
77+
78+ func _enable_local_library () -> void :
79+ var library := library_manager .get_library_by_id ("desktop" )
80+ if library :
81+ return
82+ library = load ("res://core/systems/library/library_desktop.tscn" ).instantiate ()
83+
84+ var main := get_tree ().get_first_node_in_group ("main" )
85+ if not main :
86+ return
87+ main .add_child (library )
88+
89+
90+ func _disable_local_library () -> void :
91+ var library := library_manager .get_library_by_id ("desktop" )
92+ if not library :
93+ return
94+ library_manager .unregister_library (library )
95+ library .queue_free ()
0 commit comments