mirror of
https://github.com/osukey/osukey.git
synced 2025-05-20 21:17:32 +09:00
Move implementation of DeleteVideos to BeatmapModelManager
This commit is contained in:
parent
617382a56f
commit
a93a2fcafb
@ -16,6 +16,7 @@ using osu.Game.Database;
|
|||||||
using osu.Game.Extensions;
|
using osu.Game.Extensions;
|
||||||
using osu.Game.Skinning;
|
using osu.Game.Skinning;
|
||||||
using osu.Game.Stores;
|
using osu.Game.Stores;
|
||||||
|
using osu.Game.Overlays.Notifications;
|
||||||
|
|
||||||
#nullable enable
|
#nullable enable
|
||||||
|
|
||||||
@ -114,5 +115,43 @@ namespace osu.Game.Beatmaps
|
|||||||
item.CopyChangesToRealm(existing);
|
item.CopyChangesToRealm(existing);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Delete videos from a list of beatmaps.
|
||||||
|
/// This will post notifications tracking progress.
|
||||||
|
/// </summary>
|
||||||
|
public void DeleteVideos(List<BeatmapSetInfo> items, bool silent = false)
|
||||||
|
{
|
||||||
|
if (items.Count == 0) return;
|
||||||
|
|
||||||
|
var notification = new ProgressNotification
|
||||||
|
{
|
||||||
|
Progress = 0,
|
||||||
|
Text = $"Preparing to delete all {HumanisedModelName} videos...",
|
||||||
|
CompletionText = $"Deleted all {HumanisedModelName} videos!",
|
||||||
|
State = ProgressNotificationState.Active,
|
||||||
|
};
|
||||||
|
if (!silent)
|
||||||
|
PostNotification?.Invoke(notification);
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
foreach (var b in items)
|
||||||
|
{
|
||||||
|
if (notification.State == ProgressNotificationState.Cancelled)
|
||||||
|
// user requested abort
|
||||||
|
return;
|
||||||
|
|
||||||
|
notification.Text = $"Deleting videos from {HumanisedModelName}s ({++i} of {items.Count})";
|
||||||
|
|
||||||
|
var video = b.Files.FirstOrDefault(f => f.Filename.EndsWith(".mp4") || f.Filename.EndsWith(".avi") || f.Filename.EndsWith(".mov") || f.Filename.EndsWith(".flv"));
|
||||||
|
if (video != null)
|
||||||
|
DeleteFile(b, video);
|
||||||
|
|
||||||
|
notification.Progress = (float)i / items.Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
notification.State = ProgressNotificationState.Completed;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -132,44 +132,6 @@ namespace osu.Game.Stores
|
|||||||
notification.State = ProgressNotificationState.Completed;
|
notification.State = ProgressNotificationState.Completed;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Delete videos from a list of items.
|
|
||||||
/// This will post notifications tracking progress.
|
|
||||||
/// </summary>
|
|
||||||
public void DeleteVideos(List<TModel> items, bool silent = false)
|
|
||||||
{
|
|
||||||
if (items.Count == 0) return;
|
|
||||||
|
|
||||||
var notification = new ProgressNotification
|
|
||||||
{
|
|
||||||
Progress = 0,
|
|
||||||
Text = $"Preparing to delete all {HumanisedModelName} videos...",
|
|
||||||
CompletionText = $"Deleted all {HumanisedModelName} videos!",
|
|
||||||
State = ProgressNotificationState.Active,
|
|
||||||
};
|
|
||||||
if (!silent)
|
|
||||||
PostNotification?.Invoke(notification);
|
|
||||||
|
|
||||||
int i = 0;
|
|
||||||
|
|
||||||
foreach (var b in items)
|
|
||||||
{
|
|
||||||
if (notification.State == ProgressNotificationState.Cancelled)
|
|
||||||
// user requested abort
|
|
||||||
return;
|
|
||||||
|
|
||||||
notification.Text = $"Deleting videos from {HumanisedModelName}s ({++i} of {items.Count})";
|
|
||||||
|
|
||||||
var video = b.Files.FirstOrDefault(f => f.Filename.EndsWith(".mp4") || f.Filename.EndsWith(".avi") || f.Filename.EndsWith(".mov") || f.Filename.EndsWith(".flv"));
|
|
||||||
if (video != null)
|
|
||||||
DeleteFile(b, video);
|
|
||||||
|
|
||||||
notification.Progress = (float)i / items.Count;
|
|
||||||
}
|
|
||||||
|
|
||||||
notification.State = ProgressNotificationState.Completed;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Restore multiple items that were previously deleted.
|
/// Restore multiple items that were previously deleted.
|
||||||
/// This will post notifications tracking progress.
|
/// This will post notifications tracking progress.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user