This commit is contained in:
Javanaut
2026-07-08 09:24:44 +02:00
parent aa864dfd4d
commit cdc01062d3
2 changed files with 11 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
import click import click
from textual.screen import Screen from textual.screen import Screen
from textual.widgets import Header, Footer, Static, Button, SelectionList, Select, DataTable, Input, Checkbox from textual.widgets import Header, Footer, Static, Button, SelectionList, Select, DataTable, Input
from textual.containers import Grid from textual.containers import Grid
from textual.widgets._data_table import CellDoesNotExist from textual.widgets._data_table import CellDoesNotExist
@@ -256,7 +256,9 @@ class TrackDetailsScreen(Screen):
self.query_one("#type_select", Select).value = self.__trackType self.query_one("#type_select", Select).value = self.__trackType
self.query_one("#audio_layout_select", Select).value = self.__audioLayout self.query_one("#audio_layout_select", Select).value = self.__audioLayout
self.query_one("#drop_checkbox", Checkbox).value = self.__dropped self.query_one("#drop_checkbox", SelectionList).add_option(
(t("Yes"), 0, self.__dropped)
)
for disposition in TrackDisposition: for disposition in TrackDisposition:
@@ -286,7 +288,7 @@ class TrackDetailsScreen(Screen):
if self.__metadataOnly: if self.__metadataOnly:
self.query_one("#type_select", Select).disabled = True self.query_one("#type_select", Select).disabled = True
self.query_one("#audio_layout_select", Select).disabled = True self.query_one("#audio_layout_select", Select).disabled = True
self.query_one("#drop_checkbox", Checkbox).disabled = True self.query_one("#drop_checkbox", SelectionList).disabled = True
def on_select_changed(self, event: Select.Changed) -> None: def on_select_changed(self, event: Select.Changed) -> None:
if event.select.id == "language_select": if event.select.id == "language_select":
@@ -349,7 +351,7 @@ class TrackDetailsScreen(Screen):
# Row 8 # Row 8
yield Static(t("Drop")) yield Static(t("Drop"))
yield Checkbox(id="drop_checkbox", classes="four") yield SelectionList[int](id="drop_checkbox", classes="four")
# Row 9 # Row 9
yield Static(" ", classes="five") yield Static(" ", classes="five")
@@ -468,7 +470,7 @@ class TrackDetailsScreen(Screen):
kwargs[TrackDescriptor.TAGS_KEY] = trackTags kwargs[TrackDescriptor.TAGS_KEY] = trackTags
kwargs[TrackDescriptor.DROPPED_KEY] = bool( kwargs[TrackDescriptor.DROPPED_KEY] = bool(
self.query_one("#drop_checkbox", Checkbox).value self.query_one("#drop_checkbox", SelectionList).selected
) )
dispositionFlags = sum( dispositionFlags = sum(

View File

@@ -126,6 +126,7 @@ class FakeStaticWidget:
class FakeSelectionListWidget: class FakeSelectionListWidget:
def __init__(self, selected): def __init__(self, selected):
self.selected = selected self.selected = selected
self.disabled = False
def add_option(self, _option): def add_option(self, _option):
return None return None
@@ -189,7 +190,7 @@ class TagTableScreenStateTests(unittest.TestCase):
widgets = { widgets = {
"#type_select": FakeValueWidget(TrackType.AUDIO), "#type_select": FakeValueWidget(TrackType.AUDIO),
"#audio_layout_select": FakeValueWidget(AudioLayout.LAYOUT_STEREO), "#audio_layout_select": FakeValueWidget(AudioLayout.LAYOUT_STEREO),
"#drop_checkbox": FakeValueWidget(True), "#drop_checkbox": FakeSelectionListWidget({0}),
"#language_select": FakeValueWidget(IsoLanguage.GERMAN), "#language_select": FakeValueWidget(IsoLanguage.GERMAN),
"#title_input": FakeInputWidget("German Audio"), "#title_input": FakeInputWidget("German Audio"),
"#dispositions_selection_list": FakeSelectionListWidget({0, 6}), "#dispositions_selection_list": FakeSelectionListWidget({0, 6}),
@@ -219,7 +220,7 @@ class TagTableScreenStateTests(unittest.TestCase):
widgets = { widgets = {
"#type_select": FakeValueWidget(TrackType.ATTACHMENT), "#type_select": FakeValueWidget(TrackType.ATTACHMENT),
"#audio_layout_select": FakeValueWidget(AudioLayout.LAYOUT_UNDEFINED), "#audio_layout_select": FakeValueWidget(AudioLayout.LAYOUT_UNDEFINED),
"#drop_checkbox": FakeValueWidget(False), "#drop_checkbox": FakeSelectionListWidget(set()),
"#language_select": FakeValueWidget(Select.NULL), "#language_select": FakeValueWidget(Select.NULL),
"#title_input": FakeInputWidget(""), "#title_input": FakeInputWidget(""),
"#dispositions_selection_list": FakeSelectionListWidget(set()), "#dispositions_selection_list": FakeSelectionListWidget(set()),
@@ -328,7 +329,7 @@ class TagTableScreenStateTests(unittest.TestCase):
"#pattern_label": FakeStaticWidget(), "#pattern_label": FakeStaticWidget(),
"#type_select": FakeValueWidget(None), "#type_select": FakeValueWidget(None),
"#audio_layout_select": FakeValueWidget(None), "#audio_layout_select": FakeValueWidget(None),
"#drop_checkbox": FakeValueWidget(False), "#drop_checkbox": FakeSelectionListWidget(set()),
"#dispositions_selection_list": FakeSelectionListWidget(set()), "#dispositions_selection_list": FakeSelectionListWidget(set()),
"#language_select": FakeValueWidget(None), "#language_select": FakeValueWidget(None),
"#title_input": FakeInputWidget(""), "#title_input": FakeInputWidget(""),