Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 4 additions & 9 deletions AudioCuesheetEditor.End2EndTests/Models/AppBar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,11 @@
//along with Foobar. If not, see
//<http: //www.gnu.org/licenses />.
using Microsoft.Playwright;
using System.Text.RegularExpressions;

namespace AudioCuesheetEditor.End2EndTests.Models
{
partial class AppBar(IPage page)
{
[GeneratedRegex("^Open$")]
private static partial Regex OpenRegex();

private readonly IPage _page = page;
internal ILocator MenuButton => _page.GetByRole(AriaRole.Toolbar).GetByRole(AriaRole.Button, new() { Name = "More" });

Expand Down Expand Up @@ -64,14 +60,13 @@ internal async Task OpenFileAsync(string file)

internal async Task OpenFileDialogAsync()
{
await _page.GetByRole(AriaRole.Button, new() { Name = "File", Exact = true }).ClickAsync();
await _page.Locator("div").Filter(new() { HasTextRegex = OpenRegex() }).ClickAsync();
await _page.GetByRole(AriaRole.Toolbar).GetByRole(AriaRole.Button, new() { Name = "More" }).ClickAsync();
await _page.GetByRole(AriaRole.Menuitem, new() { Name = "Open file" }).ClickAsync();
}

internal async Task OpenExportDialogAsync(string exportType, string fileMenuName = "File")
internal async Task OpenExportDialogAsync(string exportType)
{
await _page.GetByRole(AriaRole.Button, new() { Name = fileMenuName, Exact = true }).ClickAsync();
await _page.GetByText("Export", new() { Exact = true }).HoverAsync();
await _page.GetByRole(AriaRole.Button, new() { Name = "Export menu" }).ClickAsync();
await _page.GetByText(exportType, new() { Exact = true }).ClickAsync();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public async Task ChangeLanguage_ShouldSwitchLanguage_WhenGermanIsSelected()
await Expect(TestPage.GetByText("Aufnahmeansicht")).ToBeVisibleAsync();
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Dateien" })).ToBeVisibleAsync();
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Wiedergabe" })).ToBeVisibleAsync();
await bar.OpenExportDialogAsync("Textdatei", "Datei");
await bar.OpenExportDialogAsync("Textdatei");
await Expect(TestPage.GetByRole(AriaRole.Dialog)).ToMatchAriaSnapshotAsync(@"- dialog ""Exportprofile Close"":
- heading ""Exportprofile"" [level=6]
- button ""Close""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public async Task ChangeLanguage_ShouldSwitchLanguage_WhenGermanIsSelected()
await Expect(TestPage.GetByText("Aufnahmeansicht")).ToBeVisibleAsync();
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Dateien" })).ToBeVisibleAsync();
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Wiedergabe" })).ToBeVisibleAsync();
await bar.OpenExportDialogAsync("Textdatei", "Datei");
await bar.OpenExportDialogAsync("Textdatei");
await Expect(TestPage.GetByRole(AriaRole.Dialog)).ToMatchAriaSnapshotAsync(@"- dialog ""Exportprofile Close"":
- heading ""Exportprofile"" [level=6]
- button ""Close""
Expand Down
7 changes: 2 additions & 5 deletions AudioCuesheetEditor/Shared/AppBar.de.resx
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,6 @@
<data name="Download cuesheet" xml:space="preserve">
<value>Cuesheet runterladen</value>
</data>
<data name="Export" xml:space="preserve">
<value>Export</value>
</data>
<data name="Export profiles" xml:space="preserve">
<value>Exportprofile</value>
</data>
Expand All @@ -153,8 +150,8 @@
<data name="Hotkeys" xml:space="preserve">
<value>Tastenkürzel</value>
</data>
<data name="Open" xml:space="preserve">
<value>Öffnen</value>
<data name="Open file" xml:space="preserve">
<value>Datei öffnen</value>
</data>
<data name="Preview environment" xml:space="preserve">
<value>Vorschauumgebung</value>
Expand Down
44 changes: 24 additions & 20 deletions AudioCuesheetEditor/Shared/AppBar.razor
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,12 @@ along with Foobar. If not, see
</MudButtonGroup>
}
<MudSpacer />
@if (DisplayFileMenu)
{
<MudFileUpload @ref="mudFileUpload" T="IBrowserFile" Accept="@String.Join(',', FileExtensions.Cuesheet, FileExtensions.Projectfile, FileExtensions.Text)" FilesChanged="FileUploaded" aria-label="Open file upload">
<CustomContent></CustomContent>
<SelectedTemplate></SelectedTemplate>
</MudFileUpload>
<MudMenu Label="@_localizer["File"]" Variant="Variant.Filled" Color="Color.Primary" StartIcon="@Icons.Material.Outlined.ImportExport">
<MudMenuItem Icon="@Icons.Material.Outlined.FileOpen" OnClick="OpenFileClicked">@_localizer["Open"]</MudMenuItem>
<MudMenu Label="@_localizer["Export"]" StartIcon="@Icons.Material.Outlined.FileDownload">
<MudMenuItem Icon="@Icons.Material.Outlined.AudioFile" OnClick="DownloadCuesheetClicked">@_localizer["Cuesheet"]</MudMenuItem>
<MudMenuItem Icon="@Icons.Material.Outlined.FileCopy" OnClick="DownloadProjectfileClicked">@_localizer["Projectfile"]</MudMenuItem>
<MudMenuItem Icon="@Icons.Material.Outlined.ImportExport" OnClick="DownloadExportClicked">@_localizer["Textfile"]</MudMenuItem>
</MudMenu>
@if (DisplayExportMenu)
{
<MudMenu Variant="Variant.Filled" Color="Color.Primary" Icon="@Icons.Material.Outlined.FileDownload" AriaLabel="Export menu">
<MudMenuItem Icon="@Icons.Material.Outlined.AudioFile" OnClick="DownloadCuesheetClicked">@_localizer["Cuesheet"]</MudMenuItem>
<MudMenuItem Icon="@Icons.Material.Outlined.FileCopy" OnClick="DownloadProjectfileClicked">@_localizer["Projectfile"]</MudMenuItem>
<MudMenuItem Icon="@Icons.Material.Outlined.ImportExport" OnClick="DownloadExportClicked">@_localizer["Textfile"]</MudMenuItem>
</MudMenu>
}
<MudMenu Icon="@Icons.Material.Outlined.Language" Color="Color.Inherit" AriaLabel="@_localizer["Change language"]" TransformOrigin="Origin.TopCenter">
Expand All @@ -66,11 +59,19 @@ along with Foobar. If not, see
<MudMenuItem OnClick="(args) => SelectedCultureChanged(culture)" Style="@GetStyle(culture)">@IsoCountryCodeToFlagEmoji(culture)&nbsp;@culture.DisplayName</MudMenuItem>
}
</MudMenu>
<MudFileUpload @ref="_mudFileUpload" T="IBrowserFile" Accept="@String.Join(',', FileExtensions.Cuesheet, FileExtensions.Projectfile, FileExtensions.Text)" FilesChanged="FileUploaded" aria-label="Open file upload">
<CustomContent />
<SelectedTemplate />
</MudFileUpload>
<MudMenu Icon="@Icons.Material.Outlined.MoreVert" Color="Color.Inherit" AnchorOrigin="Origin.BottomRight" TransformOrigin="Origin.TopRight" AriaLabel="More">
@if (DisplaySettings)
{
<MudMenuItem Icon="@Icons.Material.Outlined.Settings" OnClick="SettingsClicked" aria-label="@_localizer["Settings"]">@_localizer["Settings"]</MudMenuItem>
}
@if (DisplayOpenFile)
{
<MudMenuItem Icon="@Icons.Material.Outlined.FileOpen" OnClick="OpenFileClicked">@_localizer["Open file"]</MudMenuItem>
}
<MudMenuItem Icon="@Icons.Material.Outlined.HelpOutline" Href="https://github.com/NeoCoderMatrix86/AudioCuesheetEditor/wiki/Help" Target="_blank">@_localizer["Help"]</MudMenuItem>
<MudMenuItem Icon="@Icons.Material.Outlined.Info" Href="about">@_localizer["About"]</MudMenuItem>
@if (DisplayHotkeys)
Expand All @@ -89,13 +90,13 @@ along with Foobar. If not, see
</MudAppBar>

@code {
HotKeysContext? hotKeysContext;
MudFileUpload<IBrowserFile>? mudFileUpload;
HotKeysContext? _hotKeysContext;
MudFileUpload<IBrowserFile>? _mudFileUpload;

protected override void OnInitialized()
{
base.OnInitialized();
hotKeysContext = _hotKeys.CreateContext()
_hotKeysContext = _hotKeys.CreateContext()
.Add(ModKey.Ctrl, Key.z, () => TraceChangeManager.Undo())
.Add(ModKey.Ctrl, Key.y, () => TraceChangeManager.Redo())
.Add(ModKey.Ctrl, Key.s, DownloadProjectfileClicked)
Expand All @@ -107,14 +108,17 @@ along with Foobar. If not, see
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
hotKeysContext?.DisposeAsync();
_hotKeysContext?.DisposeAsync();
}

[Parameter]
public Boolean DisplayUndoRedoButtonGroup { get; set; }

[Parameter]
public Boolean DisplayFileMenu { get; set; }
public Boolean DisplayExportMenu { get; set; }

[Parameter]
public Boolean DisplayOpenFile { get; set; }

[Parameter]
public Boolean DisplaySettings { get; set; }
Expand Down Expand Up @@ -222,9 +226,9 @@ along with Foobar. If not, see

async Task OpenFileUpload()
{
if (mudFileUpload != null)
if (_mudFileUpload != null)
{
await mudFileUpload.OpenFilePickerAsync();
await _mudFileUpload.OpenFilePickerAsync();
}
}

Expand Down
7 changes: 2 additions & 5 deletions AudioCuesheetEditor/Shared/AppBar.resx
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,6 @@
<data name="Download cuesheet" xml:space="preserve">
<value>Download cuesheet</value>
</data>
<data name="Export" xml:space="preserve">
<value>Export</value>
</data>
<data name="Export profiles" xml:space="preserve">
<value>Export profiles</value>
</data>
Expand All @@ -153,8 +150,8 @@
<data name="Hotkeys" xml:space="preserve">
<value>Hotkeys</value>
</data>
<data name="Open" xml:space="preserve">
<value>Open</value>
<data name="Open file" xml:space="preserve">
<value>Open file</value>
</data>
<data name="Preview environment" xml:space="preserve">
<value>Preview environment</value>
Expand Down
2 changes: 1 addition & 1 deletion AudioCuesheetEditor/Shared/Layouts/MainLayout.razor
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ along with Foobar. If not, see
<ChildContent>
<CascadingValue Value="@this">
<MudLayout>
<AppBar DisplayFileMenu DisplayUndoRedoButtonGroup DisplayReset DisplaySettings DisplayHotkeys />
<AppBar DisplayExportMenu DisplayOpenFile DisplayUndoRedoButtonGroup DisplayReset DisplaySettings DisplayHotkeys />
<MudMainContent>
@Body
</MudMainContent>
Expand Down