From 3d2b8c1420f8645b0ecfca5ea04de61444b443dc Mon Sep 17 00:00:00 2001 From: Darren Burns Date: Thu, 18 Jul 2024 23:16:09 +0100 Subject: [PATCH] Inserting tree node in correct place on creation --- src/posting/widgets/collection/browser.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/posting/widgets/collection/browser.py b/src/posting/widgets/collection/browser.py index b167cc1d..e54f21f3 100644 --- a/src/posting/widgets/collection/browser.py +++ b/src/posting/widgets/collection/browser.py @@ -273,7 +273,10 @@ def _handle_new_request_data(new_request_data: NewRequestData | None) -> None: new_node = self.add_request( new_request, parent_node if pointer is self.root else pointer, - cursor_node, + after=None if parent_node == cursor_node else cursor_node, + before=0 + if parent_node == cursor_node and len(parent_node.children) > 0 + else None, ) self.currently_open = new_node @@ -313,11 +316,14 @@ def add_request( self, request: RequestModel, parent_node: TreeNode[CollectionNode], - cursor_node: TreeNode[CollectionNode] | None = None, + after: TreeNode[CollectionNode] | int | None = None, + before: TreeNode[CollectionNode] | int | None = None, ) -> TreeNode[CollectionNode]: """Add a new request to the tree, and cache data from it.""" self.cache_request(request) - return parent_node.add_leaf(request.name, data=request, after=cursor_node) + return parent_node.add_leaf( + request.name, data=request, after=after, before=before + ) def cache_request(self, request: RequestModel) -> None: def get_base_url(url: str) -> str | None: