Example #1
0
        /// <summary>予約一覧からのジャンプ先を番組表タブから探す</summary>
        public bool SearchJumpTargetProgram(SearchItem trg, bool dryrun = false)
        {
            try
            {
                if (trg == null)
                {
                    return(false);
                }

                var data = (AutoAddTargetData)trg.ReserveInfo ?? trg.EventInfo;
                if (data == null)
                {
                    return(false);
                }

                if (Tabs.Any() == false)//dryrun以外でここに来るときは本当にタブが無い
                {
                    var infoList = Settings.Instance.UseCustomEpgView == false?
                                   CommonManager.CreateDefaultTabInfo() : Settings.Instance.CustomEpgTabList.ToList();

                    return(infoList.Where(info => info.IsVisible == true)
                           .SelectMany(info => info.ViewServiceList).Contains(data.Create64Key()));
                }
                var tab = Tabs.OrderBy(tb => tb.IsSelected ? 0 : 1).FirstOrDefault(tb =>
                {
                    bool ret = tb.Info.ViewServiceList.Contains(data.Create64Key());
                    if (ret == true && tb.view != null && tb.IsEpgLoaded == true)
                    {
                        return(tb.view.IsEnabledJumpTab(trg));
                    }
                    return(ret);
                });
                if (tab != null && dryrun == false)
                {
                    tab.IsSelected = true;
                }
                return(tab != null);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
            return(false);
        }
Example #2
0
        /// <summary>予約一覧からのジャンプ先を番組表タブから探す</summary>
        public bool SearchJumpTargetProgram(SearchItem trg, bool dryrun = false)
        {
            try
            {
                if (trg == null)
                {
                    return(false);
                }

                var data = (AutoAddTargetData)trg.ReserveInfo ?? trg.EventInfo;
                if (data == null || data.PgStartTime == DateTime.MaxValue)
                {
                    return(false);
                }

                var tabs = Tabs.Where(t => t.Info.JumpTarget).OrderBy(tb => !tb.IsSelected).ToList();
                if (tabs.Any() == false)//dryrun以外でここに来るときは本当にタブが無い
                {
                    var infoList = Settings.Instance.UseCustomEpgView == false?
                                   CommonManager.CreateDefaultTabInfo() : Settings.Instance.CustomEpgTabList.ToList();

                    return(infoList.Where(info => info.IsVisible && info.JumpTarget)
                           .SelectMany(info => CommonManager.Instance.DB.ExpandSpecialKey(info.ViewServiceList)).Contains(data.Create64Key()));
                }

                //表示されてるものがなければキーを持っているタブを当たる
                var tab = tabs.FirstOrDefault(tb => tb.view != null && tb.IsEpgLoaded && tb.view.IsEnabledJumpTab(trg))
                          ?? tabs.FirstOrDefault(tb => tb.HasKey(data.Create64Key()));

                if (tab != null && dryrun == false)
                {
                    tab.IsSelected = true;
                }
                return(tab != null);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); }
            return(false);
        }
Example #3
0
        /// <summary>タブ生成</summary>
        private bool CreateTabItem()
        {
            try
            {
                tabInfo = Settings.Instance.UseCustomEpgView == false?
                          CommonManager.CreateDefaultTabInfo() : Settings.Instance.CustomEpgTabList.ToList();

                //とりあえず同じIDを探して表示してみる(中身は別物になってるかもしれないが、とりあえず表示を試みる)。
                //標準・カスタム切り替えの際は、標準番組表が負のIDを与えられているので、このコードは走らない。
                foreach (CustomEpgTabInfo info in tabInfo.Where(info => info.IsVisible == true))
                {
                    tabControl.Items.Add(new EpgTabItem(info, oldID, info.Uid == oldID ? oldState : null));
                }
                if (tabControl.SelectedIndex == -1)
                {
                    tabControl.SelectedIndex = 0;
                }
            }
            catch (Exception ex) { CommonUtil.DispatcherMsgBoxShow(ex.Message + "\r\n" + ex.StackTrace); }

            oldID = null;
            return(true);
        }
Example #4
0
        private void CreateTabItem()
        {
            OnCreateTab = true;//タブの初期選択対策。挙動が以前と変わってるような‥
            try
            {
                tabInfo = Settings.Instance.UseCustomEpgView == false?
                          CommonManager.CreateDefaultTabInfo() : Settings.Instance.CustomEpgTabList.ToList();

                //以前表示していた番組表があればそれを表示する。
                //標準・カスタム切り替えの際は、標準番組表が負のIDを与えられているので、このコードは走らない。
                foreach (CustomEpgTabInfo info in tabInfo.Where(info => info.IsVisible == true))
                {
                    tabControl.Items.Add(new EpgTabItem(info, this, oldID, info.Uid == oldID ? oldState : null));
                }
                if (tabControl.SelectedIndex < 0)
                {
                    tabControl.SelectedIndex = 0;
                }
            }
            catch (Exception ex) { CommonUtil.DispatcherMsgBoxShow(ex.Message + "\r\n" + ex.StackTrace); }

            oldID       = null;
            OnCreateTab = false;
        }