protected override async void OnStartup(StartupEventArgs e) { var packFileClean = false; Log.LogFile = Assemblypath + "\\Hyddwn Launcher.log"; await Task.Delay(1000); Log.Info("=== Application Startup ==="); Log.Info("Initialize Launcher Context"); var launcherContext = new LauncherContext(); #if DEBUG launcherContext.LauncherSettingsManager.Reset(); #endif CmdArgs = Environment.GetCommandLineArgs(); for (var index = 0; index != e.Args.Length; ++index) { if (e.Args[index].Contains("/?") || e.Args[index].Contains("-?")) { Console.WriteLine(HyddwnLauncher.Properties.Resources.usage__); Console.WriteLine(HyddwnLauncher.Properties.Resources.usage___); Environment.Exit(0); } if (e.Args[index].Contains("/noadmin")) { launcherContext.LauncherSettingsManager.LauncherSettings.RequiresAdmin = false; } if (e.Args[index].Contains("/clean")) { packFileClean = true; } } if (packFileClean) { WaitForProcessEndThenCleanPack(); return; } #if DEBUG launcherContext.LauncherSettingsManager.LauncherSettings.RequiresAdmin = false; launcherContext.LauncherSettingsManager.LauncherSettings.FirstRun = true; #endif CheckForAdmin(launcherContext.LauncherSettingsManager.LauncherSettings.RequiresAdmin); ServicePointManager.DefaultConnectionLimit = launcherContext.LauncherSettingsManager.LauncherSettings.ConnectionLimit; Log.Info("Application initialized, loading main window."); var mainWindow = new MainWindow(launcherContext); Current.MainWindow = mainWindow; mainWindow.Show(); base.OnStartup(e); }
public MainWindow(LauncherContext launcherContext) { Instance = this; #if DEBUG launcherContext.LauncherSettingsManager.Reset(); #endif LauncherContext = launcherContext; Settings = new LauncherSettingsManager(); ProfileManager = new ProfileManager(); ProfileManager.Load(); //Populate for the first time if (ProfileManager.ServerProfiles.Count == 0) { ProfileManager.ServerProfiles.Insert(0, ServerProfile.OfficialProfile); ProfileManager.SaveServerProfiles(); } ChangeAppTheme(); AccentColors = ThemeManager.Accents .Select(a => new AccentColorMenuData { Name = a.Name, ColorBrush = a.Resources["AccentColorBrush"] as Brush }).ToList(); AppThemes = ThemeManager.AppThemes .Select(a => new AppThemeMenuData { Name = a.Name, BorderColorBrush = a.Resources["BlackColorBrush"] as Brush, ColorBrush = a.Resources["WhiteColorBrush"] as Brush }).ToList(); InitializeComponent(); MainProgressReporter.ReporterProgressBar.SetVisibilitySafe(Visibility.Hidden); _disableWhilePatching = new Control[] { LaunchButton, NewProfileButton, ClientProfileComboBox, ServerProfileComboBox }; _updateClose = false; }
public BrowserContext(LauncherContext launcher) : base("localfolder://nano/") { _launcher = launcher; Dock = DockStyle.Fill; DragHandler = new BrowserDragHandler(); MenuHandler = new BrowserMenuHandler(); IsBrowserInitializedChanged += OnBrowserInitializedChanged; JavascriptObjectRepository.ResolveObject += (sender, args) => { var name = typeof(LauncherContext).Name; if (args.ObjectName == name) { args.ObjectRepository.Register(name, _launcher, true, BindingOptions.DefaultBinder); } }; }
public override T GetPanel <T>(params object[] parameters) { try { var launcherPanel = new LauncherPanel(); LauncherContext = launcherPanel.DataContext as LauncherContext; var settingsManager = VA.SettingsManager; var applicationListSettings = settingsManager[Constants.ApplicationList]; var directoryListSettings = settingsManager[Constants.DirectoryList]; var searchEngineListSettings = settingsManager[Constants.SearchEngineList]; var websiteListSettings = settingsManager[Constants.WebsiteList]; if (LauncherContext != null) { LauncherContext.AddFileAction = async() => { try { var openFileDialog = new OpenFileDialog(); if (openFileDialog.ShowDialog() == true) { var window = VA.Components.Get <SettingsWindow>(); var selectedPath = openFileDialog.FileName; var selectedName = await window.GetInput(StringResource.LauncherPlugin_AddFileTitle, StringResource.LauncherPlugin_AddFileMessage, Path.GetFileNameWithoutExtension(selectedPath)); if (selectedName != null) { applicationListSettings.Add(new Variable(selectedName, selectedPath)); } } } catch (Exception exception) { VA.Logger.Error(exception); } }; LauncherContext.AddFolderAction = async() => { try { var folderBrowserDialog = new FolderBrowserDialog(); if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { var window = VA.Components.Get <SettingsWindow>(); var selectedPath = folderBrowserDialog.SelectedPath; var selectedName = await window.GetInput(StringResource.LauncherPlugin_AddFolderTitle, StringResource.LauncherPlugin_AddFolderMessage, SynUtility.Directory.GetName(selectedPath)); if (selectedName != null) { directoryListSettings.Add(new Variable(selectedName, selectedPath)); } } } catch (Exception exception) { VA.Logger.Error(exception); } }; LauncherContext.AddSearchEngineAction = async() => { try { var window = VA.Components.Get <SettingsWindow>(); var searchEngineUrl = await window.GetInput(StringResource.LauncherPlugin_AddSearchEngineAddressTitle, StringResource.LauncherPlugin_AddSearchEngineAddressMessage); if (searchEngineUrl != null) { var searchEngineName = await window.GetInput(StringResource.LauncherPlugin_AddSearchEngineNameTitle, StringResource.LauncherPlugin_AddSearchEngineNameMessage); if (searchEngineName != null) { searchEngineListSettings.Add(new Variable(searchEngineName, searchEngineUrl)); } } } catch (Exception exception) { VA.Logger.Error(exception); } }; LauncherContext.AddWebsiteAction = async() => { try { var window = VA.Components.Get <SettingsWindow>(); var websiteUrl = await window.GetInput(StringResource.LauncherPlugin_AddWebsiteAddressTitle, StringResource.LauncherPlugin_AddWebsiteAddressMessage); if (websiteUrl != null) { var websiteName = await window.GetInput(StringResource.LauncherPlugin_AddWebsiteNameTitle, StringResource.LauncherPlugin_AddWebsiteNameMessage); if (websiteName != null) { websiteListSettings.Add(new Variable(websiteName, websiteUrl)); } } } catch (Exception exception) { VA.Logger.Error(exception); } }; UpdateApplicationView.Invoke(); UpdateDirectoryView.Invoke(); UpdateSearchEngineView.Invoke(); UpdateWebsiteView.Invoke(); Settings.ApplyToProperties(LauncherContext); } return(launcherPanel as T); } catch (Exception exception) { VA.Logger.Error(exception); } return(null); }