mirror of
https://github.com/ppy/osu.git
synced 2025-01-12 22:33:05 +08:00
Fix deleting a difficulty not updating the beatmap set hash
This commit is contained in:
parent
dc02b59a05
commit
579e7e1f17
@ -45,6 +45,7 @@ namespace osu.Game.Tests.Visual.Editing
|
|||||||
{
|
{
|
||||||
Guid deletedDifficultyID = Guid.Empty;
|
Guid deletedDifficultyID = Guid.Empty;
|
||||||
int countBeforeDeletion = 0;
|
int countBeforeDeletion = 0;
|
||||||
|
string beatmapSetHashBefore = string.Empty;
|
||||||
|
|
||||||
for (int i = 0; i < 12; i++)
|
for (int i = 0; i < 12; i++)
|
||||||
{
|
{
|
||||||
@ -55,6 +56,7 @@ namespace osu.Game.Tests.Visual.Editing
|
|||||||
{
|
{
|
||||||
deletedDifficultyID = EditorBeatmap.BeatmapInfo.ID;
|
deletedDifficultyID = EditorBeatmap.BeatmapInfo.ID;
|
||||||
countBeforeDeletion = Beatmap.Value.BeatmapSetInfo.Beatmaps.Count;
|
countBeforeDeletion = Beatmap.Value.BeatmapSetInfo.Beatmaps.Count;
|
||||||
|
beatmapSetHashBefore = Beatmap.Value.BeatmapSetInfo.Hash;
|
||||||
});
|
});
|
||||||
|
|
||||||
AddStep("click File", () => this.ChildrenOfType<DrawableOsuMenuItem>().First().TriggerClick());
|
AddStep("click File", () => this.ChildrenOfType<DrawableOsuMenuItem>().First().TriggerClick());
|
||||||
@ -72,6 +74,7 @@ namespace osu.Game.Tests.Visual.Editing
|
|||||||
|
|
||||||
AddAssert($"difficulty {i} is deleted", () => Beatmap.Value.BeatmapSetInfo.Beatmaps.Select(b => b.ID), () => Does.Not.Contain(deletedDifficultyID));
|
AddAssert($"difficulty {i} is deleted", () => Beatmap.Value.BeatmapSetInfo.Beatmaps.Select(b => b.ID), () => Does.Not.Contain(deletedDifficultyID));
|
||||||
AddAssert("count decreased by one", () => Beatmap.Value.BeatmapSetInfo.Beatmaps.Count, () => Is.EqualTo(countBeforeDeletion - 1));
|
AddAssert("count decreased by one", () => Beatmap.Value.BeatmapSetInfo.Beatmaps.Count, () => Is.EqualTo(countBeforeDeletion - 1));
|
||||||
|
AddAssert("set hash changed", () => Beatmap.Value.BeatmapSetInfo.Hash, () => Is.Not.EqualTo(beatmapSetHashBefore));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -319,8 +319,7 @@ namespace osu.Game.Beatmaps
|
|||||||
|
|
||||||
AddFile(setInfo, stream, createBeatmapFilenameFromMetadata(beatmapInfo));
|
AddFile(setInfo, stream, createBeatmapFilenameFromMetadata(beatmapInfo));
|
||||||
|
|
||||||
setInfo.Hash = beatmapImporter.ComputeHash(setInfo);
|
updateHashAndMarkDirty(setInfo);
|
||||||
setInfo.Status = BeatmapOnlineStatus.LocallyModified;
|
|
||||||
|
|
||||||
Realm.Write(r =>
|
Realm.Write(r =>
|
||||||
{
|
{
|
||||||
@ -384,6 +383,8 @@ namespace osu.Game.Beatmaps
|
|||||||
|
|
||||||
DeleteFile(setInfo, beatmapInfo.File);
|
DeleteFile(setInfo, beatmapInfo.File);
|
||||||
setInfo.Beatmaps.Remove(beatmapInfo);
|
setInfo.Beatmaps.Remove(beatmapInfo);
|
||||||
|
|
||||||
|
updateHashAndMarkDirty(setInfo);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -440,6 +441,12 @@ namespace osu.Game.Beatmaps
|
|||||||
public Task<Live<BeatmapSetInfo>?> ImportAsUpdate(ProgressNotification notification, ImportTask importTask, BeatmapSetInfo original) =>
|
public Task<Live<BeatmapSetInfo>?> ImportAsUpdate(ProgressNotification notification, ImportTask importTask, BeatmapSetInfo original) =>
|
||||||
beatmapImporter.ImportAsUpdate(notification, importTask, original);
|
beatmapImporter.ImportAsUpdate(notification, importTask, original);
|
||||||
|
|
||||||
|
private void updateHashAndMarkDirty(BeatmapSetInfo setInfo)
|
||||||
|
{
|
||||||
|
setInfo.Hash = beatmapImporter.ComputeHash(setInfo);
|
||||||
|
setInfo.Status = BeatmapOnlineStatus.LocallyModified;
|
||||||
|
}
|
||||||
|
|
||||||
#region Implementation of ICanAcceptFiles
|
#region Implementation of ICanAcceptFiles
|
||||||
|
|
||||||
public Task Import(params string[] paths) => beatmapImporter.Import(paths);
|
public Task Import(params string[] paths) => beatmapImporter.Import(paths);
|
||||||
|
Loading…
Reference in New Issue
Block a user