mirror of
https://github.com/osukey/osukey.git
synced 2025-07-01 08:20:00 +09:00
Moved "undelete all" logic to BeatmapManager and added a progress notification
This commit is contained in:
@ -339,6 +339,36 @@ namespace osu.Game.Beatmaps
|
||||
}
|
||||
}
|
||||
|
||||
public void UndeleteAll()
|
||||
{
|
||||
var mapSets = QueryBeatmapSets(bs => bs.DeletePending);
|
||||
|
||||
if (mapSets.Count() == 0) return;
|
||||
|
||||
var notification = new ProgressNotification
|
||||
{
|
||||
Progress = 0,
|
||||
State = ProgressNotificationState.Active,
|
||||
};
|
||||
|
||||
PostNotification?.Invoke(notification);
|
||||
|
||||
int i = 0;
|
||||
|
||||
foreach (var bs in mapSets)
|
||||
{
|
||||
if (notification.State == ProgressNotificationState.Cancelled)
|
||||
// user requested abort
|
||||
return;
|
||||
|
||||
notification.Text = $"Restoring ({i} of {mapSets.Count()})";
|
||||
notification.Progress = (float)++i / mapSets.Count();
|
||||
Undelete(bs);
|
||||
}
|
||||
|
||||
notification.State = ProgressNotificationState.Completed;
|
||||
}
|
||||
|
||||
public void Undelete(BeatmapSetInfo beatmapSet)
|
||||
{
|
||||
if (beatmapSet.Protected)
|
||||
|
Reference in New Issue
Block a user