Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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);
                }
            };
        }
Esempio n. 4
0
        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);
        }