From b80c0558268f19732c44a483640f1b4ed69c8c2c Mon Sep 17 00:00:00 2001 From: Javanaut Date: Fri, 17 Apr 2026 13:17:15 +0200 Subject: [PATCH] fix table --- src/ffx/media_workflow_screen_base.py | 30 ++++++++++++++++++++--- tests/unit/test_tag_table_screen_state.py | 27 ++++++++++++++++++++ 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/src/ffx/media_workflow_screen_base.py b/src/ffx/media_workflow_screen_base.py index fb2efcd..38274d7 100644 --- a/src/ffx/media_workflow_screen_base.py +++ b/src/ffx/media_workflow_screen_base.py @@ -125,6 +125,24 @@ class MediaWorkflowScreenBase(Screen): add_auto_table_column(self.differencesTable, t(self.DIFFERENCES_COLUMN_LABEL)) self.differencesTable.cursor_type = "row" + def _track_codec_cell_value(self, trackDescriptor: TrackDescriptor) -> str: + if trackDescriptor.getType() == TrackType.ATTACHMENT: + return " " + return trackDescriptor.getFormatDescriptor().label() + + def _track_disposition_cell_value( + self, + trackDescriptor: TrackDescriptor, + disposition: TrackDisposition, + ) -> str: + if trackDescriptor.getType() == TrackType.ATTACHMENT: + return " " + return ( + t("Yes") + if disposition in trackDescriptor.getDispositionSet() + else t("No") + ) + def reloadProperties(self, reset_draft: bool = True): self._mediaFileProperties = FileProperties(self.context, self._mediaFilename) probedMediaDescriptor = self._mediaFileProperties.getMediaDescriptor() @@ -221,15 +239,21 @@ class MediaWorkflowScreenBase(Screen): trackDescriptor.getIndex(), t(trackType.label()), typeCounter[trackType], - trackDescriptor.getFormatDescriptor().label(), + self._track_codec_cell_value(trackDescriptor), t(audioLayout.label()) if trackType == TrackType.AUDIO and audioLayout != AudioLayout.LAYOUT_UNDEFINED else " ", trackDescriptor.getLanguage().label(), trackTitle, - t("Yes") if TrackDisposition.DEFAULT in dispositionSet else t("No"), - t("Yes") if TrackDisposition.FORCED in dispositionSet else t("No"), + self._track_disposition_cell_value( + trackDescriptor, + TrackDisposition.DEFAULT, + ), + self._track_disposition_cell_value( + trackDescriptor, + TrackDisposition.FORCED, + ), ) row_key = self.tracksTable.add_row(*map(str, row)) diff --git a/tests/unit/test_tag_table_screen_state.py b/tests/unit/test_tag_table_screen_state.py index d00ab3e..a7c8660 100644 --- a/tests/unit/test_tag_table_screen_state.py +++ b/tests/unit/test_tag_table_screen_state.py @@ -722,6 +722,33 @@ class TagTableScreenStateTests(unittest.TestCase): self.assertIn("English Full", screen.tracksTable.rows["row-0"]) self.assertIs(target_track, screen.getSelectedTrackDescriptor()) + def test_inspect_details_screen_update_tracks_blanks_irrelevant_attachment_fields(self): + attachment_track = TrackDescriptor( + index=4, + source_index=4, + sub_index=0, + track_type=TrackType.ATTACHMENT, + attachment_format=AttachmentFormat.TTF, + tags={"filename": "font.ttf", "mimetype": "font/ttf"}, + ) + + screen = object.__new__(InspectDetailsScreen) + screen.tracksTable = FakeTagTable() + screen._sourceMediaDescriptor = FakeMediaDescriptor([attachment_track]) + screen._targetMediaDescriptor = None + screen._currentPattern = None + screen._trackRowData = {} + screen._applyNormalization = False + + screen.updateTracks() + + row = screen.tracksTable.rows["row-0"] + + self.assertEqual("4", row[0]) + self.assertEqual(" ", row[3]) + self.assertEqual(" ", row[7]) + self.assertEqual(" ", row[8]) + def test_inspect_details_screen_maps_target_selection_back_to_source_track(self): source_track = TrackDescriptor( index=3,