mirror of
https://github.com/osukey/osukey.git
synced 2025-05-30 09:57:21 +09:00
Merge pull request #2245 from peppy/better-import-notice
Make import notifications fail when any imports fail
This commit is contained in:
commit
1a86a057bc
@ -80,7 +80,6 @@ namespace osu.Game.Database
|
|||||||
var notification = new ProgressNotification
|
var notification = new ProgressNotification
|
||||||
{
|
{
|
||||||
Text = "Import is initialising...",
|
Text = "Import is initialising...",
|
||||||
CompletionText = "Import successful!",
|
|
||||||
Progress = 0,
|
Progress = 0,
|
||||||
State = ProgressNotificationState.Active,
|
State = ProgressNotificationState.Active,
|
||||||
};
|
};
|
||||||
@ -89,7 +88,8 @@ namespace osu.Game.Database
|
|||||||
|
|
||||||
List<TModel> imported = new List<TModel>();
|
List<TModel> imported = new List<TModel>();
|
||||||
|
|
||||||
int i = 0;
|
int current = 0;
|
||||||
|
int errors = 0;
|
||||||
foreach (string path in paths)
|
foreach (string path in paths)
|
||||||
{
|
{
|
||||||
if (notification.State == ProgressNotificationState.Cancelled)
|
if (notification.State == ProgressNotificationState.Cancelled)
|
||||||
@ -98,11 +98,11 @@ namespace osu.Game.Database
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
notification.Text = $"Importing ({i} of {paths.Length})\n{Path.GetFileName(path)}";
|
notification.Text = $"Importing ({++current} of {paths.Length})\n{Path.GetFileName(path)}";
|
||||||
using (ArchiveReader reader = getReaderFrom(path))
|
using (ArchiveReader reader = getReaderFrom(path))
|
||||||
imported.Add(Import(reader));
|
imported.Add(Import(reader));
|
||||||
|
|
||||||
notification.Progress = (float)++i / paths.Length;
|
notification.Progress = (float)current / paths.Length;
|
||||||
|
|
||||||
// We may or may not want to delete the file depending on where it is stored.
|
// We may or may not want to delete the file depending on where it is stored.
|
||||||
// e.g. reconstructing/repairing database with items from default storage.
|
// e.g. reconstructing/repairing database with items from default storage.
|
||||||
@ -122,9 +122,11 @@ namespace osu.Game.Database
|
|||||||
{
|
{
|
||||||
e = e.InnerException ?? e;
|
e = e.InnerException ?? e;
|
||||||
Logger.Error(e, $@"Could not import ({Path.GetFileName(path)})");
|
Logger.Error(e, $@"Could not import ({Path.GetFileName(path)})");
|
||||||
|
errors++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notification.Text = errors > 0 ? $"Import complete with {errors} errors" : "Import successful!";
|
||||||
notification.State = ProgressNotificationState.Completed;
|
notification.State = ProgressNotificationState.Completed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,9 +221,11 @@ namespace osu.Game.Database
|
|||||||
// user requested abort
|
// user requested abort
|
||||||
return;
|
return;
|
||||||
|
|
||||||
notification.Text = $"Deleting ({i} of {items.Count})";
|
notification.Text = $"Deleting ({++i} of {items.Count})";
|
||||||
notification.Progress = (float)++i / items.Count;
|
|
||||||
Delete(b);
|
Delete(b);
|
||||||
|
|
||||||
|
notification.Progress = (float)i / items.Count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -255,9 +259,11 @@ namespace osu.Game.Database
|
|||||||
// user requested abort
|
// user requested abort
|
||||||
return;
|
return;
|
||||||
|
|
||||||
notification.Text = $"Restoring ({i} of {items.Count})";
|
notification.Text = $"Restoring ({++i} of {items.Count})";
|
||||||
notification.Progress = (float)++i / items.Count;
|
|
||||||
Undelete(item);
|
Undelete(item);
|
||||||
|
|
||||||
|
notification.Progress = (float)i / items.Count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user