/// <summary> /// Handle the notify icon click /// </summary> private void NotifyIconClick(ClickActions clickAction) { switch (clickAction) { case ClickActions.OPEN_LAST_IN_EXPLORER: Contextmenu_OpenRecent(this, null); break; case ClickActions.OPEN_LAST_IN_EDITOR: _coreConfiguration.ValidateAndCorrect(); if (File.Exists(_coreConfiguration.OutputFileAsFullpath)) { CaptureHelper.CaptureFile(_coreConfiguration.OutputFileAsFullpath, _destinationHolder.SortedActiveDestinations.Find("Editor")); } break; case ClickActions.OPEN_SETTINGS: ShowSetting(); break; case ClickActions.SHOW_CONTEXT_MENU: var oMethodInfo = typeof(NotifyIcon).GetMethod("ShowContextMenu", BindingFlags.Instance | BindingFlags.NonPublic); oMethodInfo?.Invoke(notifyIcon, null); break; } }
/// <summary> /// This method will be called after reading the configuration, so eventually some corrections can be made /// </summary> /// <param name="coreConfiguration"></param> public static void AfterLoad(this ICoreConfiguration coreConfiguration) { // Comment with releases // CheckForUnstable = true; if (string.IsNullOrEmpty(coreConfiguration.LastSaveWithVersion)) { try { // Store version, this can be used later to fix settings after an update coreConfiguration.LastSaveWithVersion = Assembly.GetEntryAssembly().GetName().Version.ToString(); } catch { // ignored } // Disable the AutoReduceColors as it causes issues with Mozzila applications and some others coreConfiguration.OutputFileAutoReduceColors = false; } // Fix for excessive feed checking if (coreConfiguration.UpdateCheckInterval != 0 && coreConfiguration.UpdateCheckInterval <= 7 && coreConfiguration.LastSaveWithVersion.StartsWith("1.2")) { coreConfiguration.UpdateCheckInterval = 14; } if (coreConfiguration.UpdateCheckInterval > 365) { coreConfiguration.UpdateCheckInterval = 365; } // Enable OneNote if upgrading from 1.1 if (coreConfiguration.ExcludeDestinations != null && coreConfiguration.ExcludeDestinations.Contains("OneNote")) { if (coreConfiguration.LastSaveWithVersion != null && coreConfiguration.LastSaveWithVersion.StartsWith("1.1")) { coreConfiguration.ExcludeDestinations.Remove("OneNote"); } else { // TODO: Remove with the release coreConfiguration.ExcludeDestinations.Remove("OneNote"); } } if (coreConfiguration.OutputDestinations == null) { coreConfiguration.OutputDestinations = new List <string>(); } // Make sure there is an output! if (coreConfiguration.OutputDestinations.Count == 0) { coreConfiguration.OutputDestinations.Add("Editor"); } // Prevent both settings at once, bug #3435056 if (coreConfiguration.OutputDestinations.Contains("Clipboard") && coreConfiguration.OutputFileCopyPathToClipboard) { coreConfiguration.OutputFileCopyPathToClipboard = false; } // Make sure we have clipboard formats, otherwise a paste doesn't make sense! if (coreConfiguration.ClipboardFormats == null || coreConfiguration.ClipboardFormats.Count == 0) { coreConfiguration.ClipboardFormats = new List <ClipboardFormats> { Enums.ClipboardFormats.PNG, Enums.ClipboardFormats.HTML, Enums.ClipboardFormats.DIB }; } // Make sure the lists are lowercase, to speedup the check if (coreConfiguration.NoGDICaptureForProduct != null) { // Fix error in configuration if (coreConfiguration.NoGDICaptureForProduct.Count >= 2) { if ("intellij".Equals(coreConfiguration.NoGDICaptureForProduct[0]) && "idea".Equals(coreConfiguration.NoGDICaptureForProduct[1])) { coreConfiguration.NoGDICaptureForProduct = coreConfiguration.NoGDICaptureForProduct.Skip(2).ToList(); coreConfiguration.NoGDICaptureForProduct.Add("Intellij Idea"); } } for (var i = 0; i < coreConfiguration.NoGDICaptureForProduct.Count; i++) { coreConfiguration.NoGDICaptureForProduct[i] = coreConfiguration.NoGDICaptureForProduct[i].ToLower(); } } if (coreConfiguration.NoDWMCaptureForProduct != null) { // Fix error in configuration if (coreConfiguration.NoDWMCaptureForProduct.Count >= 3) { if ("citrix".Equals(coreConfiguration.NoDWMCaptureForProduct[0]) && "ica".Equals(coreConfiguration.NoDWMCaptureForProduct[1]) && "client".Equals(coreConfiguration.NoDWMCaptureForProduct[2])) { coreConfiguration.NoDWMCaptureForProduct = coreConfiguration.NoDWMCaptureForProduct.Skip(3).ToList(); coreConfiguration.NoDWMCaptureForProduct.Add("Citrix ICA Client"); } } for (var i = 0; i < coreConfiguration.NoDWMCaptureForProduct.Count; i++) { coreConfiguration.NoDWMCaptureForProduct[i] = coreConfiguration.NoDWMCaptureForProduct[i].ToLower(); } } if (coreConfiguration.AutoCropDifference < 0) { coreConfiguration.AutoCropDifference = 0; } if (coreConfiguration.AutoCropDifference > 255) { coreConfiguration.AutoCropDifference = 255; } if (coreConfiguration.OutputFileReduceColorsTo < 2) { coreConfiguration.OutputFileReduceColorsTo = 2; } if (coreConfiguration.OutputFileReduceColorsTo > 256) { coreConfiguration.OutputFileReduceColorsTo = 256; } if (coreConfiguration.WebRequestTimeout <= 10) { coreConfiguration.WebRequestTimeout = 100; } if (coreConfiguration.WebRequestReadWriteTimeout < 1) { coreConfiguration.WebRequestReadWriteTimeout = 100; } coreConfiguration.ValidateAndCorrect(); }