From 9f22c70e899f01466ad93bc1e61991bb64dc582c Mon Sep 17 00:00:00 2001 From: Javanaut Date: Fri, 27 Sep 2024 16:33:57 +0200 Subject: [PATCH] inc --- bin/ffx/model/track.py | 6 ++- bin/ffx/pattern_details_screen.py | 13 ++--- bin/ffx/track_delete_screen.py | 86 ++++++++++++++++++------------- bin/ffx/track_details_screen.py | 4 +- 4 files changed, 64 insertions(+), 45 deletions(-) diff --git a/bin/ffx/model/track.py b/bin/ffx/model/track.py index 9bbddc2..dfb2867 100644 --- a/bin/ffx/model/track.py +++ b/bin/ffx/model/track.py @@ -1,9 +1,11 @@ # from typing import List -from sqlalchemy import create_engine, Column, Integer, String, ForeignKey +from sqlalchemy import create_engine, Column, Integer, String, ForeignKey, Enum from sqlalchemy.orm import relationship, declarative_base, sessionmaker from .show import Base +from ffx.track_type import TrackType + class Track(Base): """ @@ -20,7 +22,7 @@ class Track(Base): # v1.x id = Column(Integer, primary_key=True) - track_type = Column(Integer) + track_type = Column(Enum[TrackType]) # v1.x pattern_id = Column(Integer, ForeignKey('patterns.id', ondelete="CASCADE")) diff --git a/bin/ffx/pattern_details_screen.py b/bin/ffx/pattern_details_screen.py index e1b5f58..53c9ad9 100644 --- a/bin/ffx/pattern_details_screen.py +++ b/bin/ffx/pattern_details_screen.py @@ -15,6 +15,7 @@ from .show_controller import ShowController from .track_details_screen import TrackDetailsScreen from .track_delete_screen import TrackDeleteScreen +from ffx.track_type import TrackType # Screen[dict[int, str, int]] class PatternDetailsScreen(Screen): @@ -212,18 +213,18 @@ class PatternDetailsScreen(Screen): if event.button.id == "button_add_audio_stream": - self.app.push_screen(TrackDetailsScreen(2), self.handle_add_stream) + self.app.push_screen(TrackDetailsScreen(TrackType.AUDIO), self.handle_add_stream) if event.button.id == "button_edit_audio_stream": - self.app.push_screen(TrackDetailsScreen(2), self.handle_edit_stream) + self.app.push_screen(TrackDetailsScreen(TrackType.AUDIO), self.handle_edit_stream) if event.button.id == "button_delete_audio_stream": - self.app.push_screen(TrackDeleteScreen(), self.handle_delete_stream) + self.app.push_screen(TrackDeleteScreen(TrackType.AUDIO), self.handle_delete_stream) if event.button.id == "button_add_subtitle_stream": - self.app.push_screen(TrackDetailsScreen(3), self.handle_add_stream) + self.app.push_screen(TrackDetailsScreen(TrackType.SUBTITLE), self.handle_add_stream) if event.button.id == "button_edit_subtitle_stream": - self.app.push_screen(TrackDetailsScreen(3), self.handle_edit_stream) + self.app.push_screen(TrackDetailsScreen(TrackType.SUBTITLE), self.handle_edit_stream) if event.button.id == "button_delete_subtitle_stream": - self.app.push_screen(TrackDeleteScreen(), self.handle_delete_stream) + self.app.push_screen(TrackDeleteScreen(TrackType.SUBTITLE), self.handle_delete_stream) def handle_add_stream(self): diff --git a/bin/ffx/track_delete_screen.py b/bin/ffx/track_delete_screen.py index 0605199..929de8d 100644 --- a/bin/ffx/track_delete_screen.py +++ b/bin/ffx/track_delete_screen.py @@ -8,9 +8,11 @@ from textual.containers import Grid, Horizontal from ffx.model.pattern import Pattern -from .show_controller import ShowController -from .pattern_controller import PatternController +# from .show_controller import ShowController +# from .pattern_controller import PatternController +from .track_controller import TrackController +from .track_type import TrackType # Screen[dict[int, str, int]] class TrackDeleteScreen(Screen): @@ -46,43 +48,57 @@ class TrackDeleteScreen(Screen): } """ - def __init__(self, patternId = None, showId = None): + TRACK_TYPE_LABELS = [ + 'video', + 'audio', + 'subtitle' + ] + + + def __init__(self, trackType : TrackType, trackId = None): super().__init__() self.context = self.app.getContext() self.Session = self.context['database_session'] # convenience - self.__pc = PatternController(context = self.context) - self.__sc = ShowController(context = self.context) + self.__tc = TrackController(context = self.context) + # self.__pc = PatternController(context = self.context) + # self.__sc = ShowController(context = self.context) + + # self.pattern_obj = self.__pc.getPatternDescriptor(patternId) if patternId is not None else {} + # self.show_obj = self.__sc.getShowDesciptor(showId) if showId is not None else {} - self.pattern_obj = self.__pc.getPatternDescriptor(patternId) if patternId is not None else {} - self.show_obj = self.__sc.getShowDesciptor(showId) if showId is not None else {} + self.trackType = trackType + self.track_obj = {} def on_mount(self): - if self.show_obj: - self.query_one("#showlabel", Static).update(f"{self.show_obj['id']} - {self.show_obj['name']} ({self.show_obj['year']})") - if self.pattern_obj: - self.query_one("#patternlabel", Static).update(str(self.pattern_obj['pattern'])) + pass + # if self.show_obj: + # self.query_one("#showlabel", Static).update(f"{self.show_obj['id']} - {self.show_obj['name']} ({self.show_obj['year']})") + # if self.pattern_obj: + # self.query_one("#patternlabel", Static).update(str(self.pattern_obj['pattern'])) def compose(self): + typeLabel = TrackDeleteScreen.TRACK_TYPE_LABELS[int(self.trackType.value)-1] + yield Header() with Grid(): - yield Static("Are you sure to delete the following filename pattern?", id="toplabel", classes="two") - - yield Static("", classes="two") - - yield Static("Pattern") - yield Static("", id="patternlabel") - - yield Static("", classes="two") + yield Static(f"Are you sure to delete the following {typeLabel} stream?", id="toplabel", classes="two") - yield Static("from show") - yield Static("", id="showlabel") +# yield Static("", classes="two") +# +# yield Static("Pattern") +# yield Static("", id="patternlabel") +# +# yield Static("", classes="two") +# +# yield Static("from show") +# yield Static("", id="showlabel") yield Static("", classes="two") @@ -95,20 +111,20 @@ class TrackDeleteScreen(Screen): # Event handler for button press def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == "delete_button": - - if self.__pc.deletePattern(self.pattern_obj['id']): - - screenResult = {} - screenResult['show_id'] = self.show_obj['id'] - screenResult['pattern'] = self.pattern_obj['pattern'] - - self.dismiss(screenResult) - - else: - #TODO: Meldung - self.app.pop_screen() - +# if event.button.id == "delete_button": +# +# if self.__pc.deletePattern(self.pattern_obj['id']): +# +# screenResult = {} +# screenResult['show_id'] = self.show_obj['id'] +# screenResult['pattern'] = self.pattern_obj['pattern'] +# +# self.dismiss(screenResult) +# +# else: +# #TODO: Meldung +# self.app.pop_screen() +# if event.button.id == "cancel_button": self.app.pop_screen() diff --git a/bin/ffx/track_details_screen.py b/bin/ffx/track_details_screen.py index 4702307..059d43f 100644 --- a/bin/ffx/track_details_screen.py +++ b/bin/ffx/track_details_screen.py @@ -62,7 +62,7 @@ class TrackDetailsScreen(Screen): } """ - STREAM_TYPE_LABELS = [ + TRACK_TYPE_LABELS = [ 'video', 'audio', 'subtitle' @@ -144,7 +144,7 @@ class TrackDetailsScreen(Screen): # # self.subtitleStreamsTable.cursor_type = 'row' - typeLabel = TrackDetailsScreen.STREAM_TYPE_LABELS[self.trackType-1] + typeLabel = TrackDetailsScreen.TRACK_TYPE_LABELS[int(self.trackType.value)-1] yield Header()