|
|
|
@ -26,9 +26,9 @@ class TrackDetailsScreen(Screen):
|
|
|
|
|
CSS = """
|
|
|
|
|
|
|
|
|
|
Grid {
|
|
|
|
|
grid-size: 5 18;
|
|
|
|
|
grid-rows: 2 2 2 2 2 3 2 2 2 2 2 6 2 2 6 2 2 2;
|
|
|
|
|
grid-columns: 25 25 25 25 25;
|
|
|
|
|
grid-size: 5 20;
|
|
|
|
|
grid-rows: 2 2 2 2 2 3 2 2 2 2 2 6 2 2 6 2 2 2 2 6;
|
|
|
|
|
grid-columns: 25 25 25 25 225;
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: 100%;
|
|
|
|
|
padding: 1;
|
|
|
|
@ -103,15 +103,12 @@ class TrackDetailsScreen(Screen):
|
|
|
|
|
raise click.ClickException('Sub index for track is required to be set')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def on_mount(self):
|
|
|
|
|
|
|
|
|
|
if self.pattern_obj:
|
|
|
|
|
self.query_one("#patternlabel", Static).update(str(self.pattern_obj['pattern']))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if self.subIndex is not None:
|
|
|
|
|
self.query_one("#subindexlabel", Static).update(str(self.subIndex))
|
|
|
|
|
|
|
|
|
@ -132,22 +129,6 @@ class TrackDetailsScreen(Screen):
|
|
|
|
|
self.query_one("#title_input", Input).value = str(self.track_obj['title'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# if self.show_obj:
|
|
|
|
|
# self.query_one("#showlabel", Static).update(f"{self.show_obj['id']} - {self.show_obj['name']} ({self.show_obj['year']})")
|
|
|
|
|
|
|
|
|
|
# for pattern in self.loadPatterns(int(self.show_obj['id'])):
|
|
|
|
|
# row = (pattern['pattern'],)
|
|
|
|
|
# self.patternTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# for subIndex in range(3):
|
|
|
|
|
#
|
|
|
|
|
# row4 = (str(subIndex),str(subIndex),str(subIndex),str(subIndex),)
|
|
|
|
|
# self.audioStreamsTable.add_row(*map(str, row4))
|
|
|
|
|
#
|
|
|
|
|
# row5 = (str(subIndex),str(subIndex),str(subIndex),str(subIndex),str(subIndex),)
|
|
|
|
|
# self.subtitleStreamsTable.add_row(*map(str, row5))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def compose(self):
|
|
|
|
|
|
|
|
|
@ -227,7 +208,14 @@ class TrackDetailsScreen(Screen):
|
|
|
|
|
yield Button("Save", id="save_button")
|
|
|
|
|
yield Button("Cancel", id="cancel_button")
|
|
|
|
|
|
|
|
|
|
yield Footer()
|
|
|
|
|
# 19
|
|
|
|
|
yield Static(" ", classes="five")
|
|
|
|
|
|
|
|
|
|
# 20
|
|
|
|
|
yield Static(" ", classes="five", id="messagestatic")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
yield Footer(id="footer")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def getTrackDescriptorFromInput(self):
|
|
|
|
@ -259,6 +247,30 @@ class TrackDetailsScreen(Screen):
|
|
|
|
|
trackDescriptor = self.getTrackDescriptorFromInput()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Check for multiple default/forced disposition flags
|
|
|
|
|
|
|
|
|
|
trackIdList = self.__tc.findAllTracks(self.pattern_obj['id'])[self.trackType.label()]
|
|
|
|
|
|
|
|
|
|
descriptorList = [d for d in (self.__tc.getTrackDescriptor(t) for t in trackIdList)
|
|
|
|
|
if d['type'] == self.trackType
|
|
|
|
|
and d['sub_index'] != self.subIndex]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
numDefaultTracks = [d for d in descriptorList if TrackDisposition.DEFAULT in d['disposition_list']]
|
|
|
|
|
numForcedTracks = [d for d in descriptorList if TrackDisposition.FORCED in d['disposition_list']]
|
|
|
|
|
|
|
|
|
|
doubleDefaultOrForced = ((TrackDisposition.DEFAULT in trackDescriptor['disposition_list'] and numDefaultTracks)
|
|
|
|
|
or (TrackDisposition.FORCED in trackDescriptor['disposition_list'] and numForcedTracks))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if doubleDefaultOrForced:
|
|
|
|
|
|
|
|
|
|
self.query_one("#messagestatic", Static).update("Cannot add another stream with disposition flag 'debug' or 'forced' set")
|
|
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
|
|
self.query_one("#messagestatic", Static).update(" ")
|
|
|
|
|
|
|
|
|
|
if self.track_obj['is_new']:
|
|
|
|
|
|
|
|
|
|
self.__tc.addTrack(trackDescriptor)
|
|
|
|
@ -266,7 +278,7 @@ class TrackDetailsScreen(Screen):
|
|
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
|
|
trackId = self.__tc.findTrack(self.track_obj['pattern_id'], self.track_obj['type'], self.track_obj['sub_index'])
|
|
|
|
|
trackId = self.__tc.findTrack(self.pattern_obj['id'], self.trackType, self.subIndex)
|
|
|
|
|
|
|
|
|
|
if self.__tc.updateTrack(trackId, trackDescriptor):
|
|
|
|
|
self.dismiss(trackDescriptor)
|
|
|
|
@ -277,5 +289,3 @@ class TrackDetailsScreen(Screen):
|
|
|
|
|
|
|
|
|
|
if event.button.id == "cancel_button":
|
|
|
|
|
self.app.pop_screen()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|