예제 #1
0
        private void load(OsuColour colours, LyricCheckerManager lyricCheckerManager)
        {
            lyricCheckerManager.BindableReports.BindCollectionChanged((i, args) =>
            {
                // Ignore remove case
                if (args.NewItems == null)
                {
                    return;
                }

                var dict = args.NewItems.ToDictionary(k => k.Key, v => v.Value);
                if (!dict.ContainsKey(lyric))
                {
                    return;
                }

                report = dict[lyric];

                switch (report.Length)
                {
                case 0:
                    Icon   = FontAwesome.Solid.CheckCircle;
                    Colour = colours.Green;
                    break;

                default:
                    Icon   = FontAwesome.Solid.TimesCircle;
                    Colour = colours.Red;
                    break;
                }
            }, true);
        }
예제 #2
0
        private void load(OsuColour colour, LyricCheckerManager lyricCheckerManager)
        {
            Children = new[]
            {
                // todo : should all invalid tag number
                table = new TimeTagIssueTable(),
            };

            bindableReports = lyricCheckerManager.BindableReports.GetBoundCopy();
            bindableReports.BindCollectionChanged((a, b) =>
            {
                // todo : might have filter in here.
                var issues   = bindableReports.Values.SelectMany(x => x);
                table.Issues = issues.OfType <TimeTagIssue>();
            }, true);
        }
예제 #3
0
        public KaraokeHitObjectComposer(Ruleset ruleset)
            : base(ruleset)
        {
            // Duplicated registration because selection handler need to use it.
            positionCalculator     = new PositionCalculator(9);
            editConfigManager      = new KaraokeRulesetEditConfigManager();
            generatorConfigManager = new KaraokeRulesetEditGeneratorConfigManager();
            checkerConfigManager   = new KaraokeRulesetEditCheckerConfigManager();

            AddInternal(exportLyricManager  = new ExportLyricManager());
            AddInternal(noteManager         = new NoteManager());
            AddInternal(lyricManager        = new LyricManager());
            AddInternal(lyricCheckerManager = new LyricCheckerManager());
            AddInternal(singerManager       = new SingerManager());
            LayerBelowRuleset.Add(languageSelectionDialog = new LanguageSelectionDialog());
        }
예제 #4
0
        private void load()
        {
            Beatmap.Value = CreateWorkingBeatmap(editorBeatmap.PlayableBeatmap);

            base.Content.AddRange(new Drawable[]
            {
                Content,
                dialogOverlay           = new DialogOverlay(),
                languageSelectionDialog = new LanguageSelectionDialog(),
                importManager           = new ImportLyricManager(),
                lyricCheckerManager     = new LyricCheckerManager()
            });

            Dependencies.Cache(dialogOverlay);
            Dependencies.Cache(languageSelectionDialog);
            Dependencies.Cache(importManager);
            Dependencies.Cache(lyricCheckerManager);
        }
        private void load(LyricCheckerManager lyricCheckerManager, NoteManager noteManager)
        {
            bindableReports = lyricCheckerManager.BindableReports.GetBoundCopy();
            bindableReports.BindCollectionChanged((a, b) =>
            {
                var hasTimeTagIssue = bindableReports.Values.SelectMany(x => x)
                                      .OfType <TimeTagIssue>().Any();

                if (hasTimeTagIssue)
                {
                    Children = new[]
                    {
                        new OsuSpriteText
                        {
                            Text = "Seems there's some time-tag issue in lyric. \nGo to time-tag edit mode then clear those issues."
                        }
                    };
                }
                else
                {
                    Children = new[]
                    {
                        new AutoGenerateButton
                        {
                            Text   = "Generate",
                            Action = () =>
                            {
                                // todo : should be able to apply only selected lyric.
                                var lyrics = beatmap.HitObjects.OfType <Lyric>().ToArray();
                                noteManager.AutoGenerateNotes(lyrics);
                            }
                        },
                    };
                }
            }, true);
        }