mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
children to registry
This commit is contained in:
@@ -13,7 +13,7 @@ class DOMNode(MessagePump):
|
||||
self._name = name
|
||||
self._id = id
|
||||
self._class_names: set[str] = set()
|
||||
self.children = NodeList()
|
||||
self.registry = NodeList()
|
||||
self.styles: Styles = Styles()
|
||||
super().__init__()
|
||||
|
||||
@@ -41,7 +41,7 @@ class DOMNode(MessagePump):
|
||||
# TODO:
|
||||
node: DOMNode = self
|
||||
while isinstance(node._parent, DOMNode):
|
||||
append((node, node.children[:]))
|
||||
append((node, node.registry[:]))
|
||||
node = node._parent
|
||||
return result[::-1]
|
||||
|
||||
|
||||
@@ -123,16 +123,16 @@ class Widget(DOMNode):
|
||||
widget (Widget): Widget
|
||||
"""
|
||||
self.app.register(widget, self)
|
||||
self.children._append(widget)
|
||||
self.registry._append(widget)
|
||||
return widget
|
||||
|
||||
def get_child(self, name: str | None = None, id: str | None = None) -> Widget:
|
||||
if name is not None:
|
||||
for widget in self.children:
|
||||
for widget in self.registry:
|
||||
if widget.name == name:
|
||||
return widget
|
||||
if id is not None:
|
||||
for widget in self.children:
|
||||
for widget in self.registry:
|
||||
if widget.id == id:
|
||||
return widget
|
||||
raise errors.MissingWidget(f"Widget named {name!r} was not found in {self}")
|
||||
|
||||
Reference in New Issue
Block a user