Massive refactoring #1

Merged
Kharec merged 35 commits from new-architecture into main 2026-02-18 04:29:20 +01:00
4 changed files with 14 additions and 8 deletions
Showing only changes of commit 184585bed0 - Show all commits

View File

@@ -2,7 +2,7 @@
from __future__ import annotations from __future__ import annotations
from textual.app import App from textual.app import App, ComposeResult
from ..constants import TABLE_CSS from ..constants import TABLE_CSS
@@ -22,6 +22,9 @@ class Auditui(App, AppProgressMixin, AppActionsMixin, AppLibraryMixin, AppTableM
BINDINGS = BINDINGS BINDINGS = BINDINGS
CSS = TABLE_CSS CSS = TABLE_CSS
def compose(self) -> ComposeResult:
yield from AppLayoutMixin.compose(self)
def __init__(self, auth=None, client=None) -> None: def __init__(self, auth=None, client=None) -> None:
super().__init__() super().__init__()
init_auditui_state(self, auth, client) init_auditui_state(self, auth, client)

View File

@@ -15,7 +15,7 @@ class AppActionsMixin:
self.update_status( self.update_status(
"Not authenticated. Please restart and authenticate.") "Not authenticated. Please restart and authenticate.")
return None return None
table = self.query_one(DataTable) table = self.query_one("#library_table", DataTable)
if table.row_count == 0: if table.row_count == 0:
self.update_status("No books available") self.update_status("No books available")
return None return None

View File

@@ -20,7 +20,7 @@ class AppLayoutMixin:
id="top_bar", id="top_bar",
) )
yield Static("Loading...", id="status") yield Static("Loading...", id="status")
table = DataTable() table = DataTable(id="library_table")
table.zebra_stripes = True table.zebra_stripes = True
table.cursor_type = "row" table.cursor_type = "row"
yield table yield table
@@ -32,7 +32,10 @@ class AppLayoutMixin:
def on_mount(self) -> None: def on_mount(self) -> None:
self.theme = "textual-dark" self.theme = "textual-dark"
table = self.query_one(DataTable) self.call_after_refresh(self._init_table_and_intervals)
def _init_table_and_intervals(self) -> None:
table = self.query_one("#library_table", DataTable)
for column_name, _ratio in TABLE_COLUMN_DEFS: for column_name, _ratio in TABLE_COLUMN_DEFS:
table.add_column(column_name) table.add_column(column_name)
self.call_after_refresh(lambda: self._apply_column_widths(table)) self.call_after_refresh(lambda: self._apply_column_widths(table))
@@ -58,7 +61,7 @@ class AppLayoutMixin:
def on_resize(self, event: Resize) -> None: def on_resize(self, event: Resize) -> None:
del event del event
try: try:
table = self.query_one(DataTable) table = self.query_one("#library_table", DataTable)
except Exception: except Exception:
return return
self.call_after_refresh(lambda: self._apply_column_widths(table)) self.call_after_refresh(lambda: self._apply_column_widths(table))

View File

@@ -15,7 +15,7 @@ from textual.widgets import DataTable, Static
class AppTableMixin: class AppTableMixin:
def _populate_table(self, items: list[LibraryItem]) -> None: def _populate_table(self, items: list[LibraryItem]) -> None:
table = self.query_one(DataTable) table = self.query_one("#library_table", DataTable)
table.clear() table.clear()
if not items or not self.library_client: if not items or not self.library_client:
@@ -51,14 +51,14 @@ class AppTableMixin:
self._refresh_filtered_view() self._refresh_filtered_view()
def action_sort(self) -> None: def action_sort(self) -> None:
table = self.query_one(DataTable) table = self.query_one("#library_table", DataTable)
if table.row_count > 0 and self.title_column_key: if table.row_count > 0 and self.title_column_key:
title_key, reverse = create_title_sort_key(self.title_sort_reverse) title_key, reverse = create_title_sort_key(self.title_sort_reverse)
table.sort(key=title_key, reverse=reverse) table.sort(key=title_key, reverse=reverse)
self.title_sort_reverse = not self.title_sort_reverse self.title_sort_reverse = not self.title_sort_reverse
def action_sort_by_progress(self) -> None: def action_sort_by_progress(self) -> None:
table = self.query_one(DataTable) table = self.query_one("#library_table", DataTable)
if table.row_count > 0: if table.row_count > 0:
self.progress_sort_reverse = not self.progress_sort_reverse self.progress_sort_reverse = not self.progress_sort_reverse
progress_key, reverse = create_progress_sort_key( progress_key, reverse = create_progress_sort_key(