Moved "undelete all" logic to BeatmapManager and added a progress notification

This commit is contained in:
FreezyLemon
2017-12-18 10:55:07 +01:00
parent 4c45102d61
commit d2b80fdbfc
2 changed files with 31 additions and 5 deletions

View File

@ -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)