mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-02 18:26:27 +13:00
Merge pull request #284 from barsv/fix_1_menuChecks
Code improvements and fixes for pull request "Change check behavior for Destinations->Image uploader->File uploader #283"
This commit is contained in:
commit
ddd87cd4e1
4 changed files with 80 additions and 31 deletions
|
@ -96,17 +96,12 @@ private void InitControls()
|
|||
// 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);
|
||||
}
|
||||
Uncheck(tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
||||
}
|
||||
}, tsmiImageUploaders, tsmiTrayImageUploaders);
|
||||
tsmiImageFileUploaders = (ToolStripDropDownItem)tsmiImageUploaders.DropDownItems[tsmiImageUploaders.DropDownItems.Count - 1];
|
||||
|
@ -124,17 +119,12 @@ private void InitControls()
|
|||
// 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);
|
||||
}
|
||||
Uncheck(tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
||||
}
|
||||
}, tsmiTextUploaders, tsmiTrayTextUploaders);
|
||||
tsmiTextFileUploaders = (ToolStripDropDownItem)tsmiTextUploaders.DropDownItems[tsmiTextUploaders.DropDownItems.Count - 1];
|
||||
|
@ -289,7 +279,7 @@ private void AddEnumItems<T>(Action<T> selectedEnum, params ToolStripDropDownIte
|
|||
/// </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)
|
||||
private static void SetEnumChecked(Enum value, params ToolStripDropDownItem[] parents)
|
||||
{
|
||||
if (value == null)
|
||||
return;
|
||||
|
@ -571,14 +561,54 @@ public void UpdateMainFormSettings()
|
|||
SetMultiEnumChecked(Program.DefaultTaskSettings.AfterCaptureJob, tsddbAfterCaptureTasks, tsmiTrayAfterCaptureTasks);
|
||||
SetMultiEnumChecked(Program.DefaultTaskSettings.AfterUploadJob, tsddbAfterUploadTasks, tsmiTrayAfterUploadTasks);
|
||||
SetEnumChecked(Program.DefaultTaskSettings.ImageDestination, tsmiImageUploaders, tsmiTrayImageUploaders);
|
||||
SetEnumChecked(Program.DefaultTaskSettings.ImageFileDestination, tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
||||
SetImageFileDestinationChecked(Program.DefaultTaskSettings.ImageDestination,
|
||||
Program.DefaultTaskSettings.ImageFileDestination, tsmiImageFileUploaders, tsmiTrayImageFileUploaders);
|
||||
SetEnumChecked(Program.DefaultTaskSettings.TextDestination, tsmiTextUploaders, tsmiTrayTextUploaders);
|
||||
SetEnumChecked(Program.DefaultTaskSettings.TextFileDestination, tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
||||
SetTextFileDestinationChecked(Program.DefaultTaskSettings.TextDestination,
|
||||
Program.DefaultTaskSettings.TextFileDestination , tsmiTextFileUploaders, tsmiTrayTextFileUploaders);
|
||||
SetEnumChecked(Program.DefaultTaskSettings.FileDestination, tsmiFileUploaders, tsmiTrayFileUploaders);
|
||||
SetEnumChecked(Program.DefaultTaskSettings.URLShortenerDestination, tsmiURLShorteners, tsmiTrayURLShorteners);
|
||||
SetEnumChecked(Program.DefaultTaskSettings.URLSharingServiceDestination, tsmiURLSharingServices, tsmiTrayURLSharingServices);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets necessary menu item checked in Text Uploader->File Uploader.
|
||||
/// </summary>
|
||||
/// <param name="textDestination">Currently checked menu item inside Text Uploader</param>
|
||||
/// <param name="textFileDestination">Currently checked menu item inside Text Uploader->File Uploader</param>
|
||||
/// <param name="lists">List of menu items to be analysed for being checked.</param>
|
||||
public static void SetTextFileDestinationChecked(TextDestination textDestination,
|
||||
FileDestination textFileDestination, params ToolStripDropDownItem[] lists)
|
||||
{
|
||||
if (textDestination == TextDestination.FileUploader)
|
||||
{
|
||||
SetEnumChecked(textFileDestination, lists);
|
||||
}
|
||||
else
|
||||
{
|
||||
Uncheck(lists);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets necessary menu item checked in Image Uploader->File Uploader.
|
||||
/// </summary>
|
||||
/// <param name="imageDestination">Currently checked menu item inside Image Uploader</param>
|
||||
/// <param name="imageFileDestination">Currently checked menu item inside Image Uploader->File Uploader</param>
|
||||
/// <param name="lists">List of menu items to be analysed for being checked.</param>
|
||||
public static void SetImageFileDestinationChecked(ImageDestination imageDestination,
|
||||
FileDestination imageFileDestination, params ToolStripDropDownItem[] lists)
|
||||
{
|
||||
if (imageDestination == ImageDestination.FileUploader)
|
||||
{
|
||||
SetEnumChecked(imageFileDestination, lists);
|
||||
}
|
||||
else
|
||||
{
|
||||
Uncheck(lists);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateUploaderMenuNames()
|
||||
{
|
||||
string imageUploader = Program.DefaultTaskSettings.ImageDestination == ImageDestination.FileUploader ?
|
||||
|
|
|
@ -83,30 +83,47 @@ 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);
|
||||
// Destinations -> Image uploader
|
||||
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);
|
||||
}
|
||||
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);
|
||||
AddEnumItems<FileDestination>(x =>
|
||||
{
|
||||
TaskSettings.ImageFileDestination = x;
|
||||
tsmiImageFileUploaders.PerformClick();
|
||||
}, tsmiImageFileUploaders);
|
||||
// Destinations -> Text uploader
|
||||
AddEnumItems<TextDestination>(x =>
|
||||
{
|
||||
TaskSettings.TextDestination = x;
|
||||
// if click on "folder" with file destinations then set TextFileDestination and check it
|
||||
if (x == TextDestination.FileUploader)
|
||||
{
|
||||
SetEnumChecked(TaskSettings.TextFileDestination, tsmiTextFileUploaders);
|
||||
}
|
||||
else // if click not on "folder" with destinations then uncheck file destinations
|
||||
{
|
||||
MainForm.Uncheck(tsmiTextFileUploaders);
|
||||
}
|
||||
}, tsmiTextUploaders);
|
||||
tsmiTextFileUploaders = (ToolStripDropDownItem)tsmiTextUploaders.DropDownItems[tsmiTextUploaders.DropDownItems.Count - 1];
|
||||
AddEnumItems<FileDestination>(x => TaskSettings.TextFileDestination = x, tsmiTextFileUploaders);
|
||||
AddEnumItems<FileDestination>(x =>
|
||||
{
|
||||
TaskSettings.TextFileDestination = x;
|
||||
tsmiTextFileUploaders.PerformClick();
|
||||
}, tsmiTextFileUploaders);
|
||||
// Destinations -> File uploader
|
||||
AddEnumItems<FileDestination>(x => TaskSettings.FileDestination = x, tsmiFileUploaders);
|
||||
AddEnumItems<UrlShortenerType>(x => TaskSettings.URLShortenerDestination = x, tsmiURLShorteners);
|
||||
AddEnumItems<URLSharingServices>(x => TaskSettings.URLSharingServiceDestination = x, tsmiURLSharingServices);
|
||||
|
@ -115,9 +132,11 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
SetMultiEnumCheckedContextMenu(TaskSettings.AfterCaptureJob, cmsAfterCapture);
|
||||
SetMultiEnumCheckedContextMenu(TaskSettings.AfterUploadJob, cmsAfterUpload);
|
||||
SetEnumChecked(TaskSettings.ImageDestination, tsmiImageUploaders);
|
||||
SetEnumChecked(TaskSettings.ImageFileDestination, tsmiImageFileUploaders);
|
||||
MainForm.SetImageFileDestinationChecked(TaskSettings.ImageDestination,
|
||||
TaskSettings.ImageFileDestination, tsmiImageFileUploaders);
|
||||
SetEnumChecked(TaskSettings.TextDestination, tsmiTextUploaders);
|
||||
SetEnumChecked(TaskSettings.TextFileDestination, tsmiTextFileUploaders);
|
||||
MainForm.SetTextFileDestinationChecked(TaskSettings.TextDestination,
|
||||
TaskSettings.TextFileDestination, tsmiTextFileUploaders);
|
||||
SetEnumChecked(TaskSettings.FileDestination, tsmiFileUploaders);
|
||||
SetEnumChecked(TaskSettings.URLShortenerDestination, tsmiURLShorteners);
|
||||
SetEnumChecked(TaskSettings.URLSharingServiceDestination, tsmiURLSharingServices);
|
||||
|
|
|
@ -63,9 +63,9 @@ public string Description
|
|||
|
||||
public bool UseDefaultDestinations = true;
|
||||
public ImageDestination ImageDestination = ImageDestination.Imgur;
|
||||
public FileDestination? ImageFileDestination = null;
|
||||
public FileDestination ImageFileDestination = FileDestination.Dropbox;
|
||||
public TextDestination TextDestination = TextDestination.Pastebin;
|
||||
public FileDestination? TextFileDestination = null;
|
||||
public FileDestination TextFileDestination = FileDestination.Dropbox;
|
||||
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.Dropbox;
|
||||
fileDestination = Info.TaskSettings.ImageFileDestination;
|
||||
break;
|
||||
case EDataType.Text:
|
||||
fileDestination = Info.TaskSettings.TextFileDestination ?? FileDestination.Dropbox;
|
||||
fileDestination = Info.TaskSettings.TextFileDestination;
|
||||
break;
|
||||
default:
|
||||
case EDataType.File:
|
||||
|
|
Loading…
Reference in a new issue