Add 'Active' column to DataTable with visual indicators for entry status

This commit is contained in:
Philip Henning 2025-07-29 17:13:22 +02:00
parent e83db8ce67
commit a399b04c99

View file

@ -162,6 +162,7 @@ class HostsManagerApp(App):
table.show_header = True
# Create column labels with sort indicators
active_label = "Active"
ip_label = "IP Address"
hostname_label = "Canonical Hostname"
@ -173,8 +174,8 @@ class HostsManagerApp(App):
arrow = "" if self.sort_ascending else ""
hostname_label = f"{arrow} Canonical Hostname"
# Add columns with proper labels
table.add_columns(ip_label, hostname_label)
# Add columns with proper labels (Active column first)
table.add_columns(active_label, ip_label, hostname_label)
# Add rows
for entry in self.hosts_file.entries:
@ -183,15 +184,17 @@ class HostsManagerApp(App):
# Add row with styling based on active status
if entry.is_active:
# Active entries in green
# Active entries in green with checkmark
active_text = Text("", style="bold green")
ip_text = Text(entry.ip_address, style="bold green")
hostname_text = Text(canonical_hostname, style="bold green")
table.add_row(ip_text, hostname_text)
table.add_row(active_text, ip_text, hostname_text)
else:
# Inactive entries in dim yellow with italic (no # prefix in IP column)
# Inactive entries in dim yellow with italic (no checkmark)
active_text = Text("", style="dim yellow italic")
ip_text = Text(entry.ip_address, style="dim yellow italic")
hostname_text = Text(canonical_hostname, style="dim yellow italic")
table.add_row(ip_text, hostname_text)
table.add_row(active_text, ip_text, hostname_text)
def restore_cursor_position(self, previous_entry) -> None:
"""Restore cursor position after reload, maintaining selection if possible."""