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
35 changes: 15 additions & 20 deletions AudioCuesheetEditor/Model/UI/EditMultipleTracksModalResult.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
44 changes: 36 additions & 8 deletions AudioCuesheetEditor/Services/UI/DialogManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,24 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable<Track> 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;
//First process dynamic edit, because we need to increase each value seperately
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;
Expand All @@ -83,7 +91,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable<Track> 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;
Expand All @@ -100,7 +112,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable<Track> 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;
Expand All @@ -117,7 +133,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable<Track> 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;
Expand All @@ -134,7 +154,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable<Track> 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;
Expand All @@ -151,7 +175,11 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable<Track> 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;
Expand All @@ -173,7 +201,7 @@ public async Task ShowAndHandleModalEditDialogAsync(IEnumerable<Track> 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);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,14 +123,11 @@
<data name="Begin" xml:space="preserve">
<value>Start</value>
</data>
<data name="Calculate" xml:space="preserve">
<value>Berechnen</value>
</data>
<data name="Change" xml:space="preserve">
<value>Ändern</value>
</data>
<data name="Edit tracks" xml:space="preserve">
<value>Spuren bearbeiten</value>
<value>Titel bearbeiten</value>
</data>
<data name="End" xml:space="preserve">
<value>Ende</value>
Expand Down
Loading