@@ -185,6 +185,11 @@ namespace FlaxEditor.GUI.Timeline
|
||||
/// </summary>
|
||||
public bool CanSplit;
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether this media can be removed.
|
||||
/// </summary>
|
||||
public bool CanDelete;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="Media"/> class.
|
||||
/// </summary>
|
||||
@@ -200,6 +205,8 @@ namespace FlaxEditor.GUI.Timeline
|
||||
/// <param name="controlUnderMouse">The found control under the mouse cursor.</param>
|
||||
public virtual void OnTimelineShowContextMenu(ContextMenu.ContextMenu menu, Control controlUnderMouse)
|
||||
{
|
||||
if (CanDelete && Track.Media.Count > Track.MinMediaCount)
|
||||
menu.AddButton("Delete media", Delete);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -284,6 +291,14 @@ namespace FlaxEditor.GUI.Timeline
|
||||
return clone;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes this media.
|
||||
/// </summary>
|
||||
public void Delete()
|
||||
{
|
||||
_timeline.Delete(this);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void GetDesireClientArea(out Rectangle rect)
|
||||
{
|
||||
|
||||
@@ -1451,7 +1451,7 @@ namespace FlaxEditor.GUI.Timeline
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the tracks.
|
||||
/// Deletes the track.
|
||||
/// </summary>
|
||||
/// <param name="track">The track to delete (and its sub tracks).</param>
|
||||
/// <param name="withUndo">True if use undo/redo action for track removing.</param>
|
||||
@@ -1459,8 +1459,6 @@ namespace FlaxEditor.GUI.Timeline
|
||||
{
|
||||
if (track == null)
|
||||
throw new ArgumentNullException();
|
||||
|
||||
// Delete tracks
|
||||
var tracks = new List<Track>(4);
|
||||
GetTracks(track, tracks);
|
||||
if (withUndo && Undo != null && Undo.Enabled)
|
||||
@@ -1497,6 +1495,43 @@ namespace FlaxEditor.GUI.Timeline
|
||||
track.OnDeleted();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the media.
|
||||
/// </summary>
|
||||
/// <param name="media">The media to delete.</param>
|
||||
/// <param name="withUndo">True if use undo/redo action for media removing.</param>
|
||||
public void Delete(Media media, bool withUndo = true)
|
||||
{
|
||||
if (media == null)
|
||||
throw new ArgumentNullException();
|
||||
var track = media.Track;
|
||||
if (track == null)
|
||||
throw new InvalidOperationException();
|
||||
if (withUndo && Undo != null && Undo.Enabled)
|
||||
{
|
||||
var before = EditTrackAction.CaptureData(track);
|
||||
OnDeleteMedia(media);
|
||||
var after = EditTrackAction.CaptureData(track);
|
||||
Undo.AddAction(new EditTrackAction(this, track, before, after));
|
||||
}
|
||||
else
|
||||
{
|
||||
OnDeleteMedia(media);
|
||||
}
|
||||
MarkAsEdited();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called to delete media.
|
||||
/// </summary>
|
||||
/// <param name="media">The media.</param>
|
||||
protected virtual void OnDeleteMedia(Media media)
|
||||
{
|
||||
SelectedMedia.Remove(media);
|
||||
media.Track.RemoveMedia(media);
|
||||
media.OnDeleted();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Duplicates the selected tracks/media events.
|
||||
/// </summary>
|
||||
|
||||
@@ -1032,10 +1032,10 @@ namespace FlaxEditor.GUI.Timeline
|
||||
// Show context menu
|
||||
var menu = new ContextMenu.ContextMenu();
|
||||
if (CanRename)
|
||||
menu.AddButton("Rename", StartRenaming);
|
||||
menu.AddButton("Rename", "F2", StartRenaming);
|
||||
if (CanCopyPaste)
|
||||
menu.AddButton("Duplicate", () => Timeline.DuplicateSelection());
|
||||
menu.AddButton("Delete", Delete);
|
||||
menu.AddButton("Duplicate", "Ctrl+D", () => Timeline.DuplicateSelection());
|
||||
menu.AddButton("Delete", "Del", Delete);
|
||||
if (CanExpand)
|
||||
{
|
||||
menu.AddSeparator();
|
||||
|
||||
@@ -88,6 +88,7 @@ namespace FlaxEditor.GUI.Timeline.Tracks
|
||||
public AudioMedia()
|
||||
{
|
||||
CanSplit = true;
|
||||
CanDelete = true;
|
||||
Preview = new AudioClipPreview
|
||||
{
|
||||
AnchorPreset = AnchorPresets.StretchAll,
|
||||
|
||||
@@ -35,6 +35,7 @@ namespace FlaxEditor.GUI.Timeline.Tracks
|
||||
{
|
||||
ClipChildren = true;
|
||||
CanSplit = true;
|
||||
CanDelete = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -325,10 +326,10 @@ namespace FlaxEditor.GUI.Timeline.Tracks
|
||||
/// <inheritdoc />
|
||||
public override void OnTimelineShowContextMenu(ContextMenu.ContextMenu menu, Control controlUnderMouse)
|
||||
{
|
||||
base.OnTimelineShowContextMenu(menu, controlUnderMouse);
|
||||
|
||||
if (((CameraCutTrack)Track).Camera)
|
||||
menu.AddButton("Refresh thumbnails", () => UpdateThumbnails());
|
||||
|
||||
base.OnTimelineShowContextMenu(menu, controlUnderMouse);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@@ -36,6 +36,7 @@ namespace FlaxEditor.GUI.Timeline.Tracks
|
||||
public PostProcessMaterialMedia()
|
||||
{
|
||||
CanSplit = true;
|
||||
CanDelete = true;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
Reference in New Issue
Block a user