mirror of
https://github.com/ppy/osu.git
synced 2024-11-06 06:17:23 +08:00
Merge remote-tracking branch 'upstream/master' into generic-download-model-manager
This commit is contained in:
commit
c5f1da0f71
@ -235,7 +235,7 @@ namespace osu.Game.Beatmaps
|
||||
/// <returns>Results from the provided query.</returns>
|
||||
public IQueryable<BeatmapInfo> QueryBeatmaps(Expression<Func<BeatmapInfo, bool>> query) => beatmaps.Beatmaps.AsNoTracking().Where(query);
|
||||
|
||||
public override bool IsAvailableLocally(BeatmapSetInfo set) => beatmaps.ConsumableItems.Any(s => s.OnlineBeatmapSetID == set.OnlineBeatmapSetID && !s.DeletePending && !s.Protected);
|
||||
protected override string HumanisedModelName => "beatmap";
|
||||
|
||||
protected override BeatmapSetInfo CreateModel(ArchiveReader reader)
|
||||
{
|
||||
|
@ -163,7 +163,7 @@ namespace osu.Game.Database
|
||||
imported.Add(model);
|
||||
current++;
|
||||
|
||||
notification.Text = $"Imported {current} of {paths.Length} {humanisedModelName}s";
|
||||
notification.Text = $"Imported {current} of {paths.Length} {HumanisedModelName}s";
|
||||
notification.Progress = (float)current / paths.Length;
|
||||
}
|
||||
}
|
||||
@ -186,7 +186,7 @@ namespace osu.Game.Database
|
||||
{
|
||||
notification.CompletionText = imported.Count == 1
|
||||
? $"Imported {imported.First()}!"
|
||||
: $"Imported {current} {humanisedModelName}s!";
|
||||
: $"Imported {current} {HumanisedModelName}s!";
|
||||
|
||||
if (imported.Count > 0 && PresentImport != null)
|
||||
{
|
||||
@ -344,7 +344,7 @@ namespace osu.Game.Database
|
||||
if (CanUndelete(existing, item))
|
||||
{
|
||||
Undelete(existing);
|
||||
LogForModel(item, $"Found existing {humanisedModelName} for {item} (ID {existing.ID}) – skipping import.");
|
||||
LogForModel(item, $"Found existing {HumanisedModelName} for {item} (ID {existing.ID}) – skipping import.");
|
||||
handleEvent(() => ItemAdded?.Invoke(existing, true));
|
||||
|
||||
// existing item will be used; rollback new import and exit early.
|
||||
@ -424,7 +424,8 @@ namespace osu.Game.Database
|
||||
var notification = new ProgressNotification
|
||||
{
|
||||
Progress = 0,
|
||||
CompletionText = $"Deleted all {typeof(TModel).Name.Replace("Info", "").ToLower()}s!",
|
||||
Text = $"Preparing to delete all {HumanisedModelName}s...",
|
||||
CompletionText = $"Deleted all {HumanisedModelName}s!",
|
||||
State = ProgressNotificationState.Active,
|
||||
};
|
||||
|
||||
@ -441,7 +442,7 @@ namespace osu.Game.Database
|
||||
// user requested abort
|
||||
return;
|
||||
|
||||
notification.Text = $"Deleting ({++i} of {items.Count})";
|
||||
notification.Text = $"Deleting {HumanisedModelName}s ({++i} of {items.Count})";
|
||||
|
||||
Delete(b);
|
||||
|
||||
@ -613,7 +614,7 @@ namespace osu.Game.Database
|
||||
|
||||
private DbSet<TModel> queryModel() => ContextFactory.Get().Set<TModel>();
|
||||
|
||||
private string humanisedModelName => $"{typeof(TModel).Name.Replace("Info", "").ToLower()}";
|
||||
protected virtual string HumanisedModelName => $"{typeof(TModel).Name.Replace("Info", "").ToLower()}";
|
||||
|
||||
/// <summary>
|
||||
/// Creates an <see cref="ArchiveReader"/> from a valid storage path.
|
||||
|
@ -21,31 +21,45 @@ namespace osu.Game.Users
|
||||
set => Model = value;
|
||||
}
|
||||
|
||||
[Resolved]
|
||||
private LargeTextureStore textures { get; set; }
|
||||
protected override Drawable CreateDrawable(User user) => new Cover(user);
|
||||
|
||||
protected override Drawable CreateDrawable(User user)
|
||||
private class Cover : CompositeDrawable
|
||||
{
|
||||
if (user == null)
|
||||
private readonly User user;
|
||||
|
||||
public Cover(User user)
|
||||
{
|
||||
return new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = ColourInfo.GradientVertical(Color4.Black.Opacity(0.1f), Color4.Black.Opacity(0.75f))
|
||||
};
|
||||
this.user = user;
|
||||
|
||||
RelativeSizeAxes = Axes.Both;
|
||||
}
|
||||
else
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(LargeTextureStore textures)
|
||||
{
|
||||
var sprite = new Sprite
|
||||
if (user == null)
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Texture = textures.Get(user.CoverUrl),
|
||||
FillMode = FillMode.Fill,
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre
|
||||
};
|
||||
sprite.OnLoadComplete += d => d.FadeInFromZero(400);
|
||||
return sprite;
|
||||
InternalChild = new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Colour = ColourInfo.GradientVertical(Color4.Black.Opacity(0.1f), Color4.Black.Opacity(0.75f))
|
||||
};
|
||||
}
|
||||
else
|
||||
InternalChild = new Sprite
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Texture = textures.Get(user.CoverUrl),
|
||||
FillMode = FillMode.Fill,
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre
|
||||
};
|
||||
}
|
||||
|
||||
protected override void LoadComplete()
|
||||
{
|
||||
base.LoadComplete();
|
||||
this.FadeInFromZero(400);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -66,8 +66,6 @@ namespace osu.Game.Users
|
||||
|
||||
FillFlowContainer infoContainer;
|
||||
|
||||
UserCoverBackground coverBackground;
|
||||
|
||||
AddInternal(content = new Container
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
@ -82,13 +80,16 @@ namespace osu.Game.Users
|
||||
|
||||
Children = new Drawable[]
|
||||
{
|
||||
new DelayedLoadWrapper(coverBackground = new UserCoverBackground
|
||||
new DelayedLoadUnloadWrapper(() => new UserCoverBackground
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Anchor = Anchor.Centre,
|
||||
Origin = Anchor.Centre,
|
||||
User = user,
|
||||
}, 300) { RelativeSizeAxes = Axes.Both },
|
||||
}, 300, 5000)
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
},
|
||||
new Box
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
@ -189,8 +190,6 @@ namespace osu.Game.Users
|
||||
}
|
||||
});
|
||||
|
||||
coverBackground.OnLoadComplete += d => d.FadeInFromZero(400, Easing.Out);
|
||||
|
||||
if (user.IsSupporter)
|
||||
{
|
||||
infoContainer.Add(new SupporterIcon
|
||||
|
Loading…
Reference in New Issue
Block a user