|
|
@ -102,47 +102,60 @@ class PatternDetailsScreen(Screen):
|
|
|
|
s.close()
|
|
|
|
s.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def on_mount(self):
|
|
|
|
def updateAudioTracks(self):
|
|
|
|
|
|
|
|
|
|
|
|
if self.pattern_obj:
|
|
|
|
self.audioStreamsTable.clear()
|
|
|
|
self.query_one("#pattern_input", Input).value = str(self.pattern_obj['pattern'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if self.show_obj:
|
|
|
|
trackIds = self.__tc.findAllTracks(self.pattern_obj['id'])
|
|
|
|
self.query_one("#showlabel", Static).update(f"{self.show_obj['id']} - {self.show_obj['name']} ({self.show_obj['year']})")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for audioTrackId in trackIds['audio']:
|
|
|
|
if self.pattern_obj:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trackIds = self.__tc.findAllTracks(self.pattern_obj['id'])
|
|
|
|
ad = self.__tc.getTrackDescriptor(audioTrackId)
|
|
|
|
|
|
|
|
dispoList = ad['disposition_list']
|
|
|
|
|
|
|
|
|
|
|
|
for audioTrackId in trackIds['audio']:
|
|
|
|
row = (ad['sub_index'],
|
|
|
|
|
|
|
|
" ",
|
|
|
|
|
|
|
|
ad['language'].label(),
|
|
|
|
|
|
|
|
ad['title'],
|
|
|
|
|
|
|
|
'Yes' if TrackDisposition.DEFAULT in dispoList else 'No',
|
|
|
|
|
|
|
|
'Yes' if TrackDisposition.FORCED in dispoList else 'No')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.audioStreamsTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def updateSubtitleTracks(self):
|
|
|
|
|
|
|
|
|
|
|
|
ad = self.__tc.getTrackDescriptor(audioTrackId)
|
|
|
|
self.audioStreamsTable.clear()
|
|
|
|
dispoList = ad['disposition_list']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
row = (ad['sub_index'],
|
|
|
|
trackIds = self.__tc.findAllTracks(self.pattern_obj['id'])
|
|
|
|
" ",
|
|
|
|
|
|
|
|
ad['language'].label(),
|
|
|
|
|
|
|
|
ad['title'],
|
|
|
|
|
|
|
|
'Yes' if TrackDisposition.DEFAULT in dispoList else 'No',
|
|
|
|
|
|
|
|
'Yes' if TrackDisposition.FORCED in dispoList else 'No')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.audioStreamsTable.add_row(*map(str, row))
|
|
|
|
for audioTrackId in trackIds['audio']:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ad = self.__tc.getTrackDescriptor(audioTrackId)
|
|
|
|
|
|
|
|
dispoList = ad['disposition_list']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
row = (ad['sub_index'],
|
|
|
|
|
|
|
|
" ",
|
|
|
|
|
|
|
|
ad['language'].label(),
|
|
|
|
|
|
|
|
ad['title'],
|
|
|
|
|
|
|
|
'Yes' if TrackDisposition.DEFAULT in dispoList else 'No',
|
|
|
|
|
|
|
|
'Yes' if TrackDisposition.FORCED in dispoList else 'No')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.audioStreamsTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
|
|
for subtitleTrackId in trackIds['subtitle']:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sd = self.__tc.getTrackDescriptor(subtitleTrackId)
|
|
|
|
def on_mount(self):
|
|
|
|
dispoList = sd['disposition_list']
|
|
|
|
|
|
|
|
|
|
|
|
if self.pattern_obj:
|
|
|
|
|
|
|
|
self.query_one("#pattern_input", Input).value = str(self.pattern_obj['pattern'])
|
|
|
|
|
|
|
|
|
|
|
|
row = (sd['sub_index'],
|
|
|
|
if self.show_obj:
|
|
|
|
" ",
|
|
|
|
self.query_one("#showlabel", Static).update(f"{self.show_obj['id']} - {self.show_obj['name']} ({self.show_obj['year']})")
|
|
|
|
sd['language'].label(),
|
|
|
|
|
|
|
|
sd['title'],
|
|
|
|
|
|
|
|
'Yes' if TrackDisposition.DEFAULT in dispoList else 'No',
|
|
|
|
|
|
|
|
'Yes' if TrackDisposition.FORCED in dispoList else 'No')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.subtitleStreamsTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if self.pattern_obj:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.updateAudioTracks()
|
|
|
|
|
|
|
|
self.updateSubtitleTracks()
|
|
|
|
|
|
|
|
|
|
|
|
def compose(self):
|
|
|
|
def compose(self):
|
|
|
|
|
|
|
|
|
|
|
@ -319,15 +332,21 @@ class PatternDetailsScreen(Screen):
|
|
|
|
self.app.push_screen(TrackDetailsScreen(trackType = TrackType.AUDIO, patternId = self.pattern_obj['id'], subIndex = len(self.audioStreamsTable.rows)), self.handle_add_stream)
|
|
|
|
self.app.push_screen(TrackDetailsScreen(trackType = TrackType.AUDIO, patternId = self.pattern_obj['id'], subIndex = len(self.audioStreamsTable.rows)), 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(trackId = self.getSelectedAudioTrackId()), self.handle_edit_stream)
|
|
|
|
self.app.push_screen(TrackDetailsScreen(trackId = self.getSelectedAudioTrackId()), self.handle_edit_stream)
|
|
|
|
if event.button.id == "button_delete_audio_stream":
|
|
|
|
|
|
|
|
self.app.push_screen(TrackDeleteScreen(trackId = self.getSelectedAudioTrackId()), self.handle_delete_stream)
|
|
|
|
selectedAudioTrackId = self.getSelectedAudioTrackId()
|
|
|
|
|
|
|
|
if selectedAudioTrackId is not None:
|
|
|
|
|
|
|
|
if event.button.id == "button_delete_audio_stream":
|
|
|
|
|
|
|
|
self.app.push_screen(TrackDeleteScreen(trackId = selectedAudioTrackId), 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(trackType = TrackType.SUBTITLE, patternId = self.pattern_obj['id'], subIndex = len(self.subtitleStreamsTable.rows)), self.handle_add_stream)
|
|
|
|
self.app.push_screen(TrackDetailsScreen(trackType = TrackType.SUBTITLE, patternId = self.pattern_obj['id'], subIndex = len(self.subtitleStreamsTable.rows)), 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(trackId = self.getSelectedSubtitleTrackId()), self.handle_edit_stream)
|
|
|
|
self.app.push_screen(TrackDetailsScreen(trackId = self.getSelectedSubtitleTrackId()), self.handle_edit_stream)
|
|
|
|
if event.button.id == "button_delete_subtitle_stream":
|
|
|
|
|
|
|
|
self.app.push_screen(TrackDeleteScreen(trackId = self.getSelectedSubtitleTrackId()), self.handle_delete_stream)
|
|
|
|
selectedSubtitleTrackId = self.getSelectedSubtitleTrackId()
|
|
|
|
|
|
|
|
if selectedSubtitleTrackId is not None:
|
|
|
|
|
|
|
|
if event.button.id == "button_delete_subtitle_stream":
|
|
|
|
|
|
|
|
self.app.push_screen(TrackDeleteScreen(trackId = selectedSubtitleTrackId), self.handle_delete_stream)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def handle_add_stream(self, trackDescriptor):
|
|
|
|
def handle_add_stream(self, trackDescriptor):
|
|
|
@ -386,13 +405,10 @@ class PatternDetailsScreen(Screen):
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
if trackDescriptor['type'] == TrackType.AUDIO:
|
|
|
|
if trackDescriptor['type'] == TrackType.AUDIO:
|
|
|
|
row_key, col_key = self.audioStreamsTable.coordinate_to_cell_key(self.audioStreamsTable.cursor_coordinate)
|
|
|
|
self.updateAudioTracks()
|
|
|
|
self.audioStreamsTable.remove_row(row_key)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if trackDescriptor['type'] == TrackType.SUBTITLE:
|
|
|
|
if trackDescriptor['type'] == TrackType.SUBTITLE:
|
|
|
|
row_key, col_key = self.subtitleStreamsTable.coordinate_to_cell_key(self.subtitleStreamsTable.cursor_coordinate)
|
|
|
|
self.updateSubtitleTracks()
|
|
|
|
self.subtitleStreamsTable.remove_row(row_key)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
except CellDoesNotExist:
|
|
|
|
except CellDoesNotExist:
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|