inc
This commit is contained in:
@@ -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"))
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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(f"Are you sure to delete the following {typeLabel} stream?", id="toplabel", classes="two")
|
||||
|
||||
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")
|
||||
#
|
||||
# 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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user