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); }
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); }
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()); }
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); }