public void StopPlayingPreview() { if (currentlyPlaying == null) { return; } currentlyPlaying.PreviewPlaying.Value = false; currentlyPlaying = null; }
protected override void ShowMore() { base.ShowMore(); var req = new GetUserBeatmapsRequest(User.Value.Id, type, VisiblePages++ *ItemsPerPage); req.Success += sets => { ShowMoreButton.FadeTo(sets.Count == ItemsPerPage ? 1 : 0); ShowMoreLoading.Hide(); if (!sets.Any()) { MissingText.Show(); return; } foreach (var s in sets) { if (!s.OnlineBeatmapSetID.HasValue) { continue; } var panel = new DirectGridPanel(s.ToBeatmapSet(Rulesets)); ItemsContainer.Add(panel); panel.PreviewPlaying.ValueChanged += isPlaying => { if (!isPlaying) { return; } if (currentlyPlaying != null && currentlyPlaying != panel) { currentlyPlaying.PreviewPlaying.Value = false; } currentlyPlaying = panel; }; } }; Api.Queue(req); }
private void recreatePanels(PanelDisplayStyle displayStyle) { if (panels != null) { panels.FadeOut(200); panels.Expire(); panels = null; if (playing != null) { playing.PreviewPlaying.Value = false; playing = null; } } if (BeatmapSets == null) { return; } var newPanels = new FillFlowContainer <DirectPanel> { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Spacing = new Vector2(panel_padding), Margin = new MarginPadding { Top = 10 }, ChildrenEnumerable = BeatmapSets.Select <BeatmapSetInfo, DirectPanel>(b => { switch (displayStyle) { case PanelDisplayStyle.Grid: return(new DirectGridPanel(b) { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, }); default: return(new DirectListPanel(b)); } }) }; LoadComponentAsync(newPanels, p => { if (panels != null) { ScrollFlow.Remove(panels); } ScrollFlow.Add(panels = newPanels); foreach (DirectPanel panel in p.Children) { panel.PreviewPlaying.ValueChanged += newValue => { if (newValue) { if (playing != null && playing != panel) { playing.PreviewPlaying.Value = false; } playing = panel; } } } ; }); }