rework descriptors raw
This commit is contained in:
@@ -11,6 +11,7 @@ from ffx.iso_language import IsoLanguage
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
|
||||
import click
|
||||
|
||||
class Track(Base):
|
||||
"""
|
||||
@@ -145,26 +146,6 @@ class Track(Base):
|
||||
return None
|
||||
|
||||
|
||||
# def getDescriptor(self):
|
||||
#
|
||||
# descriptor = {}
|
||||
# descriptor['id'] = int(self.id)
|
||||
# descriptor['pattern_id'] = int(self.pattern_id)
|
||||
# descriptor['type'] = TrackType(self.track_type)
|
||||
# descriptor['sub_index'] = int(self.sub_index)
|
||||
#
|
||||
# descriptor['language'] = IsoLanguage.findThreeLetter(self.language)
|
||||
# descriptor['title'] = str(self.title)
|
||||
#
|
||||
# descriptor['disposition_list'] = TrackDisposition.toList(self.disposition_flags)
|
||||
#
|
||||
# descriptor['tags'] = {}
|
||||
# for t in self.track_tags:
|
||||
# descriptor['tags'][str(t.key)] = str(t.value)
|
||||
#
|
||||
# return descriptor
|
||||
|
||||
|
||||
def getId(self):
|
||||
return int(self.id)
|
||||
|
||||
@@ -172,7 +153,7 @@ class Track(Base):
|
||||
return int(self.pattern_id)
|
||||
|
||||
def getType(self):
|
||||
return TrackType(self.track_type)
|
||||
return TrackType.fromIndex(self.track_type)
|
||||
|
||||
def getSubIndex(self):
|
||||
return int(self.sub_index)
|
||||
@@ -189,4 +170,4 @@ class Track(Base):
|
||||
return TrackDisposition.toSet(self.disposition_flags)
|
||||
|
||||
def getTags(self):
|
||||
return {str(k.value):str(v.value) for (k,v) in self.track_tags}
|
||||
return {str(t.key):str(t.value) for t in self.track_tags}
|
||||
|
||||
@@ -79,7 +79,10 @@ class PatternController():
|
||||
s.close()
|
||||
|
||||
|
||||
def getPattern(self, patternId):
|
||||
def getPattern(self, patternId : int):
|
||||
|
||||
if type(patternId) is not int:
|
||||
raise ValueError(f"PatternController.getPattern(): Argument patternId is required to be of type int")
|
||||
|
||||
try:
|
||||
s = self.Session()
|
||||
|
||||
@@ -19,6 +19,7 @@ from .track_delete_screen import TrackDeleteScreen
|
||||
from ffx.track_type import TrackType
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
|
||||
from textual.widgets._data_table import CellDoesNotExist
|
||||
|
||||
@@ -79,7 +80,7 @@ class PatternDetailsScreen(Screen):
|
||||
self.__sc = ShowController(context = self.context)
|
||||
self.__tc = TrackController(context = self.context)
|
||||
|
||||
self.__pattern = self.__pc.getPattern(patternId)
|
||||
self.__pattern = self.__pc.getPattern(patternId) if patternId is not None else None
|
||||
|
||||
self.show_obj = self.__sc.getShowDesciptor(showId) if showId is not None else {}
|
||||
|
||||
@@ -107,39 +108,43 @@ class PatternDetailsScreen(Screen):
|
||||
|
||||
self.audioStreamsTable.clear()
|
||||
|
||||
audioTracks = self.__tc.findAudioTracks(self.__pattern.getId())
|
||||
if self.__pattern is not None:
|
||||
|
||||
for at in audioTracks:
|
||||
audioTracks = self.__tc.findAudioTracks(self.__pattern.getId())
|
||||
|
||||
dispoSet = at.getDispositionSet()
|
||||
for at in audioTracks:
|
||||
|
||||
row = (at.getSubIndex(),
|
||||
" ",
|
||||
at.getLanguage().label(),
|
||||
at.getTitle(),
|
||||
'Yes' if TrackDisposition.DEFAULT in dispoSet else 'No',
|
||||
'Yes' if TrackDisposition.FORCED in dispoSet else 'No')
|
||||
dispoSet = at.getDispositionSet()
|
||||
|
||||
self.audioStreamsTable.add_row(*map(str, row))
|
||||
row = (at.getSubIndex(),
|
||||
" ",
|
||||
at.getLanguage().label(),
|
||||
at.getTitle(),
|
||||
'Yes' if TrackDisposition.DEFAULT in dispoSet else 'No',
|
||||
'Yes' if TrackDisposition.FORCED in dispoSet else 'No')
|
||||
|
||||
self.audioStreamsTable.add_row(*map(str, row))
|
||||
|
||||
def updateSubtitleTracks(self):
|
||||
|
||||
self.subtitleStreamsTable.clear()
|
||||
|
||||
subtitleTracks = self.__tc.findSubtitleTracks(self.__pattern.getId())
|
||||
if self.__pattern is not None:
|
||||
|
||||
for st in subtitleTracks:
|
||||
subtitleTracks = self.__tc.findSubtitleTracks(self.__pattern.getId())
|
||||
|
||||
dispoSet = st.getDispositionSet()
|
||||
for st in subtitleTracks:
|
||||
|
||||
row = (st.getSubIndex(),
|
||||
" ",
|
||||
st.getLanguage().label(),
|
||||
st.getTitle(),
|
||||
'Yes' if TrackDisposition.DEFAULT in dispoSet else 'No',
|
||||
'Yes' if TrackDisposition.FORCED in dispoSet else 'No')
|
||||
dispoSet = st.getDispositionSet()
|
||||
|
||||
self.subtitleStreamsTable.add_row(*map(str, row))
|
||||
row = (st.getSubIndex(),
|
||||
" ",
|
||||
st.getLanguage().label(),
|
||||
st.getTitle(),
|
||||
'Yes' if TrackDisposition.DEFAULT in dispoSet else 'No',
|
||||
'Yes' if TrackDisposition.FORCED in dispoSet else 'No')
|
||||
|
||||
self.subtitleStreamsTable.add_row(*map(str, row))
|
||||
|
||||
|
||||
def on_mount(self):
|
||||
@@ -249,7 +254,7 @@ class PatternDetailsScreen(Screen):
|
||||
|
||||
|
||||
|
||||
def getSelectedAudioTrack(self):
|
||||
def getSelectedAudioTrackDescriptor(self):
|
||||
|
||||
if not self.__pattern:
|
||||
return None
|
||||
@@ -265,7 +270,18 @@ class PatternDetailsScreen(Screen):
|
||||
|
||||
subIndex = int(selected_track_data[0])
|
||||
|
||||
return self.__tc.findTrack(self.__pattern.getId(), TrackType.AUDIO, subIndex)
|
||||
audioTrack = self.__tc.findTrack(self.__pattern.getId(), TrackType.AUDIO, subIndex)
|
||||
|
||||
kwargs = {}
|
||||
|
||||
kwargs[TrackDescriptor.PATTERN_ID_KEY] = self.__pattern.getId()
|
||||
kwargs[TrackDescriptor.SUB_INDEX_KEY] = subIndex
|
||||
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.AUDIO
|
||||
kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = audioTrack.getDispositionSet()
|
||||
kwargs[TrackDescriptor.TAGS_KEY] = audioTrack.getTags()
|
||||
|
||||
return TrackDescriptor(**kwargs)
|
||||
|
||||
else:
|
||||
return None
|
||||
@@ -274,7 +290,7 @@ class PatternDetailsScreen(Screen):
|
||||
return None
|
||||
|
||||
|
||||
def getSelectedSubtitleTrack(self):
|
||||
def getSelectedSubtitleTrackDescriptor(self):
|
||||
|
||||
if not self.__pattern is None:
|
||||
return None
|
||||
@@ -290,7 +306,18 @@ class PatternDetailsScreen(Screen):
|
||||
|
||||
subIndex = int(selected_track_data[0])
|
||||
|
||||
return self.__tc.findTrack(self.__pattern.getId(), TrackType.SUBTITLE, subIndex)
|
||||
subtitleTrack = self.__tc.findTrack(self.__pattern.getId(), TrackType.SUBTITLE, subIndex)
|
||||
|
||||
kwargs = {}
|
||||
|
||||
kwargs[TrackDescriptor.PATTERN_ID_KEY] = self.__pattern.getId()
|
||||
kwargs[TrackDescriptor.SUB_INDEX_KEY] = subIndex
|
||||
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.SUBTITLE
|
||||
kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = subtitleTrack.getDispositionSet()
|
||||
kwargs[TrackDescriptor.TAGS_KEY] = subtitleTrack.getTags()
|
||||
|
||||
return TrackDescriptor(**kwargs)
|
||||
|
||||
else:
|
||||
return None
|
||||
@@ -333,27 +360,26 @@ class PatternDetailsScreen(Screen):
|
||||
# Save pattern when just created before adding streams
|
||||
if self.__pattern is not None:
|
||||
|
||||
#self.pattern_obj
|
||||
|
||||
if event.button.id == "button_add_audio_stream":
|
||||
self.app.push_screen(TrackDetailsScreen(trackType = TrackType.AUDIO, patternId = self.__pattern.getId(), subIndex = len(self.audioStreamsTable.rows)), self.handle_add_track)
|
||||
|
||||
selectedAudioTrack = self.getSelectedAudioTrack()
|
||||
selectedAudioTrack = self.getSelectedAudioTrackDescriptor()
|
||||
if selectedAudioTrack is not None:
|
||||
if event.button.id == "button_edit_audio_stream":
|
||||
self.app.push_screen(TrackDetailsScreen(track = selectedAudioTrack), self.handle_edit_track)
|
||||
|
||||
self.app.push_screen(TrackDetailsScreen(trackDescriptor = selectedAudioTrack), self.handle_edit_track)
|
||||
if event.button.id == "button_delete_audio_stream":
|
||||
self.app.push_screen(TrackDeleteScreen(trackI= selectedAudioTrack), self.handle_delete_track)
|
||||
self.app.push_screen(TrackDeleteScreen(trackDescriptor = selectedAudioTrack), self.handle_delete_track)
|
||||
|
||||
if event.button.id == "button_add_subtitle_stream":
|
||||
self.app.push_screen(TrackDetailsScreen(trackType = TrackType.SUBTITLE, patternId = self.__pattern.getId(), subIndex = len(self.subtitleStreamsTable.rows)), self.handle_add_track)
|
||||
|
||||
selectedSubtitleTrack = self.getSelectedSubtitleTrack()
|
||||
selectedSubtitleTrack = self.getSelectedSubtitleTrackDescriptor()
|
||||
if selectedSubtitleTrack is not None:
|
||||
if event.button.id == "button_edit_subtitle_stream":
|
||||
self.app.push_screen(TrackDetailsScreen(track = selectedSubtitleTrack), self.handle_edit_track)
|
||||
self.app.push_screen(TrackDetailsScreen(trackDescriptor = selectedSubtitleTrack), self.handle_edit_track)
|
||||
if event.button.id == "button_delete_subtitle_stream":
|
||||
self.app.push_screen(TrackDeleteScreen(track = selectedSubtitleTrack), self.handle_delete_track)
|
||||
self.app.push_screen(TrackDeleteScreen(trackDescriptor = selectedSubtitleTrack), self.handle_delete_track)
|
||||
|
||||
if event.button.id == "patternbutton":
|
||||
|
||||
@@ -398,38 +424,38 @@ class PatternDetailsScreen(Screen):
|
||||
self.subtitleStreamsTable.add_row(*map(str, row))
|
||||
|
||||
|
||||
def handle_edit_track(self, trackDescriptor):
|
||||
def handle_edit_track(self, trackDescriptor : TrackDescriptor):
|
||||
|
||||
try:
|
||||
if trackDescriptor['type'] == TrackType.AUDIO:
|
||||
if trackDescriptor.getType() == TrackType.AUDIO:
|
||||
|
||||
row_key, col_key = self.audioStreamsTable.coordinate_to_cell_key(self.audioStreamsTable.cursor_coordinate)
|
||||
|
||||
self.audioStreamsTable.update_cell(row_key, self.column_key_audio_language, trackDescriptor['language'].label())
|
||||
self.audioStreamsTable.update_cell(row_key, self.column_key_audio_title, trackDescriptor['title'])
|
||||
self.audioStreamsTable.update_cell(row_key, self.column_key_audio_default, 'Yes' if TrackDisposition.DEFAULT in trackDescriptor['disposition_list'] else 'No')
|
||||
self.audioStreamsTable.update_cell(row_key, self.column_key_audio_forced, 'Yes' if TrackDisposition.FORCED in trackDescriptor['disposition_list'] else 'No')
|
||||
self.audioStreamsTable.update_cell(row_key, self.column_key_audio_language, trackDescriptor.getLanguage().label())
|
||||
self.audioStreamsTable.update_cell(row_key, self.column_key_audio_title, trackDescriptor.getTitle())
|
||||
self.audioStreamsTable.update_cell(row_key, self.column_key_audio_default, 'Yes' if TrackDisposition.DEFAULT in trackDescriptor.getDispositionSet() else 'No')
|
||||
self.audioStreamsTable.update_cell(row_key, self.column_key_audio_forced, 'Yes' if TrackDisposition.FORCED in trackDescriptor.getDispositionSet() else 'No')
|
||||
|
||||
if trackDescriptor['type'] == TrackType.SUBTITLE:
|
||||
if trackDescriptor.getType() == TrackType.SUBTITLE:
|
||||
|
||||
row_key, col_key = self.subtitleStreamsTable.coordinate_to_cell_key(self.subtitleStreamsTable.cursor_coordinate)
|
||||
|
||||
self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_language, trackDescriptor['language'].label())
|
||||
self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_title, trackDescriptor['title'])
|
||||
self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_default, 'Yes' if TrackDisposition.DEFAULT in trackDescriptor['disposition_list'] else 'No')
|
||||
self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_forced, 'Yes' if TrackDisposition.FORCED in trackDescriptor['disposition_list'] else 'No')
|
||||
self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_language, trackDescriptor.getLanguage().label())
|
||||
self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_title, trackDescriptor.getTitle())
|
||||
self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_default, 'Yes' if TrackDisposition.DEFAULT in trackDescriptor.getDispositionSet() else 'No')
|
||||
self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_forced, 'Yes' if TrackDisposition.FORCED in trackDescriptor.getDispositionSet() else 'No')
|
||||
|
||||
except CellDoesNotExist:
|
||||
pass
|
||||
|
||||
|
||||
def handle_delete_track(self, trackDescriptor):
|
||||
def handle_delete_track(self, trackDescriptor : TrackDescriptor):
|
||||
|
||||
try:
|
||||
if trackDescriptor['type'] == TrackType.AUDIO:
|
||||
if trackDescriptor.getType() == TrackType.AUDIO:
|
||||
self.updateAudioTracks()
|
||||
|
||||
if trackDescriptor['type'] == TrackType.SUBTITLE:
|
||||
if trackDescriptor.getType() == TrackType.SUBTITLE:
|
||||
self.updateSubtitleTracks()
|
||||
|
||||
except CellDoesNotExist:
|
||||
|
||||
@@ -126,11 +126,11 @@ class TrackController():
|
||||
s.close()
|
||||
|
||||
|
||||
def findTrack(self, patternId, trackType : TrackType, subIndex):
|
||||
def findTrack(self, patternId : int, trackType : TrackType, subIndex : int):
|
||||
|
||||
try:
|
||||
s = self.Session()
|
||||
q = s.query(Track).filter(Track.pattern_id == int(patternId), Track.track_type == trackType.value, Track.sub_index == int(subIndex))
|
||||
q = s.query(Track).filter(Track.pattern_id == int(patternId), Track.track_type == trackType.index(), Track.sub_index == int(subIndex))
|
||||
|
||||
if q.count():
|
||||
#track = q.first()
|
||||
@@ -144,26 +144,6 @@ class TrackController():
|
||||
finally:
|
||||
s.close()
|
||||
|
||||
|
||||
# def getTrackDescriptor(self, trackId):
|
||||
#
|
||||
# try:
|
||||
# s = self.Session()
|
||||
# q = s.query(Track).filter(Track.id == int(trackId))
|
||||
#
|
||||
# if q.count():
|
||||
# track = q.first()
|
||||
# #return self.getTrackDict(track)
|
||||
# return track.getDescriptor()
|
||||
# else:
|
||||
# return {}
|
||||
#
|
||||
# except Exception as ex:
|
||||
# raise click.ClickException(f"TrackController.getTrackDescriptor(): {repr(ex)}")
|
||||
# finally:
|
||||
# s.close()
|
||||
|
||||
|
||||
def deleteTrack(self, trackId):
|
||||
try:
|
||||
s = self.Session()
|
||||
@@ -171,15 +151,15 @@ class TrackController():
|
||||
|
||||
if q.count():
|
||||
|
||||
trackDescriptor = self.getTrackDict(q.first())
|
||||
#trackDescriptor = self.getTrackDict(q.first())
|
||||
track = q.first()
|
||||
|
||||
|
||||
q_siblings = s.query(Track).filter(Track.pattern_id == int(trackDescriptor['pattern_id']), Track.track_type == trackDescriptor['type'].value).order_by(Track.sub_index)
|
||||
q_siblings = s.query(Track).filter(Track.pattern_id == track.getPatternId(), Track.track_type == track.getType().index()).order_by(Track.sub_index)
|
||||
|
||||
subIndex = 0
|
||||
for track in q_siblings.all():
|
||||
|
||||
if track.sub_index == trackDescriptor['sub_index']:
|
||||
if track.sub_index == track.getSubIndex():
|
||||
s.delete(track)
|
||||
else:
|
||||
track.sub_index = subIndex
|
||||
|
||||
@@ -7,6 +7,7 @@ from textual.widgets import Header, Footer, Placeholder, Label, ListView, ListIt
|
||||
from textual.containers import Grid, Horizontal
|
||||
|
||||
from ffx.model.pattern import Pattern
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
|
||||
# from .show_controller import ShowController
|
||||
# from .pattern_controller import PatternController
|
||||
@@ -54,26 +55,26 @@ class TrackDeleteScreen(Screen):
|
||||
}
|
||||
"""
|
||||
|
||||
def __init__(self, trackId = None):
|
||||
def __init__(self, trackDescriptor : TrackDescriptor):
|
||||
super().__init__()
|
||||
|
||||
self.context = self.app.getContext()
|
||||
self.Session = self.context['database']['session'] # convenience
|
||||
|
||||
if trackId is None:
|
||||
raise click.ClickException('TrackDeleteScreen.init(): trackId is required to be set')
|
||||
if type(trackDescriptor) is not TrackDescriptor:
|
||||
raise click.ClickException('TrackDeleteScreen.init(): trackDescriptor is required to be of type TrackDescriptor')
|
||||
|
||||
self.__tc = TrackController(context = self.context)
|
||||
|
||||
self.track_obj = self.__tc.getTrackDescriptor(trackId)
|
||||
self.__trackDescriptor = trackDescriptor
|
||||
|
||||
|
||||
def on_mount(self):
|
||||
|
||||
self.query_one("#subindexlabel", Static).update(str(self.track_obj['sub_index']))
|
||||
self.query_one("#patternlabel", Static).update(str(self.track_obj['pattern_id']))
|
||||
self.query_one("#languagelabel", Static).update(str(self.track_obj['language'].label()))
|
||||
self.query_one("#titlelabel", Static).update(str(str(self.track_obj['title'])))
|
||||
self.query_one("#subindexlabel", Static).update(str(self.__trackDescriptor.getSubIndex()))
|
||||
self.query_one("#patternlabel", Static).update(str(self.__trackDescriptor.getPatternId()))
|
||||
self.query_one("#languagelabel", Static).update(str(self.__trackDescriptor.getLanguage().label()))
|
||||
self.query_one("#titlelabel", Static).update(str(str(self.__trackDescriptor.getTitle())))
|
||||
|
||||
|
||||
def compose(self):
|
||||
@@ -83,7 +84,7 @@ class TrackDeleteScreen(Screen):
|
||||
with Grid():
|
||||
|
||||
#1
|
||||
yield Static(f"Are you sure to delete the following {self.track_obj['type'].label()} track?", id="toplabel", classes="four")
|
||||
yield Static(f"Are you sure to delete the following {self.__trackDescriptor.getType().label()} track?", id="toplabel", classes="four")
|
||||
|
||||
#2
|
||||
yield Static("sub index")
|
||||
@@ -122,12 +123,15 @@ class TrackDeleteScreen(Screen):
|
||||
|
||||
if event.button.id == "delete_button":
|
||||
|
||||
trackId = self.__tc.findTrack(self.track_obj['pattern_id'], self.track_obj['type'], self.track_obj['sub_index'])
|
||||
track = self.__tc.findTrack(self.__trackDescriptor.getPatternId(), self.__trackDescriptor.getType(), self.__trackDescriptor.getSubIndex())
|
||||
|
||||
if trackId is not None:
|
||||
if track is None:
|
||||
raise click.ClickException(f"Track is none: patternId={self.__trackDescriptor.getPatternId()} type={self.__trackDescriptor.getType()} subIndex={self.__trackDescriptor.getSubIndex()}")
|
||||
|
||||
if self.__tc.deleteTrack(trackId):
|
||||
self.dismiss(self.track_obj)
|
||||
if track is not None:
|
||||
|
||||
if self.__tc.deleteTrack(track.getId()):
|
||||
self.dismiss(self.__trackDescriptor)
|
||||
|
||||
else:
|
||||
#TODO: Meldung
|
||||
|
||||
@@ -151,7 +151,7 @@ class TrackDescriptor():
|
||||
if 'language' in self.__trackTags.keys():
|
||||
return IsoLanguage.findThreeLetter(self.__trackTags['language'])
|
||||
else:
|
||||
return IsoLanguage.UNKNOWN
|
||||
return IsoLanguage.UNDEFINED
|
||||
|
||||
def getTitle(self):
|
||||
if 'title' in self.__trackTags.keys():
|
||||
|
||||
@@ -116,27 +116,6 @@ class TrackDetailsScreen(Screen):
|
||||
self.__trackDescriptor = trackDescriptor
|
||||
self.__pattern = self.__pc.getPattern(self.__trackDescriptor.getPatternId())
|
||||
|
||||
# self.__trackDescriptor = trackDescriptor
|
||||
# self.__trackType = 0
|
||||
# self.__subIndex = 0
|
||||
# self.__patternDescriptor = 0
|
||||
|
||||
# if self.track_obj:
|
||||
# self.trackType = self.track_obj['type']
|
||||
# self.subIndex = self.track_obj['sub_index']
|
||||
# self.pattern_obj = self.__pc.getPatternDescriptor(self.track_obj['pattern_id'])
|
||||
# self.track_obj['is_new'] = False
|
||||
# else:
|
||||
# self.trackType = trackType
|
||||
# self.subIndex = subIndex
|
||||
# self.pattern_obj = self.__pc.getPatternDescriptor(patternId) if patternId is not None else {}
|
||||
# self.track_obj['is_new'] = True
|
||||
|
||||
# if self.trackType is None:
|
||||
# raise click.ClickException('Track type is required to be set')
|
||||
# if self.subIndex is None:
|
||||
# raise click.ClickException('Sub index for track is required to be set')
|
||||
|
||||
|
||||
def on_mount(self):
|
||||
|
||||
@@ -148,26 +127,20 @@ class TrackDetailsScreen(Screen):
|
||||
self.query_one("#subindexlabel", Static).update(str(self.__subIndex))
|
||||
|
||||
|
||||
|
||||
for d in TrackDisposition:
|
||||
|
||||
dispositionIsSet = (self.__trackDescriptor is not None
|
||||
and d in self.__trackDescriptor.getDispositionSet())
|
||||
|
||||
dispositionOption = (d.label(), d.index(), dispositionIsSet)
|
||||
self.query_one("#dispositions_selection_list", SelectionList).add_option(dispositionOption)
|
||||
|
||||
if self.__trackDescriptor is not None:
|
||||
|
||||
for d in TrackDisposition:
|
||||
|
||||
dispositionIsSet = (self.__trackDescriptor is not None
|
||||
and d in self.__trackDescriptor.getDispositionSet())
|
||||
|
||||
dispositionOption = (d.label(), d.index(), dispositionIsSet)
|
||||
self.query_one("#dispositions_selection_list", SelectionList).add_option(dispositionOption)
|
||||
|
||||
self.query_one("#language_select", Select).value = self.__trackDescriptor.getLanguage().label()
|
||||
self.query_one("#title_input", Input).value = self.__trackDescriptor.getTitle()
|
||||
|
||||
# if 'language' in self.track_obj.keys():
|
||||
# self.query_one("#language_select", Select).value = self.track_obj['language'].label()
|
||||
#
|
||||
# if 'title' in self.track_obj.keys():
|
||||
# self.query_one("#title_input", Input).value = str(self.track_obj['title'])
|
||||
|
||||
|
||||
|
||||
def compose(self):
|
||||
|
||||
@@ -267,7 +240,16 @@ class TrackDetailsScreen(Screen):
|
||||
kwargs[TrackDescriptor.SUB_INDEX_KEY] = self.__subIndex
|
||||
|
||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = self.__trackType
|
||||
kwargs[TrackDescriptor.TAGS_KEY] = {}
|
||||
|
||||
trackTags = {}
|
||||
language = self.query_one("#language_select", Select).value
|
||||
# raise click.ClickException(f"language={language}")
|
||||
if language:
|
||||
trackTags['language'] = IsoLanguage.find(language).threeLetter()
|
||||
title = self.query_one("#title_input", Input).value
|
||||
if title:
|
||||
trackTags['title'] = title
|
||||
kwargs[TrackDescriptor.TAGS_KEY] = trackTags
|
||||
|
||||
dispositionFlags = sum([2**f for f in self.query_one("#dispositions_selection_list", SelectionList).selected])
|
||||
kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = TrackDisposition.toSet(dispositionFlags)
|
||||
@@ -294,10 +276,6 @@ class TrackDetailsScreen(Screen):
|
||||
else:
|
||||
trackList = []
|
||||
|
||||
# descriptorList = [d for d in (self.__tc.getTrackDescriptor(t) for t in trackList)
|
||||
# if d['type'] == self.__trackType
|
||||
# and d['sub_index'] != self.__subIndex]
|
||||
|
||||
siblingTrackList = [t for t in trackList if t.getType() == self.__trackType and t.getSubIndex() != self.__subIndex]
|
||||
|
||||
numDefaultTracks = len([t for t in siblingTrackList if TrackDisposition.DEFAULT in t.getDispositionSet()])
|
||||
|
||||
Reference in New Issue
Block a user