protected void autoadd_add_chg(ExecutedRoutedEventArgs e, int code) { bool ret = false; try { AutoAddData data = GetData(); if (data != null && CheckAutoAddChange(e, code) == 0) { if (code == 0) { ret = MenuUtil.AutoAddAdd(CommonUtil.ToList(data)); if (ret == true) { //割り当てられたIDが欲しいだけなのでEpgTimer内のもろもろは再構築せず、Srvからデータだけ取得する。 SetData(AutoAddData.GetAutoAddListSrv(typeof(S)).LastOrDefault() as S); SetViewMode(AutoAddMode.Change); } } else { ret = MenuUtil.AutoAddChange(CommonUtil.ToList(data)); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } StatusManager.StatusNotifySet(ret, AutoAddString + "を" + cmdMsg[code]); }
protected virtual int CheckAutoAddChange(ExecutedRoutedEventArgs e, int proc) { if (proc != 3) { if (CmdExeUtil.IsDisplayKgMessage(e) == true) { if (MessageBox.Show(AutoAddString + "を" + cmdMsg[proc] + "します。\r\nよろしいですか?", cmdMsg[proc] + "の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return(-2); } } } else { if (CmdExeUtil.CheckAllProcCancel(e, CommonUtil.ToList(autoAddData), true) == true) { return(-1); } } if (proc != 0) { if (autoAddData == null) { MessageBox.Show("項目がありません。\r\n" + "既に削除されています。", "データエラー", MessageBoxButton.OK, MessageBoxImage.Exclamation); SetViewMode(AutoAddMode.NewAdd); return(1); } } return(0); }
public static bool ReserveChangeResModeAutoAdded(List <ReserveData> itemList, AutoAddData autoAdd) { if (ReserveDelete(itemList, false) == false) { return(false); } return(AutoAddChange(CommonUtil.ToList(autoAdd), false, false, true, true)); }
private void button_del2_click(object sender, ExecutedRoutedEventArgs e) { if (CheckAutoAddChange(e, 3) == false) { return; } // bool ret = MenuUtil.AutoAddDelete(CommonUtil.ToList(defKey), cmdDeleteType.Delete2); CommonManager.Instance.StatusNotifySet(ret, "プログラム予約登録を予約ごと削除"); DialogResult = true; }
private void button_chg_epgAutoAdd_Click(object sender, ExecutedRoutedEventArgs e) { bool ret = false; try { ret = CheckAutoAddChange(e, 1); if (ret == true) { ret = MenuUtil.AutoAddChange(CommonUtil.ToList(this.GetAutoAddData())); } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } CommonManager.Instance.StatusNotifySet(ret, "キーワード予約を変更", this); }
public RecInfoDescWindow(RecFileInfo info = null) { InitializeComponent(); try { base.SetParam(false, checkBox_windowPinned, checkBox_dataReplace); //最初にコマンド集の初期化 mc = new CmdExeRecinfo(this); mc.SetFuncGetDataList(isAll => CommonUtil.ToList(recInfo)); //コマンド集に無いもの,変更するもの mc.AddReplaceCommand(EpgCmds.Play, (sender, e) => CommonManager.Instance.FilePlay(recInfo.RecFilePath), (sender, e) => e.CanExecute = recInfo != null); mc.AddReplaceCommand(EpgCmds.Cancel, (sender, e) => this.Close()); mc.AddReplaceCommand(EpgCmds.BackItem, (sender, e) => MoveViewNextItem(-1)); mc.AddReplaceCommand(EpgCmds.NextItem, (sender, e) => MoveViewNextItem(1)); mc.AddReplaceCommand(EpgCmds.DeleteInDialog, info_del, (sender, e) => e.CanExecute = recInfo != null && recInfo.ProtectFlag == 0); mc.AddReplaceCommand(EpgCmds.ChgOnOffCheck, (sender, e) => EpgCmds.ProtectChange.Execute(null, this)); //コマンド集からコマンドを登録 mc.ResetCommandBindings(this); //ボタンの設定 mBinds.View = CtxmCode.RecInfoView; mBinds.SetCommandToButton(button_play, EpgCmds.Play); mBinds.SetCommandToButton(button_cancel, EpgCmds.Cancel); mBinds.SetCommandToButton(button_up, EpgCmds.BackItem); mBinds.SetCommandToButton(button_down, EpgCmds.NextItem); mBinds.SetCommandToButton(button_del, EpgCmds.DeleteInDialog); mBinds.AddInputCommand(EpgCmds.ProtectChange);//ショートカット登録 RefreshMenu(); button_del.ToolTipOpening += (sender, e) => button_del.ToolTip = (button_del.ToolTip as string + (IniFileHandler.GetPrivateProfileBool("SET", "RecInfoDelFile", false, SettingPath.CommonIniPath) ? "\r\n録画ファイルが存在する場合は一緒に削除されます。" : "")).Trim(); grid_protect.ToolTipOpening += (sender, e) => grid_protect.ToolTip = ("" + MenuBinds.GetInputGestureTextView(EpgCmds.ProtectChange, mBinds.View) + "\r\nプロテクト設定/解除").Trim(); //ステータスバーの設定 this.statusBar.Status.Visibility = Visibility.Collapsed; StatusManager.RegisterStatusbar(this.statusBar, this); ChangeData(info); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
private void button_add_reserve_Click(object sender, ExecutedRoutedEventArgs e) { if (CmdExeUtil.IsDisplayKgMessage(e) == true) { if (MessageBox.Show("予約を追加します。\r\nよろしいですか?", "追加の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return; } } bool ret = MenuUtil.ReserveAdd(CommonUtil.ToList(eventInfo), recSettingView); CommonManager.Instance.StatusNotifySet(ret, "録画予約を追加"); if (ret == false) { return; } DialogResult = true; }
private void reserve_proc(ExecutedRoutedEventArgs e, int proc) { if (CmdExeUtil.IsMessageBeforeCommand(e) == true) { if (MessageBox.Show("予約を" + cmdMsg[proc] + "します。\r\nよろしいですか?", cmdMsg[proc] + "の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return; } } bool ret = false; if (proc == 0) { ret = MenuUtil.ReserveAdd(CommonUtil.ToList(eventInfo), recSettingView); } else { List <ReserveData> list = GetReserveList(); if (proc == 1) { RecSettingData recSet = recSettingView.GetRecSetting(); list.ForEach(data => data.RecSetting = recSet); ret = MenuUtil.ReserveChange(list); } else { ret = MenuUtil.ReserveDelete(list); } } StatusManager.StatusNotifySet(ret, "録画予約を" + cmdMsg[proc]); if (ret == false) { return; } if (KeepWin == false) { this.Close(); } }
private void button_del_epgAutoAdd_Click(object sender, ExecutedRoutedEventArgs e) { bool ret = false; try { ret = CheckAutoAddChange(e, 2); if (ret == true) { ret = MenuUtil.AutoAddDelete(CommonUtil.ToList(CommonManager.Instance.DB.EpgAutoAddList[autoAddID])); if (ret == true) { SetViewMode(SearchMode.NewAdd); this.autoAddID = 0; } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } CommonManager.Instance.StatusNotifySet(ret, "キーワード予約を削除", this); }
private void button_del_reserve_Click(object sender, ExecutedRoutedEventArgs e) { if (CmdExeUtil.IsDisplayKgMessage(e) == true) { if (MessageBox.Show("この予約を削除します。\r\nよろしいですか?", "削除の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return; } } if (CheckExistReserveItem() == false) { return; } bool ret = MenuUtil.ReserveDelete(CommonUtil.ToList(reserveInfo)); CommonManager.Instance.StatusNotifySet(ret, "録画予約を削除"); DialogResult = true; }
private void button_add_epgAutoAdd_Click(object sender, ExecutedRoutedEventArgs e) { bool ret = false; try { ret = CheckAutoAddChange(e, 0); if (ret == true) { //一覧画面非表示の状態から実施する場合のためのコード if (autoAddView.IsVisible == false && CommonManager.Instance.DB.EpgAutoAddList.Count == 0) { CommonManager.Instance.DB.SetUpdateNotify((UInt32)UpdateNotifyItem.AutoAddEpgInfo); CommonManager.Instance.DB.ReloadEpgAutoAddInfo(); } List <uint> oldlist = CommonManager.Instance.DB.EpgAutoAddList.Keys.ToList(); ret = MenuUtil.AutoAddAdd(CommonUtil.ToList(this.GetAutoAddData())); if (ret == true) { //以降の処理をEpgTimerSrvからの更新通知後に実行すればReload減らせるが、トラブル増えそうなのでこのまま。 CommonManager.Instance.DB.SetUpdateNotify((UInt32)UpdateNotifyItem.AutoAddEpgInfo); CommonManager.Instance.DB.ReloadEpgAutoAddInfo(); List <uint> newlist = CommonManager.Instance.DB.EpgAutoAddList.Keys.ToList(); List <uint> diflist = newlist.Except(oldlist).ToList(); if (diflist.Count == 1) { ChangeAutoAddData(CommonManager.Instance.DB.EpgAutoAddList[diflist[0]], false); } } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } CommonManager.Instance.StatusNotifySet(ret, "キーワード予約を追加", this); }
private void SearchPg(bool addSearchLog = false) { if (addSearchLog == true) { searchKeyView.AddSearchLog(); } lstCtrl.ReloadInfoData(dataList => { EpgSearchKeyInfo key = GetSearchKey(); key.keyDisabledFlag = 0; //無効解除 var list = new List <EpgEventInfo>(); cmd.SendSearchPg(CommonUtil.ToList(key), ref list); lstCtrl.dataList.AddFromEventList(list, false, true); return(true); }); UpdateStatus(); SetRecSettingTabHeader(null, null); WindowTitleSet(); }
private void SearchPg(bool addSearchLog = false) { if (addSearchLog == true) { searchKeyView.AddSearchLog(); } lstCtrl.ReloadInfoData(dataList => { EpgSearchKeyInfo key = GetSearchKey(); key.keyDisabledFlag = 0; //無効解除 var list = new List <EpgEventInfo>(); CommonManager.CreateSrvCtrl().SendSearchPg(CommonUtil.ToList(key), ref list); dataList.AddRange(list.ToSearchList(true)); return(true); }); UpdateStatus(); SetRecSettingTabHeader(false); SetWindowTitle(); }
private void reserve_del(object sender, ExecutedRoutedEventArgs e) { if (CheckReserveChange(e, 2) == false) { return; } bool ret = MenuUtil.ReserveDelete(CommonUtil.ToList(reserveInfo)); StatusManager.StatusNotifySet(ret, "録画予約を削除"); if (ret == false) { return; } if (KeepWin == false) { this.Close(); return; } SetAddMode(AddMode.Re_Add); SetReserveTabHeader(false); }
//proc 0:追加、1:変更、2:削除、3:予約ごと削除 private bool CheckAutoAddChange(ExecutedRoutedEventArgs e, int proc) { if (proc != 3) { if (CmdExeUtil.IsDisplayKgMessage(e) == true) { var strMode = new string[] { "追加", "変更", "削除" }[proc]; if (MessageBox.Show("プログラム予約登録を" + strMode + "します。\r\nよろしいですか?", strMode + "の確認", MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return(false); } } } else { if (CmdExeUtil.CheckAllProcCancel(e, CommonUtil.ToList(defKey), cmdCheckType.Delete2) == true) { return(false); } } if (proc != 0) { if (CommonManager.Instance.DB.ManualAutoAddList.ContainsKey(this.defKey.dataID) == false) { MessageBox.Show("項目がありません。\r\n" + "既に削除されています。\r\n" + "(別のEpgtimerによる操作など)", "データエラー", MessageBoxButton.OK, MessageBoxImage.Exclamation); //追加モードに変更 SetChangeMode(false); defKey = null; return(false); } } return(true); }
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); } }
private void button_chg_reserve_Click(object sender, ExecutedRoutedEventArgs e) { try { if (CmdExeUtil.IsDisplayKgMessage(e) == true) { bool change_proc = false; switch (addMode) { case AddMode.Add: change_proc = (MessageBox.Show("予約を追加します。\r\nよろしいですか?", "予約の確認", MessageBoxButton.OKCancel) == MessageBoxResult.OK); break; case AddMode.Re_Add: change_proc = (MessageBox.Show("この内容で再予約します。\r\nよろしいですか?", "再予約の確認", MessageBoxButton.OKCancel) == MessageBoxResult.OK); break; case AddMode.Change: change_proc = (MessageBox.Show("この予約を変更します。\r\nよろしいですか?", "変更の確認", MessageBoxButton.OKCancel) == MessageBoxResult.OK); break; } if (change_proc == false) { return; } } if (addMode == AddMode.Change && CheckExistReserveItem() == false) { return; } //ダイアログを閉じないときはreserveInfoを変更しないよう注意する if (ReserveMode == UIReserveMode.Program) { var resInfo = new ReserveData(); if (GetReserveTimeInfo(ref resInfo) == -2) { MessageBox.Show("終了日時が開始日時より前です"); return; } //reserveInfo取得前に保存する。サービスや時間が変わったら、個別予約扱いにする。タイトルのみ変更は見ない。 bool chgManualMode = !CtrlCmdDefEx.EqualsPg(resInfo, reserveInfo, false, true); GetReserveTimeInfo(ref reserveInfo); if (reserveInfo.EventID != 0xFFFF || chgManualMode == true) { reserveInfo.EventID = 0xFFFF; reserveInfo.Comment = ""; } reserveInfo.StartTimeEpg = reserveInfo.StartTime; } else if (ReserveMode == UIReserveMode.EPGManual) { //EPG予約に変える場合、またはEPG予約で別の番組に変わる場合 if (eventInfoNew != null) { //基本的にAddReserveEpgWindowと同じ処理内容 if (MenuUtil.IsEnableReserveAdd(eventInfoNew) == false) { return; } eventInfoNew.ConvertToReserveData(ref reserveInfo); reserveInfo.Comment = ""; } // 自動予約から個別予約に変える場合 else if (GetReserveModeFromInfo() == UIReserveMode.EPGAuto) { reserveInfo.Comment = ""; } } reserveInfo.RecSetting = recSettingView.GetRecSetting(); if (addMode == AddMode.Change) { bool ret = MenuUtil.ReserveChange(CommonUtil.ToList(reserveInfo)); CommonManager.Instance.StatusNotifySet(ret, "録画予約を変更"); } else { bool ret = MenuUtil.ReserveAdd(CommonUtil.ToList(reserveInfo)); CommonManager.Instance.StatusNotifySet(ret, "録画予約を追加"); } // EPG自動予約以外になったら戻せないようにしておく if (ReserveMode != UIReserveMode.EPGAuto) { CanSelectAutoAdd = false; } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } DialogResult = true; }
private void button_add_chg(object sender, ExecutedRoutedEventArgs e, bool chgFlag) { try { UInt32 startTime = ((UInt32)comboBox_startHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_startMM.SelectedIndex * 60) + (UInt32)comboBox_startSS.SelectedIndex; UInt32 endTime = ((UInt32)comboBox_endHH.SelectedIndex * 60 * 60) + ((UInt32)comboBox_endMM.SelectedIndex * 60) + (UInt32)comboBox_endSS.SelectedIndex; while (endTime < startTime) { endTime += 24 * 60 * 60; } UInt32 duration = endTime - startTime; if (duration >= 24 * 60 * 60) { //深夜時間帯の処理の関係で、不可条件が新たに発生しているため、その対応。 MessageBox.Show("24時間以上の録画時間は設定出来ません。", "録画時間長の確認", MessageBoxButton.OK); return; } if (CheckAutoAddChange(e, chgFlag == false ? 0 : 1) == false) { return; } // if (defKey == null) { defKey = new ManualAutoAddData(); } defKey.startTime = startTime; defKey.durationSecond = duration; defKey.dayOfWeekFlag = 0; if (checkBox_week0.IsChecked == true) { defKey.dayOfWeekFlag |= 0x01; } if (checkBox_week1.IsChecked == true) { defKey.dayOfWeekFlag |= 0x02; } if (checkBox_week2.IsChecked == true) { defKey.dayOfWeekFlag |= 0x04; } if (checkBox_week3.IsChecked == true) { defKey.dayOfWeekFlag |= 0x08; } if (checkBox_week4.IsChecked == true) { defKey.dayOfWeekFlag |= 0x10; } if (checkBox_week5.IsChecked == true) { defKey.dayOfWeekFlag |= 0x20; } if (checkBox_week6.IsChecked == true) { defKey.dayOfWeekFlag |= 0x40; } //開始時刻を0~24時に調整する。 defKey.RegulateData(); defKey.IsEnabled = checkBox_keyDisabled.IsChecked != true; defKey.title = textBox_title.Text; ChSet5Item chItem = comboBox_service.SelectedItem as ChSet5Item; defKey.stationName = chItem.ServiceName; defKey.originalNetworkID = chItem.ONID; defKey.transportStreamID = chItem.TSID; defKey.serviceID = chItem.SID; defKey.recSetting = recSettingView.GetRecSetting(); if (chgFlag == true) { bool ret = MenuUtil.AutoAddChange(CommonUtil.ToList(defKey)); CommonManager.Instance.StatusNotifySet(ret, "プログラム予約登録を変更"); } else { bool ret = MenuUtil.AutoAddAdd(CommonUtil.ToList(defKey)); CommonManager.Instance.StatusNotifySet(ret, "プログラム予約登録を追加"); } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } DialogResult = true; }