private async void FluentDesignMainForm_Load(object sender, EventArgs e) { if (DesignMode) { return; } activeProvider = settings.RememberLastOpenedDataProvider ? settings.LastOpenedDataProvider : UserSettingsManager.UserSettings.InitialSelectedDataProvider; if (settings.AnalogyPosition.RememberLastPosition || settings.AnalogyPosition.WindowState != FormWindowState.Minimized) { WindowState = settings.AnalogyPosition.WindowState; if (WindowState != FormWindowState.Maximized) { if (Screen.AllScreens.Any(s => s.WorkingArea.Contains(settings.AnalogyPosition.Location))) { Location = settings.AnalogyPosition.Location; Size = settings.AnalogyPosition.Size; } else { AnalogyLogger.Instance.LogError("", $"Last location {settings.AnalogyPosition.Location} is not inside any screen"); } } } string framework = UpdateManager.Instance.CurrentFrameworkAttribute.FrameworkName; Text = $"Analogy Log Viewer {UpdateManager.Instance.CurrentVersion} ({framework})"; Icon = settings.GetIcon(); notifyIconAnalogy.Visible = preventExit = settings.MinimizedToTrayBar; await FactoriesManager.Instance.InitializeBuiltInFactories(); string[] arguments = Environment.GetCommandLineArgs(); disableOnlineDueToFileOpen = arguments.Length == 2; SetupEventHandlers(); bbiFileCaching.Caption = "File caching is " + (settings.EnableFileCaching ? "on" : "off"); bbiFileCaching.Appearance.BackColor = settings.EnableFileCaching ? Color.LightGreen : Color.Empty; //todo: //CreateAnalogyBuiltinDataProviders FactoryContainer analogy = FactoriesManager.Instance.GetBuiltInFactoryContainer(AnalogyBuiltInFactory.AnalogyGuid); CreateDataSource(analogy); await FactoriesManager.Instance.AddExternalDataSources(); PopulateGlobalTools(); //LoadStartupExtensions(); //Create all other DataSources foreach (FactoryContainer factory in FactoriesManager.Instance.Factories .Where(factory => !FactoriesManager.Instance.IsBuiltInFactory(factory.Factory))) { CreateDataSource(factory); } if (OnlineSources.Any()) { TmrAutoConnect.Start(); } Initialized = true; //todo: fine handler for file if (arguments.Length == 2) { //todo string[] fileNames = { arguments[1] }; // await OpenOfflineFileWithSpecificDataProvider(fileNames); } else { TmrAutoConnect.Enabled = true; } if (settings.ShowChangeLogAtStartUp) { var change = new ChangeLog(); change.ShowDialog(this); } //todo:fix below if (settings.RememberLastOpenedDataProvider && Mapping.ContainsKey(settings.LastOpenedDataProvider)) { //ribbonControlMain.SelectPage(Mapping[settings.LastOpenedDataProvider]); } if (AnalogyLogManager.Instance.HasErrorMessages || AnalogyLogManager.Instance.HasWarningMessages) { bbtnErrors.Visibility = BarItemVisibility.Always; } if (!AnalogyNonPersistSettings.Instance.UpdateAreDisabled) { var(_, release) = await UpdateManager.Instance.CheckVersion(false); if (release?.TagName != null && UpdateManager.Instance.NewestVersion != null) { bbtnCheckUpdates.Caption = "Latest Version: " + UpdateManager.Instance.NewestVersion.ToString(); if (UpdateManager.Instance.NewVersionExist) { bbtnCheckUpdates.Appearance.BackColor = Color.GreenYellow; bbtnCheckUpdates.Caption = "New Version Available: " + UpdateManager.Instance.NewestVersion.ToString(); } } } else { AnalogyLogManager.Instance.LogWarning("Update is disabled", nameof(MainForm)); } if (settings.ShowWhatIsNewAtStartup) { WhatsNewForm f = new WhatsNewForm(); f.ShowDialog(this); settings.ShowWhatIsNewAtStartup = false; } }
private void SetupEventHandlers() { bbiBinance.ItemClick += (s, e) => { Utils.OpenLink("https://www.binance.com/en/register?ref=V8P114PE"); }; bbtnSettings.ItemClick += (s, e) => { ApplicationSettingsForm user = new ApplicationSettingsForm(); user.ShowDialog(this); }; dockManager1.ClosingPanel += (s, e) => { var workspace = Utils.GetLogWindows <IAnalogyWorkspace>(this); workspace?.SaveCurrentWorkspace(); }; bbtnSponsorOpenCollection.ItemClick += (s, e) => Utils.OpenLink("https://opencollective.com/analogy-log-viewer"); bbtnItemHelp.ItemClick += (s, e) => { AnalogyAboutBox ab = new AnalogyAboutBox(); ab.ShowDialog(this); }; bbiUserSettingsStatistics.ItemClick += (s, e) => { var user = new UserStatisticsForm(); user.ShowDialog(this); }; bbtnUpdates.ItemClick += (s, e) => OpenUpdateWindow(); bbtnDataProvidersUpdates.ItemClick += (s, e) => { var update = new ComponentDownloadsForm(); update.Show(this); }; bbtnDebugLog.ItemClick += (s, e) => AnalogyLogManager.Instance.Show(this); bbtnItemChangeLog.ItemClick += (s, e) => { var change = new ChangeLog(); change.ShowDialog(this); }; bbtnWhatsNew.ItemClick += (_, __) => { WhatsNewForm f = new WhatsNewForm(); f.ShowDialog(this); settings.ShowWhatIsNewAtStartup = false; }; bbtnFirstRun.ItemClick += (_, __) => { FirstTimeRunForm f = new FirstTimeRunForm(); f.ShowDialog(this); }; tmrStatusUpdates.Tick += (s, e) => { tmrStatusUpdates.Stop(); bbtnMemoryUsage.Caption = Process.GetCurrentProcess().PrivateMemorySize64 / 1024 / 1024 + " [MB]"; bbtnIdleMessage.Caption = settings.IdleMode ? $"Idle mode is on. User idle: {Utils.IdleTime():hh\\:mm\\:ss}. Missed messages: {PagingManager.TotalMissedMessages}" : "Idle mode is off"; tmrStatusUpdates.Start(); }; AnalogyLogManager.Instance.OnNewError += (s, e) => bbtnErrors.Visibility = BarItemVisibility.Always; NotificationManager.Instance.OnNewNotification += (s, notification) => { AlertInfo info = new AlertInfo(notification.Title, notification.Message, notification.SmallImage); AlertControl ac = new AlertControl(this.components) { AutoFormDelay = notification.DurationSeconds * 1000 }; ac.AutoHeight = true; if (notification.ActionOnClick != null) { AlertButton btn1 = new AlertButton(Resources.Delete_16x16); btn1.Hint = "OK"; btn1.Name = "NotificationActionButton"; ac.Buttons.Add(btn1); ac.ButtonClick += (sender, arg) => { if (arg.ButtonName == btn1.Name) { try { notification.ActionOnClick?.Invoke(); } catch (Exception exception) { XtraMessageBox.Show($"Error during notification action: {exception}", "Error", MessageBoxButtons.OK); } } }; } ac.Show(this.ParentForm, info); }; bbtnErrors.ItemClick += (s, e) => { AnalogyLogManager.Instance.Show(this); }; bbtnStar.ItemClick += (s, e) => { Utils.OpenLink("https://github.com/Analogy-LogViewer/Analogy.LogViewer"); }; bbtnReportIssueOrRequest.ItemClick += (_, __) => { Utils.OpenLink("https://github.com/Analogy-LogViewer/Analogy.LogViewer/issues"); }; bbtnCheckUpdates.ItemClick += (s, e) => OpenUpdateWindow(); bbiFileCaching.ItemClick += (s, e) => { settings.EnableFileCaching = !settings.EnableFileCaching; bbiFileCaching.Caption = "File caching is " + (settings.EnableFileCaching ? "on" : "off"); bbiFileCaching.Appearance.BackColor = settings.EnableFileCaching ? Color.LightGreen : Color.Empty; }; }