Remove verify screen, CLI subcommand, and all related functions. Fix logo/menu height alignment on main menu screen. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
70 lines
2.6 KiB
Python
70 lines
2.6 KiB
Python
from textual.app import ComposeResult
|
|
from textual.screen import Screen
|
|
from textual.widgets import Header, Footer, Static, OptionList
|
|
from textual.widgets.option_list import Option
|
|
from textual.containers import Horizontal, Vertical
|
|
|
|
LOGO = """\
|
|
[green]
|
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
|
|
|
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
|
|
|
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓▓▓▓▓
|
|
▓▓▓▓▓▓
|
|
▓▓
|
|
[/green]
|
|
gniza - Linux Backup Manager
|
|
"""
|
|
|
|
MENU_ITEMS = [
|
|
("backup", "Backup"),
|
|
("restore", "Restore"),
|
|
("targets", "Targets"),
|
|
("remotes", "Remotes"),
|
|
("snapshots", "Snapshots"),
|
|
("retention", "Retention"),
|
|
("schedule", "Schedules"),
|
|
("logs", "Logs"),
|
|
("settings", "Settings"),
|
|
("quit", "Quit"),
|
|
]
|
|
|
|
|
|
class MainMenuScreen(Screen):
|
|
|
|
BINDINGS = [("q", "quit_app", "Quit")]
|
|
|
|
def compose(self) -> ComposeResult:
|
|
yield Header()
|
|
with Horizontal(id="main-layout"):
|
|
yield Static(LOGO, id="logo", markup=True)
|
|
yield OptionList(
|
|
*[Option(label, id=mid) for mid, label in MENU_ITEMS],
|
|
id="menu-list",
|
|
)
|
|
yield Footer()
|
|
|
|
def on_mount(self) -> None:
|
|
self.query_one("#menu-list", OptionList).focus()
|
|
|
|
def on_option_list_option_selected(self, event: OptionList.OptionSelected) -> None:
|
|
option_id = event.option.id
|
|
if option_id == "quit":
|
|
self.app.exit()
|
|
elif option_id:
|
|
self.app.push_screen(option_id)
|
|
|
|
def action_quit_app(self) -> None:
|
|
self.app.exit()
|