diff --git a/bin/ffx/media_details_screen.py b/bin/ffx/media_details_screen.py index d389933..aaf663b 100644 --- a/bin/ffx/media_details_screen.py +++ b/bin/ffx/media_details_screen.py @@ -421,21 +421,18 @@ class MediaDetailsScreen(Screen): if event.button.id == "select_default_button": - selectedTrack = self.getSelectedTrackDescriptor() - self.__currentMediaDescriptor.setDefaultSubTrack(selectedTrack.getType(), selectedTrack.getSubIndex()) + selectedTrackDescriptor = self.getSelectedTrackDescriptor() + self.__currentMediaDescriptor.setDefaultSubTrack(selectedTrackDescriptor.getType(), selectedTrackDescriptor.getSubIndex()) self.updateTracks() if event.button.id == "select_forced_button": - selectedTrack = self.getSelectedTrackDescriptor(selectedTrack.getType(), selectedTrack.getSubIndex()) - self.__currentMediaDescriptor.setForcedSubTrack(selectedTrack.getType(), selectedTrack.getSubIndex()) + selectedTrackDescriptor = self.getSelectedTrackDescriptor() + self.__currentMediaDescriptor.setForcedSubTrack(selectedTrackDescriptor.getType(), selectedTrackDescriptor.getSubIndex()) self.updateTracks() def getSelectedTrackDescriptor(self): - - if not self.__pattern: - return None - + """Returns a partial track descriptor""" try: # Fetch the currently selected row when 'Enter' is pressed @@ -445,11 +442,13 @@ class MediaDetailsScreen(Screen): if row_key is not None: selected_track_data = self.tracksTable.get_row(row_key) - trackIndex = int(selected_track_data[0]) - trackSubIndex = int(selected_track_data[2]) - - return self.__tc.getTrack(self.__pattern.getId(), trackIndex).getDescriptor(subIndex=trackSubIndex) + kwargs = {} + + kwargs[TrackDescriptor.INDEX_KEY] = int(selected_track_data[0]) + kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.fromLabel(selected_track_data[1]) + kwargs[TrackDescriptor.SUB_INDEX_KEY] = int(selected_track_data[2]) + return TrackDescriptor(**kwargs) else: return None