Esempio n. 1
0
        private void tabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            //ComboBoxのSelectionChangedにも反応するので。(WPFの仕様)
            if (sender != e.OriginalSource)
            {
                return;
            }

            selectedTab = tabControl.SelectedIndex != -1 ? tabControl.SelectedIndex : selectedTab;
            if (tabItem_program.IsSelected)
            {
                var resInfo = new ReserveData();
                GetReserveTimeInfo(ref resInfo);

                //描画軽減。人の操作では気にするほどのことはないが、保険。
                if (resInfo.IsSamePg(resInfoDisplay) == true)
                {
                    return;
                }
                resInfoDisplay = resInfo;

                EpgEventInfo eventInfo = null;
                //EPGを自動で読み込んでない時でも、元がEPG予約ならその番組情報は表示させられるようにする
                if (reserveInfo.IsEpgReserve == true && reserveInfo.IsSamePg(resInfo) == true)
                {
                    eventInfo = eventInfoNow ?? reserveInfo.ReserveEventInfo();
                }
                else
                {
                    eventInfo = eventInfoNow ?? resInfo.SearchEventInfoLikeThat();
                }

                richTextBox_descInfo.Document = CommonManager.ConvertDisplayText(eventInfo);
            }
        }
Esempio n. 2
0
        private void RefreshProgramTab(bool force = false)
        {
            var resInfo = new ReserveData();

            GetReserveTimeInfo(ref resInfo);

            //描画軽減。人の操作では気にするほどのことはないが、保険。
            if (force = false && resInfo.IsSamePg(resInfoDisplay))
            {
                return;
            }
            resInfoDisplay = resInfo;

            //EPGを自動で読み込んでない時でも、元と同じならその番組情報は表示させられるようにする
            if (reserveInfo.IsSamePg(resInfo))
            {
                resInfo = reserveInfo;
            }
            richTextBox_descInfo.Document = CommonManager.ConvertDisplayText(eventInfoNow ?? resInfo.GetPgInfo());
        }
Esempio n. 3
0
        private void reserve_add_chg(ExecutedRoutedEventArgs e, int proc)
        {
            try
            {
                if (CheckReserveChange(e, proc) == false)
                {
                    return;
                }

                var resInfo = reserveInfo.DeepClone();

                if (resModeProgram == true)
                {
                    if (GetReserveTimeInfo(ref resInfo) == -2)
                    {
                        MessageBox.Show("終了日時が開始日時より前です");
                        return;
                    }

                    //サービスや時間が変わったら、個別予約扱いにする。タイトルのみ変更は見ない。
                    if (resInfo.EventID != 0xFFFF || reserveInfo.IsSamePg(resInfo) == false)
                    {
                        resInfo.EventID = 0xFFFF;
                        resInfo.ReleaseAutoAdd();
                    }
                }
                else
                {
                    //EPG予約に変える場合、またはEPG予約で別の番組に変わる場合
                    if (eventInfoNow != null && (reserveInfo.IsManual == true || reserveInfo.IsSamePg(eventInfoNow) == false))
                    {
                        //基本的にAddReserveEpgWindowと同じ処理内容
                        if (MenuUtil.CheckReservable(CommonUtil.ToList(eventInfoNow)) == null)
                        {
                            return;
                        }
                        eventInfoNow.ConvertToReserveData(ref resInfo);
                        resInfo.ReleaseAutoAdd();
                    }
                }
                if (checkBox_releaseAutoAdd.IsChecked == true)
                {
                    resInfo.ReleaseAutoAdd();
                }

                resInfo.RecSetting = recSettingView.GetRecSetting();

                bool           ret    = false;
                HashSet <uint> oldset = null;
                if (proc == 0)
                {
                    resInfo.Comment = "";
                    oldset          = new HashSet <uint>(CommonManager.Instance.DB.ReserveList.Keys);
                    ret             = MenuUtil.ReserveAdd(CommonUtil.ToList(resInfo));
                    StatusManager.StatusNotifySet(ret, "録画予約を追加");
                }
                else
                {
                    ret = MenuUtil.ReserveChange(CommonUtil.ToList(resInfo));
                    StatusManager.StatusNotifySet(ret, "録画予約を変更");
                }
                if (ret == false)
                {
                    return;
                }

                if (KeepWin == false)
                {
                    this.Close();
                    return;
                }

                if (proc == 0)
                {
                    var list = new List <ReserveData>();
                    CommonManager.CreateSrvCtrl().SendEnumReserve(ref list);
                    var newlist = list.Where(rs => oldset.Contains(rs.ReserveID) == false).ToList();
                    if (newlist.Count == 1)
                    {
                        ChangeData(newlist[0]);
                    }
                }
                SetReserveTabHeader(false);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
        }