inc
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
# from typing import List
|
# 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 sqlalchemy.orm import relationship, declarative_base, sessionmaker
|
||||||
|
|
||||||
from .show import Base
|
from .show import Base
|
||||||
|
|
||||||
|
from ffx.track_type import TrackType
|
||||||
|
|
||||||
|
|
||||||
class Track(Base):
|
class Track(Base):
|
||||||
"""
|
"""
|
||||||
@@ -20,7 +22,7 @@ class Track(Base):
|
|||||||
# v1.x
|
# v1.x
|
||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
|
|
||||||
track_type = Column(Integer)
|
track_type = Column(Enum[TrackType])
|
||||||
|
|
||||||
# v1.x
|
# v1.x
|
||||||
pattern_id = Column(Integer, ForeignKey('patterns.id', ondelete="CASCADE"))
|
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_details_screen import TrackDetailsScreen
|
||||||
from .track_delete_screen import TrackDeleteScreen
|
from .track_delete_screen import TrackDeleteScreen
|
||||||
|
|
||||||
|
from ffx.track_type import TrackType
|
||||||
|
|
||||||
# Screen[dict[int, str, int]]
|
# Screen[dict[int, str, int]]
|
||||||
class PatternDetailsScreen(Screen):
|
class PatternDetailsScreen(Screen):
|
||||||
@@ -212,18 +213,18 @@ class PatternDetailsScreen(Screen):
|
|||||||
|
|
||||||
|
|
||||||
if event.button.id == "button_add_audio_stream":
|
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":
|
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":
|
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":
|
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":
|
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":
|
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):
|
def handle_add_stream(self):
|
||||||
|
|||||||
@@ -8,9 +8,11 @@ from textual.containers import Grid, Horizontal
|
|||||||
|
|
||||||
from ffx.model.pattern import Pattern
|
from ffx.model.pattern import Pattern
|
||||||
|
|
||||||
from .show_controller import ShowController
|
# from .show_controller import ShowController
|
||||||
from .pattern_controller import PatternController
|
# from .pattern_controller import PatternController
|
||||||
|
from .track_controller import TrackController
|
||||||
|
|
||||||
|
from .track_type import TrackType
|
||||||
|
|
||||||
# Screen[dict[int, str, int]]
|
# Screen[dict[int, str, int]]
|
||||||
class TrackDeleteScreen(Screen):
|
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__()
|
super().__init__()
|
||||||
|
|
||||||
self.context = self.app.getContext()
|
self.context = self.app.getContext()
|
||||||
self.Session = self.context['database_session'] # convenience
|
self.Session = self.context['database_session'] # convenience
|
||||||
|
|
||||||
self.__pc = PatternController(context = self.context)
|
self.__tc = TrackController(context = self.context)
|
||||||
self.__sc = ShowController(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.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.show_obj = self.__sc.getShowDesciptor(showId) if showId is not None else {}
|
||||||
|
|
||||||
|
self.trackType = trackType
|
||||||
|
self.track_obj = {}
|
||||||
|
|
||||||
|
|
||||||
def on_mount(self):
|
def on_mount(self):
|
||||||
if self.show_obj:
|
pass
|
||||||
self.query_one("#showlabel", Static).update(f"{self.show_obj['id']} - {self.show_obj['name']} ({self.show_obj['year']})")
|
# if self.show_obj:
|
||||||
if self.pattern_obj:
|
# self.query_one("#showlabel", Static).update(f"{self.show_obj['id']} - {self.show_obj['name']} ({self.show_obj['year']})")
|
||||||
self.query_one("#patternlabel", Static).update(str(self.pattern_obj['pattern']))
|
# if self.pattern_obj:
|
||||||
|
# self.query_one("#patternlabel", Static).update(str(self.pattern_obj['pattern']))
|
||||||
|
|
||||||
|
|
||||||
def compose(self):
|
def compose(self):
|
||||||
|
|
||||||
|
typeLabel = TrackDeleteScreen.TRACK_TYPE_LABELS[int(self.trackType.value)-1]
|
||||||
|
|
||||||
yield Header()
|
yield Header()
|
||||||
|
|
||||||
with Grid():
|
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("", classes="two")
|
||||||
|
#
|
||||||
yield Static("Pattern")
|
# yield Static("Pattern")
|
||||||
yield Static("", id="patternlabel")
|
# yield Static("", id="patternlabel")
|
||||||
|
#
|
||||||
yield Static("", classes="two")
|
# yield Static("", classes="two")
|
||||||
|
#
|
||||||
yield Static("from show")
|
# yield Static("from show")
|
||||||
yield Static("", id="showlabel")
|
# yield Static("", id="showlabel")
|
||||||
|
|
||||||
yield Static("", classes="two")
|
yield Static("", classes="two")
|
||||||
|
|
||||||
@@ -95,20 +111,20 @@ class TrackDeleteScreen(Screen):
|
|||||||
# Event handler for button press
|
# Event handler for button press
|
||||||
def on_button_pressed(self, event: Button.Pressed) -> None:
|
def on_button_pressed(self, event: Button.Pressed) -> None:
|
||||||
|
|
||||||
if event.button.id == "delete_button":
|
# if event.button.id == "delete_button":
|
||||||
|
#
|
||||||
if self.__pc.deletePattern(self.pattern_obj['id']):
|
# if self.__pc.deletePattern(self.pattern_obj['id']):
|
||||||
|
#
|
||||||
screenResult = {}
|
# screenResult = {}
|
||||||
screenResult['show_id'] = self.show_obj['id']
|
# screenResult['show_id'] = self.show_obj['id']
|
||||||
screenResult['pattern'] = self.pattern_obj['pattern']
|
# screenResult['pattern'] = self.pattern_obj['pattern']
|
||||||
|
#
|
||||||
self.dismiss(screenResult)
|
# self.dismiss(screenResult)
|
||||||
|
#
|
||||||
else:
|
# else:
|
||||||
#TODO: Meldung
|
# #TODO: Meldung
|
||||||
self.app.pop_screen()
|
# self.app.pop_screen()
|
||||||
|
#
|
||||||
if event.button.id == "cancel_button":
|
if event.button.id == "cancel_button":
|
||||||
self.app.pop_screen()
|
self.app.pop_screen()
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class TrackDetailsScreen(Screen):
|
|||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
STREAM_TYPE_LABELS = [
|
TRACK_TYPE_LABELS = [
|
||||||
'video',
|
'video',
|
||||||
'audio',
|
'audio',
|
||||||
'subtitle'
|
'subtitle'
|
||||||
@@ -144,7 +144,7 @@ class TrackDetailsScreen(Screen):
|
|||||||
#
|
#
|
||||||
# self.subtitleStreamsTable.cursor_type = 'row'
|
# 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()
|
yield Header()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user