mirror of
https://github.com/ppy/osu.git
synced 2024-12-15 02:42:54 +08:00
DeletedChildsPlaceholder refactor
This commit is contained in:
parent
795ce81468
commit
60954f969d
@ -33,6 +33,8 @@ namespace osu.Game.Overlays.Comments
|
|||||||
|
|
||||||
private readonly Box background;
|
private readonly Box background;
|
||||||
private readonly FillFlowContainer content;
|
private readonly FillFlowContainer content;
|
||||||
|
private readonly FillFlowContainer footer;
|
||||||
|
private readonly DeletedChildsPlaceholder deletedChildsPlaceholder;
|
||||||
|
|
||||||
public CommentsContainer(CommentableType type, long id)
|
public CommentsContainer(CommentableType type, long id)
|
||||||
{
|
{
|
||||||
@ -64,6 +66,32 @@ namespace osu.Game.Overlays.Comments
|
|||||||
RelativeSizeAxes = Axes.X,
|
RelativeSizeAxes = Axes.X,
|
||||||
AutoSizeAxes = Axes.Y,
|
AutoSizeAxes = Axes.Y,
|
||||||
Direction = FillDirection.Vertical,
|
Direction = FillDirection.Vertical,
|
||||||
|
},
|
||||||
|
new Container
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.X,
|
||||||
|
AutoSizeAxes = Axes.Y,
|
||||||
|
Children = new Drawable[]
|
||||||
|
{
|
||||||
|
new Box
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
Colour = OsuColour.Gray(0.2f)
|
||||||
|
},
|
||||||
|
footer = new FillFlowContainer
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.X,
|
||||||
|
AutoSizeAxes = Axes.Y,
|
||||||
|
Direction = FillDirection.Vertical,
|
||||||
|
Children = new Drawable[]
|
||||||
|
{
|
||||||
|
deletedChildsPlaceholder = new DeletedChildsPlaceholder
|
||||||
|
{
|
||||||
|
ShowDeleted = { BindTarget = ShowDeleted }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -121,10 +149,7 @@ namespace osu.Game.Overlays.Comments
|
|||||||
deletedComments++;
|
deletedComments++;
|
||||||
});
|
});
|
||||||
|
|
||||||
content.Add(new DeletedChildsPlaceholder(deletedComments)
|
deletedChildsPlaceholder.DeletedCount.Value = deletedComments;
|
||||||
{
|
|
||||||
ShowDeleted = { BindTarget = ShowDeleted }
|
|
||||||
});
|
|
||||||
}, loadCancellation.Token);
|
}, loadCancellation.Token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,18 +17,18 @@ namespace osu.Game.Overlays.Comments
|
|||||||
private const int margin = 10;
|
private const int margin = 10;
|
||||||
|
|
||||||
public readonly BindableBool ShowDeleted = new BindableBool();
|
public readonly BindableBool ShowDeleted = new BindableBool();
|
||||||
|
public readonly BindableInt DeletedCount = new BindableInt();
|
||||||
|
|
||||||
private readonly bool canBeVisible;
|
private bool canBeShown;
|
||||||
|
|
||||||
public DeletedChildsPlaceholder(int count)
|
private readonly SpriteText countText;
|
||||||
|
|
||||||
|
public DeletedChildsPlaceholder()
|
||||||
{
|
{
|
||||||
canBeVisible = count != 0;
|
|
||||||
|
|
||||||
AutoSizeAxes = Axes.Both;
|
AutoSizeAxes = Axes.Both;
|
||||||
Direction = FillDirection.Horizontal;
|
Direction = FillDirection.Horizontal;
|
||||||
Spacing = new Vector2(3, 0);
|
Spacing = new Vector2(3, 0);
|
||||||
Margin = new MarginPadding { Vertical = margin, Left = deleted_placeholder_margin };
|
Margin = new MarginPadding { Vertical = margin, Left = deleted_placeholder_margin };
|
||||||
Alpha = 0;
|
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new SpriteIcon
|
new SpriteIcon
|
||||||
@ -36,24 +36,38 @@ namespace osu.Game.Overlays.Comments
|
|||||||
Icon = FontAwesome.Solid.Trash,
|
Icon = FontAwesome.Solid.Trash,
|
||||||
Size = new Vector2(14),
|
Size = new Vector2(14),
|
||||||
},
|
},
|
||||||
new SpriteText
|
countText = new SpriteText
|
||||||
{
|
{
|
||||||
Font = OsuFont.GetFont(size: 14, weight: FontWeight.Bold, italics: true),
|
Font = OsuFont.GetFont(size: 14, weight: FontWeight.Bold, italics: true),
|
||||||
Text = $@"{count} deleted comment{(count.ToString().ToCharArray().Last() == '1' ? "" : "s")}"
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
|
DeletedCount.BindValueChanged(onCountChanged, true);
|
||||||
ShowDeleted.BindValueChanged(onShowDeletedChanged, true);
|
ShowDeleted.BindValueChanged(onShowDeletedChanged, true);
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onShowDeletedChanged(ValueChangedEvent<bool> showDeleted)
|
private void onShowDeletedChanged(ValueChangedEvent<bool> showDeleted)
|
||||||
{
|
{
|
||||||
if (canBeVisible)
|
if (canBeShown)
|
||||||
this.FadeTo(showDeleted.NewValue ? 0 : 1);
|
this.FadeTo(showDeleted.NewValue ? 0 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onCountChanged(ValueChangedEvent<int> count)
|
||||||
|
{
|
||||||
|
canBeShown = count.NewValue != 0;
|
||||||
|
|
||||||
|
if (!canBeShown)
|
||||||
|
{
|
||||||
|
Hide();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
countText.Text = $@"{count.NewValue} deleted comment{(count.NewValue.ToString().ToCharArray().Last() == '1' ? "" : "s")}";
|
||||||
|
Show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@ namespace osu.Game.Overlays.Comments
|
|||||||
|
|
||||||
private readonly FillFlowContainer childCommentsVisibilityContainer;
|
private readonly FillFlowContainer childCommentsVisibilityContainer;
|
||||||
private readonly Comment comment;
|
private readonly Comment comment;
|
||||||
|
private readonly DeletedChildsPlaceholder deletedChildsPlaceholder;
|
||||||
|
|
||||||
public DrawableComment(Comment comment)
|
public DrawableComment(Comment comment)
|
||||||
{
|
{
|
||||||
@ -168,7 +169,7 @@ namespace osu.Game.Overlays.Comments
|
|||||||
AutoSizeAxes = Axes.Y,
|
AutoSizeAxes = Axes.Y,
|
||||||
Direction = FillDirection.Vertical
|
Direction = FillDirection.Vertical
|
||||||
},
|
},
|
||||||
new DeletedChildsPlaceholder(comment.GetDeletedChildsCount())
|
deletedChildsPlaceholder = new DeletedChildsPlaceholder
|
||||||
{
|
{
|
||||||
ShowDeleted = { BindTarget = ShowDeleted }
|
ShowDeleted = { BindTarget = ShowDeleted }
|
||||||
}
|
}
|
||||||
@ -177,6 +178,8 @@ namespace osu.Game.Overlays.Comments
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
deletedChildsPlaceholder.DeletedCount.Value = comment.GetDeletedChildsCount();
|
||||||
|
|
||||||
if (comment.UserId == null)
|
if (comment.UserId == null)
|
||||||
username.AddText(comment.LegacyName);
|
username.AddText(comment.LegacyName);
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user