Esempio n. 1
0
        /// <summary>
        /// AddPresetCommand の実処理を行う。
        /// </summary>
        /// <param name="preset">プリセット。</param>
        private void ExecuteAddPresetCommand(TalkTextReplacePreset preset)
        {
            if (preset == null)
            {
                return;
            }

            foreach (var p in preset.Items)
            {
                // 置換元文字列が同じアイテムを探す
                var found =
                    this.Items.Value
                    .Select((item, index) => new { item, index })
                    .FirstOrDefault(v => v.item.OldValue == p.OldValue);

                if (found == null)
                {
                    // 無いので新規追加
                    this.Items.Value.Add(p.Clone());
                    this.SelectedIndex.Value = this.Items.Value.Count - 1;
                }
                else
                {
                    // あるので上書き
                    this.Items.Value[found.index] = p.Clone();
                    this.SelectedIndex.Value      = found.index;
                }
            }
        }
        /// <summary>
        /// 内包 ViewModel のセットアップを行う。
        /// </summary>
        private void SetupViewModels()
        {
            // ViewModel 作成
            this.VoiceReplaceItems =
                new TalkTextReplaceItemsViewModel(
                    this.CanModify,
                    this.MakeConfigProperty(c => c.VoiceReplaceItems));
            this.TextFileReplaceItems =
                new TalkTextReplaceItemsViewModel(
                    this.CanModify,
                    this.MakeConfigProperty(c => c.TextFileReplaceItems));

            // 長音プリセット設定
            var longSoundPreset = new TalkTextReplacePreset(@"「~」を「ー」に置換");

            longSoundPreset.Items.Add(
                new TalkTextReplaceItem {
                OldValue = @"~", NewValue = @"ー"
            });
            this.VoiceReplaceItems.Presets.Add(longSoundPreset);

            // 記号ポーズプリセット設定
            var symbolPausePreset = new TalkTextReplacePreset(@"記号ポーズ文字削除セット");

            symbolPausePreset.Items.Add(
                new TalkTextReplaceItem {
                OldValue = @"#", NewValue = @""
            });
            symbolPausePreset.Items.Add(
                new TalkTextReplaceItem {
                OldValue = @"#", NewValue = @""
            });
            symbolPausePreset.Items.Add(
                new TalkTextReplaceItem {
                OldValue = @"@", NewValue = @""
            });
            symbolPausePreset.Items.Add(
                new TalkTextReplaceItem {
                OldValue = @"@", NewValue = @""
            });
            symbolPausePreset.Items.Add(
                new TalkTextReplaceItem {
                OldValue = @"■", NewValue = @""
            });
            symbolPausePreset.Items.Add(
                new TalkTextReplaceItem {
                OldValue = @"●", NewValue = @""
            });
            symbolPausePreset.Items.Add(
                new TalkTextReplaceItem {
                OldValue = @"▲", NewValue = @""
            });
            this.TextFileReplaceItems.Presets.Add(symbolPausePreset);
        }