public void StopPlayingPreview()
 {
     if (currentlyPlaying == null)
     {
         return;
     }
     currentlyPlaying.PreviewPlaying.Value = false;
     currentlyPlaying = null;
 }
示例#2
0
        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);
        }
示例#3
0
        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;
                        }
                    }
                }
                ;
            });
        }