Skip to content

Commit a19111d

Browse files
Merge pull request #488 from NeoCoderMatrix86/463-track-table-controls-not-displayed-in-one-single-line
Track table controls not displayed in one single line
2 parents 2611f17 + 3c01bc3 commit a19111d

4 files changed

Lines changed: 95 additions & 39 deletions

File tree

AudioCuesheetEditor.End2EndTests/Tests/Desktop/BasicTest.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,27 @@ public async Task ChangeLanguage_ShouldShowGermanHeadings_WhenGermanIsSelected()
5656
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Titel" })).ToBeVisibleAsync();
5757
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Wiedergabe" })).ToBeVisibleAsync();
5858
}
59+
60+
[TestMethod]
61+
public async Task TrackTableControls_ShouldBeEnabled_WhenSelectingFirstTrackAsync()
62+
{
63+
var bar = new AppBar(TestPage);
64+
var detailView = new DetailView(TestPage, DeviceName != null);
65+
await detailView.GotoAsync();
66+
await detailView.AddTrackAsync();
67+
await detailView.AddTrackAsync();
68+
await detailView.SelectTracksAsync([1]);
69+
await bar.ChangeLanguageAsync("German (Germany)");
70+
await Expect(TestPage.GetByLabel("Track table controls")).ToMatchAriaSnapshotAsync(@"- group:
71+
- button ""Neuen Titel hinzufügen""
72+
- button ""Ausgewählte Titel bearbeiten""
73+
- button ""Copy selected tracks"": Ausgewählten Titel kopieren
74+
- button ""Ausgewählte Titel löschen""
75+
- button ""Alle Titel löschen""
76+
- group:
77+
- button ""Ausgewählte Titel nach oben bewegen"" [disabled]
78+
- button ""Ausgewählte Titel nach unten bewegen""
79+
- button ""Fester Tabellenkopf""");
80+
}
5981
}
6082
}

AudioCuesheetEditor.End2EndTests/Tests/Smartphone/BasicTestSmartphone.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,24 @@ public async Task ChangeLanguage_ShouldShowGermanHeadings_WhenGermanIsSelected()
5858
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Titel" })).ToBeVisibleAsync();
5959
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Wiedergabe" })).ToBeVisibleAsync();
6060
}
61+
62+
[TestMethod]
63+
public async Task TrackTableControls_ShouldBeEnabled_WhenSelectingFirstTrackAsync()
64+
{
65+
var bar = new AppBar(TestPage);
66+
var detailView = new DetailView(TestPage, DeviceName != null);
67+
await detailView.GotoAsync();
68+
await detailView.AddTrackAsync();
69+
await detailView.AddTrackAsync();
70+
await detailView.SelectTracksAsync([1]);
71+
await bar.ChangeLanguageAsync("German (Germany)");
72+
await Expect(TestPage.GetByLabel("Track table controls")).ToMatchAriaSnapshotAsync(@"- group:
73+
- button ""Neuen Titel hinzufügen""
74+
- button ""Ausgewählte Titel bearbeiten""
75+
- button
76+
- button ""Alle Titel löschen""
77+
- button
78+
- button ""Fester Tabellenkopf""");
79+
}
6180
}
6281
}

AudioCuesheetEditor/Shared/TrackList/TrackList.razor

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,15 @@ along with Foobar. If not, see
4343
}
4444
</MudAlert>
4545
}
46-
<TrackListControlButtons AddButtonClicked="AddTrackClicked" EditSelectedTracksClicked="EditSelectedTracksClicked" EditSelectedTracksDisabled="selectedTracks.Count == 0"
47-
DeleteSelectedTracksClicked="DeleteSelectedTracksClicked" DeleteSelectedTracksDisabled="selectedTracks.Count == 0"
48-
DeleteAllTracksClicked="OnDeleteAllTracksClicked" DeleteAllTracksDisabled="Cuesheet?.Tracks.Any() == false"
49-
MoveTracksUpDisabled="!(Cuesheet?.MoveTracksPossible(selectedTracks, MoveDirection.Up) == true)" MoveTracksUpClicked="() => Cuesheet?.MoveTracks(selectedTracks, MoveDirection.Up)"
50-
MoveTracksDownDisabled="!(Cuesheet?.MoveTracksPossible(selectedTracks, MoveDirection.Down) == true)" MoveTracksDownClicked="() => Cuesheet?.MoveTracks(selectedTracks, MoveDirection.Down)"
51-
CopySelectedTracksDisabled="selectedTracks.Count != 1" CopySelectedTracksClicked="() => CopyTrackClicked()"
52-
FixedHeader="applicationOptions?.FixedTracksTableHeader == true" FixedHeaderClicked="() => _localStorageOptionsProvider.SaveOptionsValueAsync<ApplicationOptions>(x => x.FixedTracksTableHeader, !applicationOptions?.FixedTracksTableHeader)" />
46+
<div aria-label="@_localizer["Track table controls"]">
47+
<TrackListControlButtons AddButtonClicked="AddTrackClicked" EditSelectedTracksClicked="EditSelectedTracksClicked" EditSelectedTracksDisabled="selectedTracks.Count == 0"
48+
DeleteSelectedTracksClicked="DeleteSelectedTracksClicked" DeleteSelectedTracksDisabled="selectedTracks.Count == 0"
49+
DeleteAllTracksClicked="OnDeleteAllTracksClicked" DeleteAllTracksDisabled="Cuesheet?.Tracks.Any() == false"
50+
MoveTracksUpDisabled="!(Cuesheet?.MoveTracksPossible(selectedTracks, MoveDirection.Up) == true)" MoveTracksUpClicked="() => Cuesheet?.MoveTracks(selectedTracks, MoveDirection.Up)"
51+
MoveTracksDownDisabled="!(Cuesheet?.MoveTracksPossible(selectedTracks, MoveDirection.Down) == true)" MoveTracksDownClicked="() => Cuesheet?.MoveTracks(selectedTracks, MoveDirection.Down)"
52+
CopySelectedTracksDisabled="selectedTracks.Count != 1" CopySelectedTracksClicked="() => CopyTrackClicked()"
53+
FixedHeader="applicationOptions?.FixedTracksTableHeader == true" FixedHeaderClicked="() => _localStorageOptionsProvider.SaveOptionsValueAsync<ApplicationOptions>(x => x.FixedTracksTableHeader, !applicationOptions?.FixedTracksTableHeader)" />
54+
</div>
5355
break;
5456
}
5557

AudioCuesheetEditor/Shared/TrackList/TrackListControlButtons.razor

Lines changed: 45 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -23,46 +23,59 @@ along with Foobar. If not, see
2323
<MudIconButton Color="Color.Primary" Variant="Variant.Filled" OnClick="AddButtonClicked" Icon="@Icons.Material.Outlined.Add" aria-label="@_localizer["Add new track"]" />
2424
</MudTooltip>
2525
<MudTooltip Text="@_localizer["Edit selected tracks"]">
26-
<MudHidden Breakpoint="Breakpoint.MdAndUp" Invert>
27-
<MudButton Color="Color.Secondary" Variant="Variant.Filled" OnClick="EditSelectedTracksClicked" StartIcon="@Icons.Material.Outlined.Edit" Disabled="EditSelectedTracksDisabled" aria-label="@_localizer["Edit selected tracks"]">@_localizer["Edit selected tracks"]</MudButton>
28-
</MudHidden>
29-
<MudHidden Breakpoint="Breakpoint.MdAndUp">
30-
<MudIconButton Color="Color.Secondary" Variant="Variant.Filled" OnClick="EditSelectedTracksClicked" Icon="@Icons.Material.Outlined.Edit" Disabled="EditSelectedTracksDisabled" aria-label="@_localizer["Edit selected tracks"]" />
31-
</MudHidden>
32-
</MudTooltip>
33-
<MudTooltip Text="@_localizer["Copy selected tracks"]">
34-
<MudHidden Breakpoint="Breakpoint.LgAndUp" Invert>
35-
<MudButton Color="Color.Tertiary" Variant="Variant.Filled" OnClick="CopySelectedTracksClicked" StartIcon="@Icons.Material.Outlined.CopyAll" Disabled="CopySelectedTracksDisabled" aria-label="@_localizer["Copy selected tracks"]">@_localizer["Copy selected track"]</MudButton>
36-
</MudHidden>
37-
<MudHidden Breakpoint="Breakpoint.LgAndUp">
38-
<MudIconButton Color="Color.Tertiary" Variant="Variant.Filled" OnClick="CopySelectedTracksClicked" Icon="@Icons.Material.Outlined.CopyAll" Disabled="CopySelectedTracksDisabled" aria-label="@_localizer["Copy selected tracks"]" />
39-
</MudHidden>
40-
</MudTooltip>
41-
<MudTooltip Text="@_localizer["Delete selected tracks"]">
42-
<MudHidden Breakpoint="Breakpoint.LgAndUp" Invert>
43-
<MudButton Color="Color.Warning" Variant="Variant.Filled" OnClick="DeleteSelectedTracksClicked" StartIcon="@Icons.Material.Outlined.Delete" Disabled="DeleteSelectedTracksDisabled" aria-label="@_localizer["Delete selected tracks"]">@_localizer["Delete selected tracks"]</MudButton>
44-
</MudHidden>
45-
<MudHidden Breakpoint="Breakpoint.LgAndUp">
46-
<MudIconButton Color="Color.Warning" Variant="Variant.Filled" OnClick="DeleteSelectedTracksClicked" Icon="@Icons.Material.Outlined.Delete" Disabled="DeleteSelectedTracksDisabled" aria-label="@_localizer["Delete selected tracks"]" />
47-
</MudHidden>
26+
<MudIconButton Color="Color.Secondary" Variant="Variant.Filled" OnClick="EditSelectedTracksClicked" Icon="@Icons.Material.Outlined.Edit" Disabled="EditSelectedTracksDisabled" aria-label="@_localizer["Edit selected tracks"]" />
4827
</MudTooltip>
28+
<MudHidden Breakpoint="Breakpoint.Xs">
29+
<MudTooltip Text="@_localizer["Copy selected tracks"]">
30+
<MudHidden Breakpoint="Breakpoint.LgAndUp" Invert>
31+
<MudButton Color="Color.Tertiary" Variant="Variant.Filled" OnClick="CopySelectedTracksClicked" StartIcon="@Icons.Material.Outlined.CopyAll" Disabled="CopySelectedTracksDisabled" aria-label="@_localizer["Copy selected tracks"]">@_localizer["Copy selected track"]</MudButton>
32+
</MudHidden>
33+
<MudHidden Breakpoint="Breakpoint.LgAndUp">
34+
<MudIconButton Color="Color.Tertiary" Variant="Variant.Filled" OnClick="CopySelectedTracksClicked" Icon="@Icons.Material.Outlined.CopyAll" Disabled="CopySelectedTracksDisabled" aria-label="@_localizer["Copy selected tracks"]" />
35+
</MudHidden>
36+
</MudTooltip>
37+
<MudTooltip Text="@_localizer["Delete selected tracks"]">
38+
<MudHidden Breakpoint="Breakpoint.MdAndUp" Invert>
39+
<MudButton Color="Color.Warning" Variant="Variant.Filled" OnClick="DeleteSelectedTracksClicked" StartIcon="@Icons.Material.Outlined.Delete" Disabled="DeleteSelectedTracksDisabled" aria-label="@_localizer["Delete selected tracks"]">@_localizer["Delete selected tracks"]</MudButton>
40+
</MudHidden>
41+
<MudHidden Breakpoint="Breakpoint.MdAndUp">
42+
<MudIconButton Color="Color.Warning" Variant="Variant.Filled" OnClick="DeleteSelectedTracksClicked" Icon="@Icons.Material.Outlined.Delete" Disabled="DeleteSelectedTracksDisabled" aria-label="@_localizer["Delete selected tracks"]" />
43+
</MudHidden>
44+
</MudTooltip>
45+
</MudHidden>
46+
<MudHidden Breakpoint="Breakpoint.Xs" Invert>
47+
<MudMenu Color="Color.Tertiary" Variant="Variant.Filled" Icon="@Icons.Material.Filled.ArrowDropDown" Disabled="CopySelectedTracksDisabled && DeleteSelectedTracksDisabled">
48+
<MudMenuItem IconColor="Color.Tertiary" OnClick="CopySelectedTracksClicked" Icon="@Icons.Material.Outlined.CopyAll" Disabled="CopySelectedTracksDisabled" aria-label="@_localizer["Copy selected tracks"]">@_localizer["Copy selected tracks"]</MudMenuItem>
49+
<MudMenuItem IconColor="Color.Warning" OnClick="DeleteSelectedTracksClicked" Icon="@Icons.Material.Outlined.Delete" Disabled="DeleteSelectedTracksDisabled" aria-label="@_localizer["Delete selected tracks"]">@_localizer["Delete selected tracks"]</MudMenuItem>
50+
</MudMenu>
51+
</MudHidden>
4952
<MudTooltip Text="@_localizer["Delete all tracks"]">
50-
<MudHidden Breakpoint="Breakpoint.LgAndUp" Invert>
53+
<MudHidden Breakpoint="Breakpoint.MdAndUp" Invert>
5154
<MudButton Color="Color.Error" Variant="Variant.Filled" OnClick="DeleteAllTracksClicked" StartIcon="@Icons.Material.Outlined.DeleteForever" Disabled="DeleteAllTracksDisabled" aria-label="@_localizer["Delete all tracks"]">@_localizer["Delete all tracks"]</MudButton>
5255
</MudHidden>
53-
<MudHidden Breakpoint="Breakpoint.LgAndUp">
56+
<MudHidden Breakpoint="Breakpoint.MdAndUp">
5457
<MudIconButton Color="Color.Error" Variant="Variant.Filled" OnClick="DeleteAllTracksClicked" Icon="@Icons.Material.Outlined.DeleteForever" Disabled="DeleteAllTracksDisabled" aria-label="@_localizer["Delete all tracks"]" />
5558
</MudHidden>
5659
</MudTooltip>
60+
<MudHidden Breakpoint="Breakpoint.Xs" Invert>
61+
<MudMenu Color="Color.Tertiary" Variant="Variant.Filled" Icon="@Icons.Material.Filled.ArrowDropDown" Disabled="MoveTracksUpDisabled && MoveTracksDownDisabled">
62+
<MudMenuItem OnClick="MoveTracksUpClicked" Icon="@Icons.Material.Outlined.MoveUp" Disabled="MoveTracksUpDisabled" aria-label="@_localizer["Move selected tracks up"]">@_localizer["Move selected tracks up"]</MudMenuItem>
63+
<MudMenuItem OnClick="MoveTracksDownClicked" Icon="@Icons.Material.Outlined.MoveDown" Disabled="MoveTracksDownDisabled" aria-label="@_localizer["Move selected tracks down"]">@_localizer["Move selected tracks down"]</MudMenuItem>
64+
</MudMenu>
65+
</MudHidden>
5766
</MudButtonGroup>
58-
<MudButtonGroup OverrideStyles="false">
59-
<MudTooltip Text="@_localizer["Move selected tracks up"]">
60-
<MudIconButton Color="Color.Tertiary" Variant="Variant.Filled" OnClick="MoveTracksUpClicked" Icon="@Icons.Material.Outlined.MoveUp" Disabled="MoveTracksUpDisabled" aria-label="@_localizer["Move selected tracks up"]" />
61-
</MudTooltip>
62-
<MudTooltip Text="@_localizer["Move selected tracks down"]">
63-
<MudIconButton Color="Color.Tertiary" Variant="Variant.Filled" OnClick="MoveTracksDownClicked" Icon="@Icons.Material.Outlined.MoveDown" Disabled="MoveTracksDownDisabled" aria-label="@_localizer["Move selected tracks down"]" />
64-
</MudTooltip>
65-
</MudButtonGroup>
67+
68+
<MudHidden Breakpoint="Breakpoint.Xs">
69+
<MudButtonGroup OverrideStyles="false">
70+
<MudTooltip Text="@_localizer["Move selected tracks up"]">
71+
<MudIconButton Color="Color.Tertiary" Variant="Variant.Filled" OnClick="MoveTracksUpClicked" Icon="@Icons.Material.Outlined.MoveUp" Disabled="MoveTracksUpDisabled" aria-label="@_localizer["Move selected tracks up"]" />
72+
</MudTooltip>
73+
<MudTooltip Text="@_localizer["Move selected tracks down"]">
74+
<MudIconButton Color="Color.Tertiary" Variant="Variant.Filled" OnClick="MoveTracksDownClicked" Icon="@Icons.Material.Outlined.MoveDown" Disabled="MoveTracksDownDisabled" aria-label="@_localizer["Move selected tracks down"]" />
75+
</MudTooltip>
76+
</MudButtonGroup>
77+
</MudHidden>
78+
6679
<MudTooltip Text="@_localizer["Fixed table header"]">
6780
<MudToggleIconButton Variant="Variant.Filled" Toggled="FixedHeader" ToggledChanged="FixedHeaderClicked" Icon="@Icons.Material.Outlined.Link" ToggledIcon="@Icons.Material.Outlined.LinkOff" aria-label="@_localizer["Fixed table header"]" />
6881
</MudTooltip>

0 commit comments

Comments
 (0)