Example #1
0
        public void SetDefSetting(RecSettingData set, bool isDisplayManual = false)
        {
            recSetting = set.Clone();

            //"登録時"を追加する。既存があれば追加前に削除する。検索ダイアログの上下ボタンの移動用のコード。
            comboBox_preSet.Items.Remove(FindPresetItem(RecPresetItem.CustomID));
            comboBox_preSet.Items.Add(new RecPresetItem("登録時", RecPresetItem.CustomID, set.Clone()));

            //該当するものがあれば選択、無ければ"登録時"。一応特定条件下で齟齬が出ないように2回検索にしておく。
            object target = FindPresetItem(set.LookUpPreset(isDisplayManual).ID);

            if (target == null)
            {
                target = comboBox_preSet.Items[comboBox_preSet.Items.Count - 1];
            }

            //強制更新
            comboBox_preSet.SelectedItem = null;
            loadingDefSetting            = true;
            comboBox_preSet.SelectedItem = target;
        }
Example #2
0
        protected override void mcs_ctxmLoading_switch(ContextMenu ctxm, MenuItem menu)
        {
            var view = (menu.CommandParameter as EpgCmdParam).Code;

            //有効無効制御の追加分。予約データが無ければ無効
            new List <ICommand> {
                EpgCmdsEx.ChgMenu, EpgCmds.CopyItem, EpgCmds.DeleteAll, EpgCmds.Play, EpgCmds.SetRecTag
            }.ForEach(icmd =>
            {
                if (menu.Tag == icmd)
                {
                    menu.IsEnabled = dataList.Count != 0;
                }
            });

            var CheckReservableEpg = new Func <MenuItem, List <EpgEventInfo>, bool>((mi, list) =>
            {
                if (list.Count != 0 && list.Count(data => data.IsReservable == true) == 0)
                {
                    mi.IsEnabled = false;
                    mi.ToolTip   = "放映終了";
                }
                return(mi.IsEnabled);
            });

            //switch使えないのでifで回す。
            if (menu.Tag == EpgCmds.ChgOnOff)
            {
                menu.IsEnabled = dataList.Count + eventListEx.Count != 0;
                menu.Header    = view == CtxmCode.ReserveView || dataList.Count != 0 ? "予約←→無効" : "簡易予約";
                //予約データの有無で切り替える。
                if (dataList.Count == 0)
                {
                    if (CheckReservableEpg(menu, eventListEx) == true)
                    {
                        RecSettingData setInfo = GetRecSetting();
                        if (setInfo != null)
                        {
                            RecPresetItem preset = setInfo.LookUpPreset();
                            string        text   = preset.IsCustom == true ? "カスタム設定" : string.Format("プリセット'{0}'", preset.DisplayName);
                            menu.ToolTip = string.Format("現在の録画設定({0})で予約する", text);
                        }
                        else
                        {
                            menu.ToolTip = "プリセット'デフォルト'で予約する";
                        }
                    }
                }
                else
                {
                    menu.Visibility = Visibility.Visible;
                    if (view == CtxmCode.TunerReserveView && Settings.Instance.MenuSet.IsManualAssign.Contains(view) == false)
                    {
                        //簡易メニュー時は、無効列非表示のとき表示しない。
                        if (Settings.Instance.TunerDisplayOffReserve == false)
                        {
                            menu.Visibility = Visibility.Collapsed;
                        }
                    }
                }
            }
            else if (menu.Tag == EpgCmdsEx.AddMenu)
            {
                if (CheckReservableEpg(menu, eventListAdd) == true)
                {
                    menu.IsEnabled = eventListAdd.Count != 0;//未予約アイテムがあれば有効
                    mm.CtxmGenerateAddOnPresetItems(menu);
                    mcs_SetSingleMenuEnabled(menu, HasList == false || IsMultiReserve == true || headData is EpgEventInfo);
                }
                var s = menu.Header as string;
                menu.Header = (IsMultiReserve == true ? "重複予約追加" : "予約追加") + s.Substring(s.Length - 4);
            }
            else if (menu.Tag == EpgCmdsEx.ChgMenu)
            {
                mcs_chgMenuOpening(menu, true);
                mcs_SetSingleMenuEnabled(menu, headData is ReserveData);
            }
            else if (menu.Tag == EpgCmds.CopyItem)
            {
                menu.IsEnabled &= !Settings.Instance.MenuSet.ShowCopyDialog || headData is ReserveData;
            }
            else if (menu.Tag == EpgCmds.Delete)
            {
                menu.IsEnabled = dataList.Any() || recinfoList.GetNoProtectedList().Any();
            }
            else if (menu.Tag == EpgCmds.JumpReserve)
            {
                mcs_ctxmLoading_jumpTabRes(menu);
                menu.Visibility = mcs_GetNextReserve() != null || headDataEv == null || headDataEv.IsOver() == false ? Visibility.Visible : Visibility.Collapsed;
            }
            else if (menu.Tag == EpgCmds.JumpRecInfo)
            {
                //予約状況によってはJumpReserveと両方表示する場合もある
                menu.IsEnabled  = headDataRec != null;
                menu.Visibility = menu.IsEnabled || headDataEv != null && headDataEv.IsOver() == true ? Visibility.Visible : Visibility.Collapsed;
            }
            else if (menu.Tag == EpgCmds.JumpTuner)
            {
                mcs_ctxmLoading_jumpTabRes(menu);
            }
            else if (menu.Tag == EpgCmds.JumpTable)
            {
                if (view != CtxmCode.EpgView)
                {
                    mcs_ctxmLoading_jumpTabEpg(menu);
                    return;
                }

                //標準モードでは非表示。
                if ((int)ctxm.Tag == 0)
                {
                    menu.Visibility = Visibility.Collapsed;
                }
            }
            else if (menu.Tag == EpgCmdsEx.ShowAutoAddDialogMenu)
            {
                menu.IsEnabled = mm.CtxmGenerateChgAutoAdd(menu, headData);
            }
            else if (menu.Tag == EpgCmds.Play)
            {
                //予約状況によっては予約用と録画済み用の両方表示する場合もある
                if ((menu.CommandParameter as EpgCmdParam).ID == 0)
                {
                    menu.IsEnabled = false;
                    var info = headData as ReserveData;
                    if (info != null && info.IsEnabled == true)
                    {
                        if (info.IsOnRec() == true)
                        {
                            menu.IsEnabled = true;
                        }
                        else
                        {
                            menu.ToolTip = "まだ録画が開始されていません。";
                        }
                    }
                    menu.Visibility = menu.IsEnabled || (headDataEv is EpgEventInfo && !headDataEv.IsOver()) ? Visibility.Visible : Visibility.Collapsed;
                }
                else
                {
                    menu.IsEnabled  = headDataRec != null;
                    menu.Visibility = menu.IsEnabled || (headDataEv is EpgEventInfo && headDataEv.IsOver()) ? Visibility.Visible : Visibility.Collapsed;
                }
            }
            else if (menu.Tag == EpgCmdsEx.OpenFolderMenu)
            {
                mm.CtxmGenerateOpenFolderItems(menu, headData is ReserveData ? dataList[0].RecSetting : null, headDataRec != null ? headDataRec.RecFilePath : null, !(ctxm.Tag is int && (int)(ctxm.Tag) != 2));
            }
            else if (menu.Tag == EpgCmdsEx.ViewMenu)
            {
                foreach (var item in menu.Items.OfType <MenuItem>().Where(item => item.Tag == EpgCmds.ViewChgMode))
                {
                    item.IsChecked = ((item.CommandParameter as EpgCmdParam).ID == (int)ctxm.Tag);
                }
            }
        }
Example #3
0
        public void SetDefSetting(RecSettingData set, bool isDisplayManual = false)
        {
            recSetting = set.Clone();

            //"登録時"を追加する。既存があれば追加前に削除する。検索ダイアログの上下ボタンの移動用のコード。
            comboBox_preSet.Items.Remove(FindPresetItem(0xFFFFFFFF));
            comboBox_preSet.Items.Add(new RecPresetItem("登録時", 0xFFFFFFFF, set.Clone()));

            //該当するものがあれば選択、無ければ"登録時"。一応特定条件下で齟齬が出ないように2回検索にしておく。
            object target = FindPresetItem(set.LookUpPreset(isDisplayManual).ID);
            if (target == null) target = comboBox_preSet.Items[comboBox_preSet.Items.Count - 1];

            //強制更新
            comboBox_preSet.SelectedItem = null;
            loadingDefSetting = true;
            comboBox_preSet.SelectedItem = target;
        }