mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-04 12:14:45 +13:00
Merge pull request #283 from barsv/fix_1_menuChecks
Change check behavior for Destinations->Image uploader->File uploader
This commit is contained in:
commit
3e0fa792ec
4 changed files with 86 additions and 7 deletions
|
@ -89,7 +89,26 @@ private void InitControls()
|
|||
tsddbAfterCaptureTasks, tsmiTrayAfterCaptureTasks);
|
||||
AddMultiEnumItems<AfterUploadTasks>(x => Program.DefaultTaskSettings.AfterUploadJob = Program.DefaultTaskSettings.AfterUploadJob.Swap(x),
|
||||
tsddbAfterUploadTasks, tsmiTrayAfterUploadTasks);
|
||||
AddEnumItems<ImageDestination>(x => Program.DefaultTaskSettings.ImageDestination = x, tsmiImageUploaders, tsmiTrayImageUploaders);
|
||||
// Destinations -> Image uploader
|
||||
AddEnumItems<ImageDestination>(x =>
|
||||
{
|
||||
Program.DefaultTaskSettings.ImageDestination = x;
|
||||
// if click on "folder" with file destinations then set ImageFileDestination and check it
|
||||
if (x == ImageDestination.FileUploader)
|
||||
{
|
||||
Program.DefaultTaskSettings.ImageFileDestination =
|
||||
Program.DefaultTaskSettings.ImageFileDestination ?? FileDestination.Dropbox;
|
||||
SetEnumChecked(Program.DefaultTaskSettings.ImageFileDestination, tsmiImageFileUploaders,
|
||||
tsmiTrayImageFileUploaders);
|
||||
}
|
||||
else // if click not on "folder" with destinations then uncheck file destinations
|
||||
{
|
||||
if (Program.DefaultTaskSettings.ImageFileDestination != null)
|
||||
{
|
||||
Uncheck(tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
||||
}
|
||||
}
|
||||
}, tsmiImageUploaders, tsmiTrayImageUploaders);
|
||||
tsmiImageFileUploaders = (ToolStripDropDownItem)tsmiImageUploaders.DropDownItems[tsmiImageUploaders.DropDownItems.Count - 1];
|
||||
tsmiTrayImageFileUploaders = (ToolStripDropDownItem)tsmiTrayImageUploaders.DropDownItems[tsmiTrayImageUploaders.DropDownItems.Count - 1];
|
||||
AddEnumItems<FileDestination>(x =>
|
||||
|
@ -98,7 +117,26 @@ private void InitControls()
|
|||
tsmiImageFileUploaders.PerformClick();
|
||||
tsmiTrayImageFileUploaders.PerformClick();
|
||||
}, tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
||||
AddEnumItems<TextDestination>(x => Program.DefaultTaskSettings.TextDestination = x, tsmiTextUploaders, tsmiTrayTextUploaders);
|
||||
// Destinations -> Text uploader
|
||||
AddEnumItems<TextDestination>(x =>
|
||||
{
|
||||
Program.DefaultTaskSettings.TextDestination = x;
|
||||
// if click on "folder" with file destinations then set TextFileDestination and check it
|
||||
if (x == TextDestination.FileUploader)
|
||||
{
|
||||
Program.DefaultTaskSettings.TextFileDestination = Program.DefaultTaskSettings.TextFileDestination
|
||||
?? FileDestination.Dropbox;
|
||||
SetEnumChecked(Program.DefaultTaskSettings.TextFileDestination, tsmiTextFileUploaders,
|
||||
tsmiTrayTextFileUploaders);
|
||||
}
|
||||
else // if click not on "folder" with destinations then uncheck file destinations
|
||||
{
|
||||
if (Program.DefaultTaskSettings.TextFileDestination != null)
|
||||
{
|
||||
Uncheck(tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
||||
}
|
||||
}
|
||||
}, tsmiTextUploaders, tsmiTrayTextUploaders);
|
||||
tsmiTextFileUploaders = (ToolStripDropDownItem)tsmiTextUploaders.DropDownItems[tsmiTextUploaders.DropDownItems.Count - 1];
|
||||
tsmiTrayTextFileUploaders = (ToolStripDropDownItem)tsmiTrayTextUploaders.DropDownItems[tsmiTrayTextUploaders.DropDownItems.Count - 1];
|
||||
AddEnumItems<FileDestination>(x =>
|
||||
|
@ -107,6 +145,7 @@ private void InitControls()
|
|||
tsmiTextFileUploaders.PerformClick();
|
||||
tsmiTrayTextFileUploaders.PerformClick();
|
||||
}, tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
||||
// Destinations -> File uploader
|
||||
AddEnumItems<FileDestination>(x => Program.DefaultTaskSettings.FileDestination = x, tsmiFileUploaders, tsmiTrayFileUploaders);
|
||||
AddEnumItems<UrlShortenerType>(x => Program.DefaultTaskSettings.URLShortenerDestination = x, tsmiURLShorteners, tsmiTrayURLShorteners);
|
||||
AddEnumItems<URLSharingServices>(x => Program.DefaultTaskSettings.URLSharingServiceDestination = x, tsmiURLSharingServices, tsmiTrayURLSharingServices);
|
||||
|
@ -141,6 +180,21 @@ private void InitControls()
|
|||
ExportImportControl.UploadRequested += json => UploadManager.UploadText(json);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unchecks all items in drop downs
|
||||
/// </summary>
|
||||
/// <param name="lists">List of drop downs</param>
|
||||
public static void Uncheck(params ToolStripDropDownItem[] lists)
|
||||
{
|
||||
foreach (ToolStripDropDownItem parent in lists)
|
||||
{
|
||||
foreach (var dropDownItem in parent.DropDownItems)
|
||||
{
|
||||
((ToolStripMenuItem)dropDownItem).Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateWorkflowsMenu()
|
||||
{
|
||||
tsddbWorkflows.DropDownItems.Clear();
|
||||
|
@ -230,8 +284,15 @@ private void AddEnumItems<T>(Action<T> selectedEnum, params ToolStripDropDownIte
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Finds dropDowonItem corresponding to the enum value and checks it.
|
||||
/// </summary>
|
||||
/// <param name="value">Enum item</param>
|
||||
/// <param name="parents">DropDowns where enum-th item must be checked.</param>
|
||||
private void SetEnumChecked(Enum value, params ToolStripDropDownItem[] parents)
|
||||
{
|
||||
if (value == null)
|
||||
return;
|
||||
int index = value.GetIndex();
|
||||
|
||||
foreach (ToolStripDropDownItem parent in parents)
|
||||
|
|
|
@ -83,7 +83,25 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
}, cmsTask);
|
||||
AddMultiEnumItemsContextMenu<AfterCaptureTasks>(x => TaskSettings.AfterCaptureJob = TaskSettings.AfterCaptureJob.Swap(x), cmsAfterCapture);
|
||||
AddMultiEnumItemsContextMenu<AfterUploadTasks>(x => TaskSettings.AfterUploadJob = TaskSettings.AfterUploadJob.Swap(x), cmsAfterUpload);
|
||||
AddEnumItems<ImageDestination>(x => TaskSettings.ImageDestination = x, tsmiImageUploaders);
|
||||
AddEnumItems<ImageDestination>(x =>
|
||||
{
|
||||
TaskSettings.ImageDestination = x;
|
||||
// if click on "folder" with file destinations then set ImageFileDestination and check it
|
||||
if (x == ImageDestination.FileUploader)
|
||||
{
|
||||
TaskSettings.ImageFileDestination = TaskSettings.ImageFileDestination
|
||||
?? FileDestination.Dropbox;
|
||||
SetEnumChecked(TaskSettings.ImageFileDestination, tsmiImageFileUploaders);
|
||||
}
|
||||
else // if click not on "folder" with destinations then uncheck file destinations
|
||||
{
|
||||
if (TaskSettings.ImageFileDestination != null)
|
||||
{
|
||||
MainForm.Uncheck(tsmiImageFileUploaders);
|
||||
}
|
||||
}
|
||||
TaskSettings.ImageFileDestination = null;
|
||||
}, tsmiImageUploaders);
|
||||
tsmiImageFileUploaders = (ToolStripDropDownItem)tsmiImageUploaders.DropDownItems[tsmiImageUploaders.DropDownItems.Count - 1];
|
||||
AddEnumItems<FileDestination>(x => TaskSettings.ImageFileDestination = x, tsmiImageFileUploaders);
|
||||
AddEnumItems<TextDestination>(x => TaskSettings.TextDestination = x, tsmiTextUploaders);
|
||||
|
|
|
@ -63,9 +63,9 @@ public string Description
|
|||
|
||||
public bool UseDefaultDestinations = true;
|
||||
public ImageDestination ImageDestination = ImageDestination.Imgur;
|
||||
public FileDestination ImageFileDestination = FileDestination.Dropbox;
|
||||
public FileDestination? ImageFileDestination = null;
|
||||
public TextDestination TextDestination = TextDestination.Pastebin;
|
||||
public FileDestination TextFileDestination = FileDestination.Dropbox;
|
||||
public FileDestination? TextFileDestination = null;
|
||||
public FileDestination FileDestination = FileDestination.Dropbox;
|
||||
public UrlShortenerType URLShortenerDestination = UrlShortenerType.BITLY;
|
||||
public URLSharingServices URLSharingServiceDestination = URLSharingServices.Twitter;
|
||||
|
|
|
@ -796,10 +796,10 @@ public UploadResult UploadFile(Stream stream, string fileName)
|
|||
switch (Info.DataType)
|
||||
{
|
||||
case EDataType.Image:
|
||||
fileDestination = Info.TaskSettings.ImageFileDestination;
|
||||
fileDestination = Info.TaskSettings.ImageFileDestination ?? FileDestination.Dropbox;
|
||||
break;
|
||||
case EDataType.Text:
|
||||
fileDestination = Info.TaskSettings.TextFileDestination;
|
||||
fileDestination = Info.TaskSettings.TextFileDestination ?? FileDestination.Dropbox;
|
||||
break;
|
||||
default:
|
||||
case EDataType.File:
|
||||
|
|
Loading…
Reference in a new issue