From e0e31c60e64b19d767b6ccb517c4153b263004eb Mon Sep 17 00:00:00 2001 From: Jaex Date: Wed, 16 Sep 2020 23:47:04 +0300 Subject: [PATCH] Added image effects listing to after capture tasks sub menu --- ShareX/Forms/MainForm.cs | 52 +++++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index 04caf55aa..291b570c5 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -24,6 +24,7 @@ #endregion License Information (GPL v3) using ShareX.HelpersLib; +using ShareX.ImageEffectsLib; using ShareX.Properties; using ShareX.ScreenCaptureLib; using ShareX.UploadersLib; @@ -96,6 +97,8 @@ private void InitializeControls() AddMultiEnumItems(x => Program.DefaultTaskSettings.AfterCaptureJob = Program.DefaultTaskSettings.AfterCaptureJob.Swap(x), tsddbAfterCaptureTasks, tsmiTrayAfterCaptureTasks); + tsddbAfterCaptureTasks.DropDownOpening += TsddbAfterCaptureTasks_DropDownOpening; + tsmiTrayAfterCaptureTasks.DropDownOpening += TsmiTrayAfterCaptureTasks_DropDownOpening; AddMultiEnumItems(x => Program.DefaultTaskSettings.AfterUploadJob = Program.DefaultTaskSettings.AfterUploadJob.Swap(x), tsddbAfterUploadTasks, tsmiTrayAfterUploadTasks); AddEnumItems(x => @@ -491,15 +494,16 @@ private void UpdateDestinationStates() } } - private void AddEnumItems(Action selectedEnum, params ToolStripDropDownItem[] parents) + private void AddEnumItems(Action selectedEnum, params ToolStripDropDownItem[] parents) where T : Enum { - string[] enums = Helpers.GetLocalizedEnumDescriptions(); + T[] enums = Helpers.GetEnums(); foreach (ToolStripDropDownItem parent in parents) { for (int i = 0; i < enums.Length; i++) { - ToolStripMenuItem tsmi = new ToolStripMenuItem(enums[i]); + T currentEnum = enums[i]; + ToolStripMenuItem tsmi = new ToolStripMenuItem(currentEnum.GetLocalizedDescription()); int index = i; @@ -514,7 +518,7 @@ private void AddEnumItems(Action selectedEnum, params ToolStripDropDownIte } } - selectedEnum((T)Enum.ToObject(typeof(T), index)); + selectedEnum(currentEnum); UpdateUploaderMenuNames(); }; @@ -552,14 +556,15 @@ private static void SetEnumChecked(Enum value, params ToolStripDropDownItem[] pa private void AddMultiEnumItems(Action selectedEnum, params ToolStripDropDownItem[] parents) where T : Enum { - string[] enums = Helpers.GetLocalizedEnumDescriptions().Skip(1).ToArray(); + T[] enums = Helpers.GetEnums().Skip(1).ToArray(); foreach (ToolStripDropDownItem parent in parents) { for (int i = 0; i < enums.Length; i++) { - ToolStripMenuItem tsmi = new ToolStripMenuItem(enums[i]); - tsmi.Image = TaskHelpers.FindMenuIcon(i + 1); + T currentEnum = enums[i]; + ToolStripMenuItem tsmi = new ToolStripMenuItem(currentEnum.GetLocalizedDescription()); + tsmi.Image = TaskHelpers.FindMenuIcon(currentEnum); int index = i; @@ -571,7 +576,7 @@ private static void SetEnumChecked(Enum value, params ToolStripDropDownItem[] pa tsmi2.Checked = !tsmi2.Checked; } - selectedEnum((T)Enum.ToObject(typeof(T), 1 << index)); + selectedEnum(currentEnum); UpdateUploaderMenuNames(); }; @@ -581,6 +586,27 @@ private static void SetEnumChecked(Enum value, params ToolStripDropDownItem[] pa } } + private void UpdateImageEffectsMenu(ToolStripDropDownItem parent) + { + int indexAddImageEffects = (int)AfterCaptureTasks.AddImageEffects - 1; + ToolStripMenuItem tsmiAddImageEffects = (ToolStripMenuItem)parent.DropDownItems[indexAddImageEffects]; + tsmiAddImageEffects.DropDownItems.Clear(); + + for (int i = 0; i < Program.DefaultTaskSettings.ImageSettings.ImageEffectPresets.Count; i++) + { + ImageEffectPreset effectPreset = Program.DefaultTaskSettings.ImageSettings.ImageEffectPresets[i]; + ToolStripMenuItem tsmi = new ToolStripMenuItem(effectPreset.ToString()); + tsmi.Checked = i == Program.DefaultTaskSettings.ImageSettings.SelectedImageEffectPreset; + int indexSelected = i; + tsmi.Click += (sender, e) => + { + Program.DefaultTaskSettings.ImageSettings.SelectedImageEffectPreset = indexSelected; + ((ToolStripMenuItem)tsmiAddImageEffects.DropDownItems[indexSelected]).RadioCheck(); + }; + tsmiAddImageEffects.DropDownItems.Add(tsmi); + } + } + private void SetMultiEnumChecked(Enum value, params ToolStripDropDownItem[] parents) { for (int i = 0; i < parents[0].DropDownItems.Count; i++) @@ -1820,6 +1846,16 @@ private void tsmiMonitorTest_Click(object sender, EventArgs e) TaskHelpers.OpenMonitorTest(); } + private void TsddbAfterCaptureTasks_DropDownOpening(object sender, EventArgs e) + { + UpdateImageEffectsMenu(tsddbAfterCaptureTasks); + } + + private void TsmiTrayAfterCaptureTasks_DropDownOpening(object sender, EventArgs e) + { + UpdateImageEffectsMenu(tsmiTrayAfterCaptureTasks); + } + private void tsddbDestinations_DropDownOpened(object sender, EventArgs e) { UpdateDestinationStates();