Refactored bindings to use `Binding` class for consistency across modal and screen components.

This commit is contained in:
Gustavo Henrique Santos Souza de Miranda 2025-07-06 03:04:18 -03:00
parent b1e83aabbb
commit 8a10fddb14
4 changed files with 25 additions and 25 deletions

View File

@ -1,4 +1,5 @@
from textual.app import ComposeResult from textual.app import ComposeResult
from textual.binding import Binding
from textual.containers import Vertical, Horizontal from textual.containers import Vertical, Horizontal
from textual.screen import ModalScreen from textual.screen import ModalScreen
from textual.widgets import Label, Input, Button from textual.widgets import Label, Input, Button
@ -6,7 +7,7 @@ from textual.widgets import Label, Input, Button
class EditDiaryModal(ModalScreen[tuple[int,str]]): class EditDiaryModal(ModalScreen[tuple[int,str]]):
BINDINGS = [ BINDINGS = [
("escape", "cancel", "Cancel"), Binding("escape", "cancel", "Cancel"),
] ]
def __init__(self, diary_id: int): def __init__(self, diary_id: int):

View File

@ -1,40 +1,36 @@
from typing import Optional, List import re
import asyncio
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
import hashlib from typing import Optional, List
import re
import time
from textual.app import ComposeResult
from textual.screen import Screen
from textual.widgets import Header, Footer, Static, TextArea, OptionList, Input, Button
from textual.binding import Binding
from textual.containers import Container, Horizontal, Vertical, ScrollableContainer
from pilgrim.models.entry import Entry from pilgrim.models.entry import Entry
from pilgrim.models.travel_diary import TravelDiary
from pilgrim.models.photo import Photo from pilgrim.models.photo import Photo
from pilgrim.models.travel_diary import TravelDiary
from pilgrim.ui.screens.modals.add_photo_modal import AddPhotoModal from pilgrim.ui.screens.modals.add_photo_modal import AddPhotoModal
from pilgrim.ui.screens.modals.edit_photo_modal import EditPhotoModal
from pilgrim.ui.screens.modals.confirm_delete_modal import ConfirmDeleteModal from pilgrim.ui.screens.modals.confirm_delete_modal import ConfirmDeleteModal
from pilgrim.ui.screens.modals.edit_photo_modal import EditPhotoModal
from pilgrim.ui.screens.modals.file_picker_modal import FilePickerModal from pilgrim.ui.screens.modals.file_picker_modal import FilePickerModal
from pilgrim.ui.screens.rename_entry_modal import RenameEntryModal from pilgrim.ui.screens.rename_entry_modal import RenameEntryModal
from textual.app import ComposeResult
from textual.binding import Binding
from textual.containers import Container, Horizontal, Vertical
from textual.screen import Screen
from textual.widgets import Header, Footer, Static, TextArea, OptionList
class EditEntryScreen(Screen): class EditEntryScreen(Screen):
TITLE = "Pilgrim - Edit" TITLE = "Pilgrim - Edit"
BINDINGS = [ BINDINGS = [
("ctrl+q", "quit", "Quit"), Binding("ctrl+q", "quit", "Quit"),
("ctrl+s", "save", "Save"), Binding("ctrl+s", "save", "Save"),
("ctrl+n", "new_entry", "New Entry"), Binding("ctrl+n", "new_entry", "New Entry"),
("ctrl+shift+n", "next_entry", "Next Entry"), Binding("ctrl+shift+n", "next_entry", "Next Entry"),
("ctrl+shift+p", "prev_entry", "Previous Entry"), Binding("ctrl+shift+p", "prev_entry", "Previous Entry"),
("ctrl+r", "rename_entry", "Rename Entry"), Binding("ctrl+r", "rename_entry", "Rename Entry"),
("f8", "toggle_sidebar", "Toggle Photos"), Binding("f8", "toggle_sidebar", "Toggle Photos"),
("f9", "toggle_focus", "Toggle Focus"), Binding("f9", "toggle_focus", "Toggle Focus"),
("escape", "back_to_list", "Back to List"), Binding("escape", "back_to_list", "Back to List"),
] ]
def __init__(self, diary_id: int = 1): def __init__(self, diary_id: int = 1):

View File

@ -1,11 +1,13 @@
from textual.app import ComposeResult from textual.app import ComposeResult
from textual.binding import Binding
from textual.containers import Vertical, Horizontal from textual.containers import Vertical, Horizontal
from textual.screen import ModalScreen from textual.screen import ModalScreen
from textual.widgets import Label, Input, Button from textual.widgets import Label, Input, Button
class NewDiaryModal(ModalScreen[str]): class NewDiaryModal(ModalScreen[str]):
BINDINGS = [ BINDINGS = [
("escape", "cancel", "Cancel"), Binding("escape", "cancel", "Cancel"),
] ]
def __init__(self): def __init__(self):
super().__init__() super().__init__()

View File

@ -1,4 +1,5 @@
from textual.app import ComposeResult from textual.app import ComposeResult
from textual.binding import Binding
from textual.containers import Vertical, Horizontal from textual.containers import Vertical, Horizontal
from textual.screen import ModalScreen from textual.screen import ModalScreen
from textual.widgets import Label, Input, Button from textual.widgets import Label, Input, Button
@ -8,7 +9,7 @@ class RenameEntryModal(ModalScreen[str]):
"""A modal screen to rename a diary entry.""" """A modal screen to rename a diary entry."""
BINDINGS = [ BINDINGS = [
("escape", "cancel", "Cancel"), Binding("escape", "cancel", "Cancel"),
] ]
def __init__(self, current_name: str): def __init__(self, current_name: str):