1
0
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:
naoey 2019-06-12 18:20:35 +05:30
commit c5f1da0f71
No known key found for this signature in database
GPG Key ID: 670DA9BE3DF7EE60
4 changed files with 46 additions and 32 deletions

View File

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

View File

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

View File

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

View File

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