From 2c1c530f3a433b6e0c0931d9921d3c0fb8f62c68 Mon Sep 17 00:00:00 2001 From: Yiorgis Gozadinos Date: Wed, 19 Nov 2025 18:01:25 +0200 Subject: [PATCH] Fix tabbing --- haiku_rag_slim/haiku/rag/inspector/app.py | 25 +++---------------- .../haiku/rag/inspector/widgets/chunk_list.py | 2 ++ .../rag/inspector/widgets/detail_view.py | 3 +++ .../rag/inspector/widgets/document_list.py | 2 ++ 4 files changed, 11 insertions(+), 21 deletions(-) diff --git a/haiku_rag_slim/haiku/rag/inspector/app.py b/haiku_rag_slim/haiku/rag/inspector/app.py index edfdbe04..48e70d27 100644 --- a/haiku_rag_slim/haiku/rag/inspector/app.py +++ b/haiku_rag_slim/haiku/rag/inspector/app.py @@ -64,10 +64,6 @@ class InspectorApp(App): # type: ignore[misc] BINDINGS = [ Binding("q", "quit", "Quit", show=True), - Binding("d", "focus_documents", "Documents", show=True), - Binding("c", "focus_chunks", "Chunks", show=True), - Binding("v", "focus_detail", "Detail", show=True), - Binding("/", "search", "Search", show=True), ] def __init__(self, db_path: Path): @@ -93,28 +89,15 @@ class InspectorApp(App): # type: ignore[misc] doc_list = self.query_one(DocumentList) await doc_list.load_documents(self.client) + # Focus the document list view + if doc_list.list_view: + doc_list.list_view.focus() + async def on_unmount(self) -> None: """Clean up when unmounting.""" if self.client: await self.client.__aexit__(None, None, None) - def action_focus_documents(self) -> None: - """Focus the documents list.""" - self.query_one(DocumentList).focus() - - def action_focus_chunks(self) -> None: - """Focus the chunks list.""" - self.query_one(ChunkList).focus() - - def action_focus_detail(self) -> None: - """Focus the detail view.""" - self.query_one(DetailView).focus() - - def action_search(self) -> None: - """Open search dialog.""" - # TODO: Implement search dialog - pass - async def on_document_list_document_selected( self, message: DocumentList.DocumentSelected ) -> None: diff --git a/haiku_rag_slim/haiku/rag/inspector/widgets/chunk_list.py b/haiku_rag_slim/haiku/rag/inspector/widgets/chunk_list.py index b054d3e4..ce4eb52a 100644 --- a/haiku_rag_slim/haiku/rag/inspector/widgets/chunk_list.py +++ b/haiku_rag_slim/haiku/rag/inspector/widgets/chunk_list.py @@ -10,6 +10,8 @@ from haiku.rag.store.models import Chunk class ChunkList(VerticalScroll): """Widget for displaying and browsing chunks.""" + can_focus = False + class ChunkSelected(Message): """Message sent when a chunk is selected.""" diff --git a/haiku_rag_slim/haiku/rag/inspector/widgets/detail_view.py b/haiku_rag_slim/haiku/rag/inspector/widgets/detail_view.py index 6747d4b3..5fbc460b 100644 --- a/haiku_rag_slim/haiku/rag/inspector/widgets/detail_view.py +++ b/haiku_rag_slim/haiku/rag/inspector/widgets/detail_view.py @@ -8,6 +8,8 @@ from haiku.rag.store.models import Chunk, Document class DetailView(VerticalScroll): """Widget for displaying detailed content of documents or chunks.""" + can_focus = False + def __init__(self, **kwargs) -> None: super().__init__(**kwargs) self.title_widget: Static | None = None @@ -18,6 +20,7 @@ class DetailView(VerticalScroll): self.title_widget = Static("[bold]Detail View[/bold]", classes="title") yield self.title_widget self.content_widget = Markdown("") + self.content_widget.can_focus = True yield self.content_widget async def show_document(self, document: Document) -> None: diff --git a/haiku_rag_slim/haiku/rag/inspector/widgets/document_list.py b/haiku_rag_slim/haiku/rag/inspector/widgets/document_list.py index 29a344e2..60ea7ec9 100644 --- a/haiku_rag_slim/haiku/rag/inspector/widgets/document_list.py +++ b/haiku_rag_slim/haiku/rag/inspector/widgets/document_list.py @@ -10,6 +10,8 @@ from haiku.rag.store.models import Document class DocumentList(VerticalScroll): """Widget for displaying and browsing documents.""" + can_focus = False + class DocumentSelected(Message): """Message sent when a document is selected."""