mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 17:56:51 +13:00
Added image effects listing to after capture tasks sub menu
This commit is contained in:
parent
69bd184cb3
commit
e0e31c60e6
1 changed files with 44 additions and 8 deletions
|
@ -24,6 +24,7 @@ You should have received a copy of the GNU General Public License
|
|||
#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<AfterCaptureTasks>(x => Program.DefaultTaskSettings.AfterCaptureJob = Program.DefaultTaskSettings.AfterCaptureJob.Swap(x),
|
||||
tsddbAfterCaptureTasks, tsmiTrayAfterCaptureTasks);
|
||||
tsddbAfterCaptureTasks.DropDownOpening += TsddbAfterCaptureTasks_DropDownOpening;
|
||||
tsmiTrayAfterCaptureTasks.DropDownOpening += TsmiTrayAfterCaptureTasks_DropDownOpening;
|
||||
AddMultiEnumItems<AfterUploadTasks>(x => Program.DefaultTaskSettings.AfterUploadJob = Program.DefaultTaskSettings.AfterUploadJob.Swap(x),
|
||||
tsddbAfterUploadTasks, tsmiTrayAfterUploadTasks);
|
||||
AddEnumItems<ImageDestination>(x =>
|
||||
|
@ -491,15 +494,16 @@ private void UpdateDestinationStates()
|
|||
}
|
||||
}
|
||||
|
||||
private void AddEnumItems<T>(Action<T> selectedEnum, params ToolStripDropDownItem[] parents)
|
||||
private void AddEnumItems<T>(Action<T> selectedEnum, params ToolStripDropDownItem[] parents) where T : Enum
|
||||
{
|
||||
string[] enums = Helpers.GetLocalizedEnumDescriptions<T>();
|
||||
T[] enums = Helpers.GetEnums<T>();
|
||||
|
||||
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<T>(Action<T> 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<T>(Action<T> selectedEnum, params ToolStripDropDownItem[] parents) where T : Enum
|
||||
{
|
||||
string[] enums = Helpers.GetLocalizedEnumDescriptions<T>().Skip(1).ToArray();
|
||||
T[] enums = Helpers.GetEnums<T>().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<T>(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 void AddMultiEnumItems<T>(Action<T> selectedEnum, params ToolStripDropDo
|
|||
tsmi2.Checked = !tsmi2.Checked;
|
||||
}
|
||||
|
||||
selectedEnum((T)Enum.ToObject(typeof(T), 1 << index));
|
||||
selectedEnum(currentEnum);
|
||||
|
||||
UpdateUploaderMenuNames();
|
||||
};
|
||||
|
@ -581,6 +586,27 @@ private void AddMultiEnumItems<T>(Action<T> selectedEnum, params ToolStripDropDo
|
|||
}
|
||||
}
|
||||
|
||||
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();
|
||||
|
|
Loading…
Reference in a new issue