# various UX stuff extends Object class_name GDBUX const __META_STATE = "__gdbui_ux_state__" class __State: signal recent_places_changed() signal favourite_places_changed() ################ # public stuff # ################ static func get_recent_places() -> Array: return GDBSettings.get_value(GDBConstants.SETTING_RECENT_PLACES, []) static func add_recent_place(place) -> void: if place is UIB_FileAdapter.FileEntry: add_recent_place(place._get_path()) return assert(place is String) var recent_places : Array = GDBSettings.get_value(GDBConstants.SETTING_RECENT_PLACES, []) recent_places.erase(place) recent_places.push_front(place) GDBSettings.set_value(GDBConstants.SETTING_RECENT_PLACES, recent_places) __get_state().emit_signal("recent_places_changed") static func get_favourite_places() -> Array: return GDBSettings.get_value(GDBConstants.SETTING_FAVOURITE_PLACES, []) static func is_favourite_place(place) -> bool: if place is UIB_FileAdapter.FileEntry: return is_favourite_place(place._get_path()) assert(place is String) return GDBSettings.array_has_value(GDBConstants.SETTING_FAVOURITE_PLACES, place) static func add_favourite_place(place) -> void: if place is UIB_FileAdapter.FileEntry: add_favourite_place(place._get_path()) return assert(place is String) var places = GDBSettings.get_value(GDBConstants.SETTING_FAVOURITE_PLACES, []) if !places.has(place): places.append(place) GDBSettings.set_value(GDBConstants.SETTING_FAVOURITE_PLACES, places) __get_state().emit_signal("favourite_places_changed") static func remove_favourite_place(place) -> void: if place is UIB_FileAdapter.FileEntry: remove_favourite_place(place._get_path()) return assert(place is String) var places = GDBSettings.get_value(GDBConstants.SETTING_FAVOURITE_PLACES, []) if places.has(place): places.erase(place) GDBSettings.set_value(GDBConstants.SETTING_FAVOURITE_PLACES, places) __get_state().emit_signal("favourite_places_changed") static func connect_static(sig_name : String, receiver : Object, method : String, binds := []) -> int: return __get_state().connect(sig_name, receiver, method, binds) static func disconnect_static(sig_name : String, receiver : Object, method : String) -> void: __get_state().disconnect(sig_name, receiver, method) ################# # private stuff # ################# static func __get_state() -> __State: return GDBUtility.get_state_object(__META_STATE, __State)