From fd051d1f318308d2330e599605baf9dc5c3bf5c2 Mon Sep 17 00:00:00 2001 From: Sven <40752681+NeoCoderMatrix86@users.noreply.github.com> Date: Mon, 2 Feb 2026 09:32:32 +0100 Subject: [PATCH 1/3] Update EditMultipleTracksModal.de.resx --- .../Shared/Dialogs/EditMultipleTracksModal.de.resx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.de.resx b/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.de.resx index 09c6ca6d..5961e76e 100644 --- a/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.de.resx +++ b/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.de.resx @@ -130,7 +130,7 @@ Ändern - Spuren bearbeiten + Titel bearbeiten Ende From 12e382229112919e7d7abca9a78c631d34e1a7db Mon Sep 17 00:00:00 2001 From: Sven <40752681+NeoCoderMatrix86@users.noreply.github.com> Date: Mon, 2 Feb 2026 09:32:38 +0100 Subject: [PATCH 2/3] Update DialogManager.cs --- AudioCuesheetEditor/Services/UI/DialogManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AudioCuesheetEditor/Services/UI/DialogManager.cs b/AudioCuesheetEditor/Services/UI/DialogManager.cs index f10ac2bb..040ced4b 100644 --- a/AudioCuesheetEditor/Services/UI/DialogManager.cs +++ b/AudioCuesheetEditor/Services/UI/DialogManager.cs @@ -63,7 +63,7 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable tracks) Boolean copyTrackLength = editMultipleTracksModalResult.LengthChanged; Boolean copyTrackPreGap = editMultipleTracksModalResult.PregapChanged; Boolean copyTrackPostGap = editMultipleTracksModalResult.PostgapChanged; - //First process dynamic edit, because we need to increase each value seperately + //First process dynamic edit, because we need to increase each value separately switch (editMultipleTracksModalResult.PositionEditMode) { case DynamicEditValue.EnteredValueEquals: From 9b2d068f2148beb19e22ddba7aedded576d530fc Mon Sep 17 00:00:00 2001 From: Sven <40752681+NeoCoderMatrix86@users.noreply.github.com> Date: Mon, 2 Feb 2026 11:26:50 +0100 Subject: [PATCH 3/3] remove column in edit dialog --- .../Model/UI/EditMultipleTracksModalResult.cs | 35 ++-- .../Services/UI/DialogManager.cs | 42 +++- .../Dialogs/EditMultipleTracksModal.de.resx | 3 - .../Dialogs/EditMultipleTracksModal.razor | 189 ++++++++++-------- .../Dialogs/EditMultipleTracksModal.resx | 3 - 5 files changed, 153 insertions(+), 119 deletions(-) diff --git a/AudioCuesheetEditor/Model/UI/EditMultipleTracksModalResult.cs b/AudioCuesheetEditor/Model/UI/EditMultipleTracksModalResult.cs index 0f1f4e33..5fcefbd1 100644 --- a/AudioCuesheetEditor/Model/UI/EditMultipleTracksModalResult.cs +++ b/AudioCuesheetEditor/Model/UI/EditMultipleTracksModalResult.cs @@ -19,28 +19,23 @@ namespace AudioCuesheetEditor.Model.UI { public enum DynamicEditValue { - EnteredValueEquals = 0, - EnteredValueAdd = 1, - EnteredValueSubstract = 2 + DoNotChange = 0, + EnteredValueEquals = 1, + EnteredValueAdd = 2, + EnteredValueSubstract = 3 } - public class EditMultipleTracksModalResult(Track editedTrack, Boolean isLinkedToPreviousTrackChanged, Boolean positionChanged, Boolean artistChanged, Boolean titleChanged, Boolean beginChanged, Boolean endChanged, Boolean lengthChanged, Boolean flagsChanged, Boolean pregapChanged, Boolean postgapChanged, DynamicEditValue? positionEditMode = null, DynamicEditValue? beginEditMode = null, DynamicEditValue? endEditMode = null, DynamicEditValue? lengthEditMode = null, DynamicEditValue? pregapEditMode = null, DynamicEditValue? postgapEditMode = null) + public class EditMultipleTracksModalResult(Track editedTrack, DynamicEditValue isLinkedToPreviousTrackChanged, DynamicEditValue positionEditMode, DynamicEditValue artistEditMode, DynamicEditValue titleEditMode, DynamicEditValue beginEditMode, DynamicEditValue endEditMode, DynamicEditValue lengthEditMode, DynamicEditValue flagsEditMode, DynamicEditValue pregapEditMode, DynamicEditValue postgapEditMode) { public Track EditedTrack { get; } = editedTrack; - public Boolean IsLinkedToPreviousTrackChanged { get; } = isLinkedToPreviousTrackChanged; - public Boolean PositionChanged { get; } = positionChanged; - public DynamicEditValue? PositionEditMode { get; } = positionEditMode; - public Boolean ArtistChanged { get; } = artistChanged; - public Boolean TitleChanged { get; } = titleChanged; - public Boolean BeginChanged { get; } = beginChanged; - public DynamicEditValue? BeginEditMode { get; } = beginEditMode; - public Boolean EndChanged { get; } = endChanged; - public DynamicEditValue? EndEditMode { get; } = endEditMode; - public Boolean LengthChanged { get; } = lengthChanged; - public DynamicEditValue? LengthEditMode { get; } = lengthEditMode; - public Boolean FlagsChanged { get; } = flagsChanged; - public Boolean PregapChanged { get; } = pregapChanged; - public DynamicEditValue? PregapEditMode { get; } = pregapEditMode; - public Boolean PostgapChanged { get; } = postgapChanged; - public DynamicEditValue? PostgapEditMode { get; } = postgapEditMode; + public DynamicEditValue IsLinkedToPreviousTrackEditMode { get; } = isLinkedToPreviousTrackChanged; + public DynamicEditValue PositionEditMode { get; } = positionEditMode; + public DynamicEditValue ArtistEditMode { get; } = artistEditMode; + public DynamicEditValue TitleEditMode { get; } = titleEditMode; + public DynamicEditValue BeginEditMode { get; } = beginEditMode; + public DynamicEditValue EndEditMode { get; } = endEditMode; + public DynamicEditValue LengthEditMode { get; } = lengthEditMode; + public DynamicEditValue FlagsEditMode { get; } = flagsEditMode; + public DynamicEditValue PregapEditMode { get; } = pregapEditMode; + public DynamicEditValue PostgapEditMode { get; } = postgapEditMode; } } diff --git a/AudioCuesheetEditor/Services/UI/DialogManager.cs b/AudioCuesheetEditor/Services/UI/DialogManager.cs index 040ced4b..6c59f2dd 100644 --- a/AudioCuesheetEditor/Services/UI/DialogManager.cs +++ b/AudioCuesheetEditor/Services/UI/DialogManager.cs @@ -57,16 +57,24 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable tracks) var length = editMultipleTracksModalResult.EditedTrack.Length; var preGap = editMultipleTracksModalResult.EditedTrack.PreGap; var postGap = editMultipleTracksModalResult.EditedTrack.PostGap; - Boolean copyTrackPosition = editMultipleTracksModalResult.PositionChanged; - Boolean copyTrackBegin = editMultipleTracksModalResult.BeginChanged; - Boolean copyTrackEnd = editMultipleTracksModalResult.EndChanged; - Boolean copyTrackLength = editMultipleTracksModalResult.LengthChanged; - Boolean copyTrackPreGap = editMultipleTracksModalResult.PregapChanged; - Boolean copyTrackPostGap = editMultipleTracksModalResult.PostgapChanged; + Boolean copyIsLinkedToPreviousTrack = editMultipleTracksModalResult.IsLinkedToPreviousTrackEditMode == DynamicEditValue.EnteredValueEquals; + Boolean copyTrackPosition = true; + Boolean copyTrackArtist = editMultipleTracksModalResult.ArtistEditMode == DynamicEditValue.EnteredValueEquals; + Boolean copyTrackTitle = editMultipleTracksModalResult.TitleEditMode == DynamicEditValue.EnteredValueEquals; + Boolean copyTrackBegin = true; + Boolean copyTrackEnd = true; + Boolean copyTrackLength = true; + Boolean copyTrackFlags = editMultipleTracksModalResult.FlagsEditMode == DynamicEditValue.EnteredValueEquals; + Boolean copyTrackPreGap = true; + Boolean copyTrackPostGap = true; //First process dynamic edit, because we need to increase each value separately switch (editMultipleTracksModalResult.PositionEditMode) { + case DynamicEditValue.DoNotChange: + copyTrackPosition = false; + break; case DynamicEditValue.EnteredValueEquals: + copyTrackPosition = true; break; case DynamicEditValue.EnteredValueAdd: editMultipleTracksModalResult.EditedTrack.Position += track.Position; @@ -83,7 +91,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable tracks) } switch (editMultipleTracksModalResult.BeginEditMode) { + case DynamicEditValue.DoNotChange: + copyTrackBegin = false; + break; case DynamicEditValue.EnteredValueEquals: + copyTrackBegin = true; break; case DynamicEditValue.EnteredValueAdd: var newValue = editMultipleTracksModalResult.EditedTrack.Begin + track.Begin; @@ -100,7 +112,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable tracks) } switch (editMultipleTracksModalResult.EndEditMode) { + case DynamicEditValue.DoNotChange: + copyTrackEnd = false; + break; case DynamicEditValue.EnteredValueEquals: + copyTrackEnd = true; break; case DynamicEditValue.EnteredValueAdd: var newValue = editMultipleTracksModalResult.EditedTrack.End + track.End; @@ -117,7 +133,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable tracks) } switch (editMultipleTracksModalResult.LengthEditMode) { + case DynamicEditValue.DoNotChange: + copyTrackLength = false; + break; case DynamicEditValue.EnteredValueEquals: + copyTrackLength = true; break; case DynamicEditValue.EnteredValueAdd: var newValue = editMultipleTracksModalResult.EditedTrack.Length + track.Length; @@ -134,7 +154,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable tracks) } switch (editMultipleTracksModalResult.PregapEditMode) { + case DynamicEditValue.DoNotChange: + copyTrackPreGap = false; + break; case DynamicEditValue.EnteredValueEquals: + copyTrackPreGap = true; break; case DynamicEditValue.EnteredValueAdd: var newValue = editMultipleTracksModalResult.EditedTrack.PreGap + track.PreGap; @@ -151,7 +175,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable tracks) } switch (editMultipleTracksModalResult.PostgapEditMode) { + case DynamicEditValue.DoNotChange: + copyTrackPostGap = false; + break; case DynamicEditValue.EnteredValueEquals: + copyTrackPostGap = true; break; case DynamicEditValue.EnteredValueAdd: var newValue = editMultipleTracksModalResult.EditedTrack.PostGap + track.PostGap; @@ -173,7 +201,7 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable tracks) editMultipleTracksModalResult.EditedTrack.PreGap = preGap; editMultipleTracksModalResult.EditedTrack.PostGap = postGap; //Now copy all values - track.CopyValues(editMultipleTracksModalResult.EditedTrack, setCuesheet: false, setIsLinkedToPreviousTrack: editMultipleTracksModalResult.IsLinkedToPreviousTrackChanged, setPosition: copyTrackPosition, setArtist: editMultipleTracksModalResult.ArtistChanged, setTitle: editMultipleTracksModalResult.TitleChanged, setBegin: copyTrackBegin, setEnd: copyTrackEnd, setLength: copyTrackLength, setFlags: editMultipleTracksModalResult.FlagsChanged, setPreGap: copyTrackPreGap, setPostGap: copyTrackPostGap); + track.CopyValues(editMultipleTracksModalResult.EditedTrack, setCuesheet: false, setIsLinkedToPreviousTrack: copyIsLinkedToPreviousTrack, setPosition: copyTrackPosition, setArtist: copyTrackArtist, setTitle: copyTrackTitle, setBegin: copyTrackBegin, setEnd: copyTrackEnd, setLength: copyTrackLength, setFlags: copyTrackFlags, setPreGap: copyTrackPreGap, setPostGap: copyTrackPostGap); } } } diff --git a/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.de.resx b/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.de.resx index 5961e76e..b03a5f25 100644 --- a/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.de.resx +++ b/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.de.resx @@ -123,9 +123,6 @@ Start - - Berechnen - Ändern diff --git a/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.razor b/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.razor index 1b00c418..9c8a87f7 100644 --- a/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.razor +++ b/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.razor @@ -29,28 +29,37 @@ along with Foobar. If not, see - @_localizer["Change"] - @_localizer["Value"] - @_localizer["Calculate"] + @_localizer["Change"] + @_localizer["Value"] - - + + + + + + + - - - - - - - = - + - - + + + + + + + + + - - + + + + + + + @{ MusicBrainzArtist? autocompleteArtist = new() { @@ -58,8 +67,8 @@ along with Foobar. If not, see }; } @autocompleteContext.Name @@ -72,8 +81,13 @@ along with Foobar. If not, see - - + + + + + + + @{ MusicBrainzTrack? autocompleteTrack = new() { @@ -82,8 +96,8 @@ along with Foobar. If not, see }; } @autocompleteContext.Title @@ -96,52 +110,57 @@ along with Foobar. If not, see - - - - - - - = - + - - + + + + + + + + + - - - - - - - = - + - - + + + + + + + + + - - - - - - - = - + - - + + + + + + + + + - - + + + + + + + - + @foreach (var flag in Flag.AvailableFlags) { @flag.Name @@ -150,33 +169,33 @@ along with Foobar. If not, see - - - - - - - = - + - - + + + + + + + + + - - - - - - - = - + - - + + + + + + + + + @@ -193,14 +212,12 @@ along with Foobar. If not, see [EditorRequired] public Track EditedTrack { get; set; } = null!; - Boolean editTrackIsLinkedToPreviousTrack, editTrackPosition, editTrackArtist, editTrackTitle, editTrackBegin, editTrackEnd, editTrackLength, editTrackFlags, editTrackPregap, editTrackPostgap; - DynamicEditValue editModeTrackPosition, editModeTrackBegin, editModeTrackEnd, editModeTrackLength, editModeTrackPregap, editModeTrackPostgap; + DynamicEditValue editModeTrackIsLinkedToPreviousTrack, editModeTrackPosition, editModeTrackArtist, editModeTrackTitle, editModeTrackBegin, editModeTrackEnd, editModeTrackLength, editModeTrackFlags, editModeTrackPregap, editModeTrackPostgap; void SaveClick() { - var result = new EditMultipleTracksModalResult(EditedTrack, editTrackIsLinkedToPreviousTrack, editTrackPosition, editTrackArtist, editTrackTitle, editTrackBegin, - editTrackEnd, editTrackLength, editTrackFlags, editTrackPregap, editTrackPostgap, editModeTrackPosition, editModeTrackBegin, editModeTrackEnd, editModeTrackLength, - editModeTrackPregap, editModeTrackPostgap); + var result = new EditMultipleTracksModalResult(EditedTrack, editModeTrackIsLinkedToPreviousTrack, editModeTrackPosition, editModeTrackArtist, editModeTrackTitle, editModeTrackBegin, editModeTrackEnd, editModeTrackLength, + editModeTrackFlags, editModeTrackPregap, editModeTrackPostgap); MudDialog?.Close(DialogResult.Ok(result)); } diff --git a/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.resx b/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.resx index a0717338..2ffdb95c 100644 --- a/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.resx +++ b/AudioCuesheetEditor/Shared/Dialogs/EditMultipleTracksModal.resx @@ -123,9 +123,6 @@ Begin - - Calculate - Change