From 10fb1a30fead80d0f400d0f90698f5a6bc19e56f Mon Sep 17 00:00:00 2001 From: Jaex Date: Thu, 24 Jul 2014 22:28:59 +0300 Subject: [PATCH] Added TrayMiddleClickAction setting, TaskSettings changes --- ShareX/ApplicationConfig.cs | 3 +++ ShareX/Forms/MainForm.cs | 42 ++++++++++++++++++++----------------- ShareX/TaskSettings.cs | 24 ++++++++++----------- 3 files changed, 37 insertions(+), 32 deletions(-) diff --git a/ShareX/ApplicationConfig.cs b/ShareX/ApplicationConfig.cs index 251ee8cb3..441ba161c 100644 --- a/ShareX/ApplicationConfig.cs +++ b/ShareX/ApplicationConfig.cs @@ -126,6 +126,9 @@ public ApplicationConfig() [Category("Application"), DefaultValue(true), Description("Automatically check updates at startup.")] public bool AutoCheckUpdate { get; set; } + [Category("Application"), DefaultValue(HotkeyType.RectangleRegion), Description("You can set which action to happen when you middle click tray icon."), TypeConverter(typeof(EnumDescriptionConverter))] + public HotkeyType TrayMiddleClickAction { get; set; } + [Category("Application / Config"), DefaultValue(false), Description("Automatically detect external changes to UploaderConfig file and load settigns to memory.")] public bool DetectUploaderConfigFileChanges { get; set; } diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index d8da6d0c0..996306791 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -178,7 +178,7 @@ private ToolStripMenuItem WorkflowMenuItem(HotkeySettings hotkeySetting) { tsmi.Font = new Font(tsmi.Font, FontStyle.Bold); } - tsmi.Click += (sender, e) => HandleTask(hotkeySetting.TaskSettings); + tsmi.Click += (sender, e) => ExecuteJob(hotkeySetting.TaskSettings); return tsmi; } @@ -999,16 +999,6 @@ private void lvUploads_KeyDown(object sender, KeyEventArgs e) #region Tray events - private void niTray_MouseUp(object sender, MouseEventArgs e) - { - switch (e.Button) - { - case MouseButtons.Middle: - CaptureScreenshot(CaptureType.Rectangle, null, false); - break; - } - } - private void niTray_MouseDoubleClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) @@ -1017,6 +1007,16 @@ private void niTray_MouseDoubleClick(object sender, MouseEventArgs e) } } + private void niTray_MouseUp(object sender, MouseEventArgs e) + { + switch (e.Button) + { + case MouseButtons.Middle: + ExecuteJob(Program.Settings.TrayMiddleClickAction); + break; + } + } + private void niTray_BalloonTipClicked(object sender, EventArgs e) { string url = niTray.Tag as string; @@ -1277,23 +1277,27 @@ private void HandleHotkeys(HotkeySettings hotkeySetting) { DebugHelper.WriteLine("Hotkey triggered: " + hotkeySetting); - if (hotkeySetting.TaskSettings.Job == HotkeyType.None) return; - - HandleTask(hotkeySetting.TaskSettings); + if (hotkeySetting.TaskSettings.Job != HotkeyType.None) + { + ExecuteJob(hotkeySetting.TaskSettings); + } } private void ExecuteJob(HotkeyType job) { - TaskSettings taskSettings = TaskSettings.GetDefaultTaskSettings(); - taskSettings.Job = job; - HandleTask(taskSettings); + ExecuteJob(Program.DefaultTaskSettings, job); } - private void HandleTask(TaskSettings taskSettings) + private void ExecuteJob(TaskSettings taskSettings) + { + ExecuteJob(taskSettings, taskSettings.Job); + } + + private void ExecuteJob(TaskSettings taskSettings, HotkeyType job) { TaskSettings safeTaskSettings = TaskSettings.GetSafeTaskSettings(taskSettings); - switch (safeTaskSettings.Job) + switch (job) { case HotkeyType.FileUpload: UploadManager.UploadFile(safeTaskSettings); diff --git a/ShareX/TaskSettings.cs b/ShareX/TaskSettings.cs index 3dcfc8729..bcfd26597 100644 --- a/ShareX/TaskSettings.cs +++ b/ShareX/TaskSettings.cs @@ -40,6 +40,7 @@ namespace ShareX public class TaskSettings { private string description = string.Empty; + public string Description { get @@ -135,30 +136,27 @@ public bool IsUsingDefaultSettings public static TaskSettings GetDefaultTaskSettings() { - TaskSettings taskSettings = new TaskSettings(); - taskSettings.SetDefaultSettings(); - taskSettings.TaskSettingsReference = Program.DefaultTaskSettings; - return taskSettings; + return GetSafeTaskSettings(Program.DefaultTaskSettings); } public static TaskSettings GetSafeTaskSettings(TaskSettings taskSettings) { - TaskSettings taskSettingsCopy; + TaskSettings safeTaskSettings; - if (taskSettings.IsUsingDefaultSettings && Program.DefaultTaskSettings != null) + if (taskSettings.IsUsingDefaultSettings) { - taskSettingsCopy = Program.DefaultTaskSettings.Copy(); - taskSettingsCopy.Description = taskSettings.Description; - taskSettingsCopy.Job = taskSettings.Job; + safeTaskSettings = Program.DefaultTaskSettings.Copy(); + safeTaskSettings.Description = taskSettings.Description; + safeTaskSettings.Job = taskSettings.Job; } else { - taskSettingsCopy = taskSettings.Copy(); - taskSettingsCopy.SetDefaultSettings(); + safeTaskSettings = taskSettings.Copy(); + safeTaskSettings.SetDefaultSettings(); } - taskSettingsCopy.TaskSettingsReference = taskSettings; - return taskSettingsCopy; + safeTaskSettings.TaskSettingsReference = taskSettings; + return safeTaskSettings; } private void SetDefaultSettings()