mirror of
https://github.com/ppy/osu.git
synced 2024-09-21 22:07:25 +08:00
Include commentable object metadata in comments
This commit is contained in:
parent
c4e358044a
commit
72c6134dbf
@ -301,7 +301,7 @@ namespace osu.Game.Overlays.Comments
|
|||||||
|
|
||||||
void addNewComment(Comment comment)
|
void addNewComment(Comment comment)
|
||||||
{
|
{
|
||||||
var drawableComment = GetDrawableComment(comment);
|
var drawableComment = GetDrawableComment(comment, bundle.CommentableMeta);
|
||||||
|
|
||||||
if (comment.ParentId == null)
|
if (comment.ParentId == null)
|
||||||
{
|
{
|
||||||
@ -333,7 +333,7 @@ namespace osu.Game.Overlays.Comments
|
|||||||
if (CommentDictionary.ContainsKey(comment.Id))
|
if (CommentDictionary.ContainsKey(comment.Id))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
topLevelComments.Add(GetDrawableComment(comment));
|
topLevelComments.Add(GetDrawableComment(comment, bundle.CommentableMeta));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (topLevelComments.Any())
|
if (topLevelComments.Any())
|
||||||
@ -351,12 +351,12 @@ namespace osu.Game.Overlays.Comments
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public DrawableComment GetDrawableComment(Comment comment)
|
public DrawableComment GetDrawableComment(Comment comment, IReadOnlyList<CommentableMeta> meta)
|
||||||
{
|
{
|
||||||
if (CommentDictionary.TryGetValue(comment.Id, out var existing))
|
if (CommentDictionary.TryGetValue(comment.Id, out var existing))
|
||||||
return existing;
|
return existing;
|
||||||
|
|
||||||
return CommentDictionary[comment.Id] = new DrawableComment(comment)
|
return CommentDictionary[comment.Id] = new DrawableComment(comment, meta)
|
||||||
{
|
{
|
||||||
ShowDeleted = { BindTarget = ShowDeleted },
|
ShowDeleted = { BindTarget = ShowDeleted },
|
||||||
Sort = { BindTarget = Sort },
|
Sort = { BindTarget = Sort },
|
||||||
|
@ -39,6 +39,7 @@ namespace osu.Game.Overlays.Comments
|
|||||||
public Action<DrawableComment, int> RepliesRequested = null!;
|
public Action<DrawableComment, int> RepliesRequested = null!;
|
||||||
|
|
||||||
public readonly Comment Comment;
|
public readonly Comment Comment;
|
||||||
|
public readonly IReadOnlyList<CommentableMeta> Meta;
|
||||||
|
|
||||||
public readonly BindableBool ShowDeleted = new BindableBool();
|
public readonly BindableBool ShowDeleted = new BindableBool();
|
||||||
public readonly Bindable<CommentsSortCriteria> Sort = new Bindable<CommentsSortCriteria>();
|
public readonly Bindable<CommentsSortCriteria> Sort = new Bindable<CommentsSortCriteria>();
|
||||||
@ -87,9 +88,10 @@ namespace osu.Game.Overlays.Comments
|
|||||||
[Resolved]
|
[Resolved]
|
||||||
private OnScreenDisplay? onScreenDisplay { get; set; }
|
private OnScreenDisplay? onScreenDisplay { get; set; }
|
||||||
|
|
||||||
public DrawableComment(Comment comment)
|
public DrawableComment(Comment comment, IReadOnlyList<CommentableMeta> meta)
|
||||||
{
|
{
|
||||||
Comment = comment;
|
Comment = comment;
|
||||||
|
Meta = meta;
|
||||||
}
|
}
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
|
@ -60,7 +60,7 @@ namespace osu.Game.Overlays.Comments
|
|||||||
foreach (var comment in cb.Comments)
|
foreach (var comment in cb.Comments)
|
||||||
comment.ParentComment = parentComment;
|
comment.ParentComment = parentComment;
|
||||||
|
|
||||||
var drawables = cb.Comments.Select(commentsContainer.GetDrawableComment).ToArray();
|
var drawables = cb.Comments.Select(c => commentsContainer.GetDrawableComment(c, cb.CommentableMeta)).ToArray();
|
||||||
OnPost?.Invoke(drawables);
|
OnPost?.Invoke(drawables);
|
||||||
|
|
||||||
OnCancel!.Invoke();
|
OnCancel!.Invoke();
|
||||||
|
Loading…
Reference in New Issue
Block a user