51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
"""Editor context adapter for legacy bridge access."""
|
|
|
|
|
|
class EditorContext:
|
|
"""Provide a stable access layer for editor-facing services."""
|
|
|
|
def __init__(self, world):
|
|
self.world = world
|
|
|
|
def get_interface_manager(self):
|
|
return getattr(self.world, "interface_manager", None)
|
|
|
|
def get_tree_widget(self):
|
|
interface_manager = self.get_interface_manager()
|
|
if not interface_manager:
|
|
return None
|
|
return getattr(interface_manager, "treeWidget", None)
|
|
|
|
def get_gui_manager(self):
|
|
return getattr(self.world, "gui_manager", None)
|
|
|
|
def ensure_gui_elements(self):
|
|
gui_manager = self.get_gui_manager()
|
|
if gui_manager is not None:
|
|
gui_elements = getattr(gui_manager, "gui_elements", None)
|
|
if gui_elements is None:
|
|
gui_elements = []
|
|
setattr(gui_manager, "gui_elements", gui_elements)
|
|
return gui_elements
|
|
|
|
gui_elements = getattr(self.world, "gui_elements", None)
|
|
if gui_elements is None:
|
|
gui_elements = []
|
|
setattr(self.world, "gui_elements", gui_elements)
|
|
return gui_elements
|
|
|
|
def append_gui_element(self, element):
|
|
gui_elements = self.ensure_gui_elements()
|
|
gui_elements.append(element)
|
|
return True
|
|
|
|
|
|
def get_editor_context(owner):
|
|
"""Get or create editor context from a world/owner object."""
|
|
world = getattr(owner, "world", owner)
|
|
context = getattr(world, "_editor_context", None)
|
|
if context is None or getattr(context, "world", None) is not world:
|
|
context = EditorContext(world)
|
|
setattr(world, "_editor_context", context)
|
|
return context
|