Enhance DataTable row styling by using Rich Text for active and inactive entries
This commit is contained in:
parent
bcded3105b
commit
9cd2b5c3fe
1 changed files with 11 additions and 3 deletions
|
@ -9,6 +9,7 @@ from textual.containers import Horizontal, Vertical
|
|||
from textual.widgets import Header, Footer, Static, DataTable
|
||||
from textual.binding import Binding
|
||||
from textual.reactive import reactive
|
||||
from rich.text import Text
|
||||
|
||||
from .core.parser import HostsParser
|
||||
from .core.models import HostsFile
|
||||
|
@ -73,6 +74,8 @@ class HostsManagerApp(App):
|
|||
#entries-table .datatable--odd-row {
|
||||
background: $surface;
|
||||
}
|
||||
|
||||
/* DataTable row styling - colors are now handled via Rich Text objects */
|
||||
"""
|
||||
|
||||
BINDINGS = [
|
||||
|
@ -180,10 +183,15 @@ class HostsManagerApp(App):
|
|||
|
||||
# Add row with styling based on active status
|
||||
if entry.is_active:
|
||||
table.add_row(entry.ip_address, canonical_hostname)
|
||||
# Active entries in green
|
||||
ip_text = Text(entry.ip_address, style="green")
|
||||
hostname_text = Text(canonical_hostname, style="green")
|
||||
table.add_row(ip_text, hostname_text)
|
||||
else:
|
||||
# For inactive entries, we'll style them differently
|
||||
table.add_row(f"# {entry.ip_address}", canonical_hostname)
|
||||
# Inactive entries in yellow/orange with # prefix and italic
|
||||
ip_text = Text(f"# {entry.ip_address}", style="yellow italic")
|
||||
hostname_text = Text(canonical_hostname, style="yellow italic")
|
||||
table.add_row(ip_text, hostname_text)
|
||||
|
||||
def restore_cursor_position(self, previous_entry) -> None:
|
||||
"""Restore cursor position after reload, maintaining selection if possible."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue