/// <summary>
        /// The Test.
        /// </summary>
        /// <param name="testWindow">The testWindow<see cref="Window"/>.</param>
        protected override void Test(Window testWindow)
        {
            var globalBrowserData = new GlobalBrowserData();
            var viewModel         = new WebBrowserTabControlViewModel(globalBrowserData);
            var cefWindowData     = viewModel.CefWindowData;
            var view = new WebBrowserTabControlView {
                DataContext = viewModel
            };
            var window = WindowFactory.Create(view, testWindow);

            viewModel.TabItems.Add(new WebBrowserHeaderedItemViewModel(globalBrowserData, cefWindowData, null));
            cefWindowData.MainWindow = window;;
            window.ShowDialog();
        }
        /// <summary>
        /// The Save.
        /// </summary>
        /// <param name="settings">The settings<see cref="BrowserSettings"/>.</param>
        /// <param name="browserModel">The browserModel<see cref="WebBrowserTabControlViewModel"/>.</param>
        internal static void Save(BrowserSettings settings, WebBrowserTabControlViewModel browserModel)
        {
            settings.BookmarkModels.Clear();
            settings.DownloadItems.Clear();
            settings.TabSettingModels.Clear();
            foreach (var tabItem in browserModel.TabItems)
            {
                if (tabItem.Content is FrameworkElement element && element.DataContext is VideoBrowserViewModel videoModel)
                {
                    var tabModel = new TabSettingsModel
                    {
                        Title = videoModel.Header,
                        Url   = videoModel.Url
                    };

                    settings.TabSettingModels.Add(tabModel);
                }
            }

            foreach (var downloadItem in browserModel.GlobalBrowserData.DownloadItemModels)
            {
                if (downloadItem.Status == "Completed")
                {
                    settings.DownloadItems.Add(new DownloadItemModel(downloadItem));
                }
            }

            settings.SelectedTabSettingIndex = browserModel.SelectedTabIndex;
            var settingsFolder = Path.GetDirectoryName(UserJsonSettingsPath);

            if (!Directory.Exists(settingsFolder))
            {
                Directory.CreateDirectory(settingsFolder);
            }

            var serializer = new JsonSerializer();

            serializer.Converters.Add(new JavaScriptDateTimeConverter());
            serializer.NullValueHandling = NullValueHandling.Ignore;

            using (var sw = new StreamWriter(UserJsonSettingsPath))
                using (var writer = new JsonTextWriter(sw))
                {
                    serializer.Serialize(writer, settings);
                }

            Logger.Info($"Browser setting is saved in {UserJsonSettingsPath}");
        }
        /// <summary>
        /// The Execute.
        /// </summary>
        /// <param name="viewModel">The viewModel<see cref="WebBrowserTabControlViewModel"/>.</param>
        protected override void Execute(WebBrowserTabControlViewModel viewModel)
        {
            if (viewModel.IsTabItemExist(this.Guid))
            {
                viewModel.SetActiveTab(this.Guid);
                return;
            }

            UIThreadHelper.InvokeAsync(() =>
            {
                var view = this.CreateView();
                var tab  = new TabItem(this.Guid)
                {
                    Content = view,
                    Icon    = this.Icon,
                    Title   = this.Title
                };

                viewModel.AddTab(tab);
            });
        }
示例#4
0
 /// <summary>
 /// The Execute.
 /// </summary>
 /// <param name="viewModel">The viewModel<see cref="WebBrowserTabControlViewModel"/>.</param>
 protected override void Execute(WebBrowserTabControlViewModel viewModel)
 {
     ProcessHelper.Start(this.SettingsViewModel.OutputFolder);
 }
示例#5
0
 /// <summary>
 /// The Execute.
 /// </summary>
 /// <param name="viewModel">The viewModel<see cref="WebBrowserTabControlViewModel"/>.</param>
 protected override void Execute(WebBrowserTabControlViewModel viewModel)
 {
     // Write the code to test here.
 }