changed ui.py to add command palettes commands and changed diary_list_screen.py to add access to the about_screen.py

This commit is contained in:
Gustavo Henrique Santos Souza de Miranda 2025-06-20 00:20:06 -03:00
parent 33509af0de
commit cb31ba5662
2 changed files with 39 additions and 4 deletions

View File

@ -8,6 +8,7 @@ from textual.binding import Binding
from textual.containers import Vertical, Container, Horizontal from textual.containers import Vertical, Container, Horizontal
from pilgrim.models.travel_diary import TravelDiary from pilgrim.models.travel_diary import TravelDiary
from pilgrim.ui.screens.about_screen import AboutScreen
from pilgrim.ui.screens.edit_diary_modal import EditDiaryModal from pilgrim.ui.screens.edit_diary_modal import EditDiaryModal
from pilgrim.ui.screens.new_diary_modal import NewDiaryModal from pilgrim.ui.screens.new_diary_modal import NewDiaryModal
@ -283,4 +284,7 @@ class DiaryListScreen(Screen):
def action_open_selected_diary(self): def action_open_selected_diary(self):
"""Ação do binding ENTER""" """Ação do binding ENTER"""
self.action_open_diary() self.action_open_diary()
def action_about_cmd(self):
self.app.push_screen(AboutScreen())

View File

@ -1,8 +1,12 @@
from pathlib import Path from pathlib import Path
from typing import Iterable
from textual.app import App, SystemCommand
from textual.screen import Screen
from textual.app import App
from pilgrim.service.servicemanager import ServiceManager from pilgrim.service.servicemanager import ServiceManager
from pilgrim.ui.screens.about_screen import AboutScreen
from pilgrim.ui.screens.diary_list_screen import DiaryListScreen from pilgrim.ui.screens.diary_list_screen import DiaryListScreen
CSS_FILE_PATH = Path(__file__).parent / "styles" / "pilgrim.css" CSS_FILE_PATH = Path(__file__).parent / "styles" / "pilgrim.css"
@ -11,11 +15,38 @@ CSS_FILE_PATH = Path(__file__).parent / "styles" / "pilgrim.css"
class UIApp(App): class UIApp(App):
CSS_PATH = CSS_FILE_PATH CSS_PATH = CSS_FILE_PATH
def __init__(self,service_manager: ServiceManager): def __init__(self,service_manager: ServiceManager, **kwargs):
super().__init__() super().__init__(**kwargs)
self.service_manager = service_manager self.service_manager = service_manager
def on_mount(self) -> None: def on_mount(self) -> None:
"""Chamado quando a app inicia. Carrega a tela principal.""" """Chamado quando a app inicia. Carrega a tela principal."""
self.push_screen(DiaryListScreen()) self.push_screen(DiaryListScreen())
def get_system_commands(self, screen: Screen) -> Iterable[SystemCommand]:
"""Return commands based on current screen."""
# Commands for DiaryListScreen
if isinstance(screen, DiaryListScreen):
yield SystemCommand(
"About Pilgrim",
"Open About Pilgrim",
screen.action_about_cmd
)
elif isinstance(screen, AboutScreen):
yield SystemCommand(
"Back to List",
"Return to the diary list",
screen.dismiss
)
# Always include quit command
yield SystemCommand(
"Quit Application",
"Exit Pilgrim",
self.action_quit
)