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