diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index a1067af0a..007b2b06e 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -43,6 +43,7 @@ public partial class MainForm : HotkeyForm private bool forceClose; private UploadInfoManager uim; + private ToolStripDropDownItem tsmiImageFileUploaders, tsmiTrayImageFileUploaders, tsmiTextFileUploaders, tsmiTrayTextFileUploaders; public MainForm() { @@ -84,7 +85,13 @@ private void InitControls() AddMultiEnumItems(x => Program.DefaultTaskSettings.AfterUploadJob = Program.DefaultTaskSettings.AfterUploadJob.Swap(x), tsddbAfterUploadTasks, tsmiTrayAfterUploadTasks); AddEnumItems(x => Program.DefaultTaskSettings.ImageDestination = x, tsmiImageUploaders, tsmiTrayImageUploaders); + tsmiImageFileUploaders = (ToolStripDropDownItem)tsmiImageUploaders.DropDownItems[tsmiImageUploaders.DropDownItems.Count - 1]; + tsmiTrayImageFileUploaders = (ToolStripDropDownItem)tsmiTrayImageUploaders.DropDownItems[tsmiTrayImageUploaders.DropDownItems.Count - 1]; + AddEnumItems(x => Program.DefaultTaskSettings.ImageFileDestination = x, tsmiImageFileUploaders, tsmiTrayImageFileUploaders); AddEnumItems(x => Program.DefaultTaskSettings.TextDestination = x, tsmiTextUploaders, tsmiTrayTextUploaders); + tsmiTextFileUploaders = (ToolStripDropDownItem)tsmiTextUploaders.DropDownItems[tsmiTextUploaders.DropDownItems.Count - 1]; + tsmiTrayTextFileUploaders = (ToolStripDropDownItem)tsmiTrayTextUploaders.DropDownItems[tsmiTrayTextUploaders.DropDownItems.Count - 1]; + AddEnumItems(x => Program.DefaultTaskSettings.TextFileDestination = x, tsmiTextFileUploaders, tsmiTrayTextFileUploaders); AddEnumItems(x => Program.DefaultTaskSettings.FileDestination = x, tsmiFileUploaders, tsmiTrayFileUploaders); AddEnumItems(x => Program.DefaultTaskSettings.URLShortenerDestination = x, tsmiURLShorteners, tsmiTrayURLShorteners); AddEnumItems(x => Program.DefaultTaskSettings.SocialNetworkingServiceDestination = x, tsmiSocialServices, tsmiTraySocialServices); @@ -106,7 +113,9 @@ private void UpdateDestinationStates() if (Program.UploadersConfig != null) { EnableDisableToolStripMenuItems(tsmiImageUploaders, tsmiTrayImageUploaders); + EnableDisableToolStripMenuItems(tsmiImageFileUploaders, tsmiTrayImageFileUploaders); EnableDisableToolStripMenuItems(tsmiTextUploaders, tsmiTrayTextUploaders); + EnableDisableToolStripMenuItems(tsmiTextFileUploaders, tsmiTrayTextFileUploaders); EnableDisableToolStripMenuItems(tsmiFileUploaders, tsmiTrayFileUploaders); EnableDisableToolStripMenuItems(tsmiURLShorteners, tsmiTrayURLShorteners); EnableDisableToolStripMenuItems(tsmiSocialServices, tsmiTraySocialServices); @@ -366,9 +375,9 @@ private void RegisterMenuClosing() { foreach (ToolStripDropDownItem dropDownItem in new ToolStripDropDownItem[] { - tsddbAfterCaptureTasks, tsddbAfterUploadTasks, tsmiImageUploaders, tsmiTextUploaders, - tsmiFileUploaders, tsmiURLShorteners, tsmiSocialServices, tsmiTrayAfterCaptureTasks, tsmiTrayAfterUploadTasks, tsmiTrayImageUploaders, tsmiTrayTextUploaders, - tsmiTrayFileUploaders, tsmiTrayURLShorteners, tsmiTraySocialServices + tsddbAfterCaptureTasks, tsddbAfterUploadTasks, tsmiImageUploaders, tsmiImageFileUploaders, tsmiTextUploaders, tsmiTextFileUploaders, tsmiFileUploaders, + tsmiURLShorteners, tsmiSocialServices, tsmiTrayAfterCaptureTasks, tsmiTrayAfterUploadTasks, tsmiTrayImageUploaders, tsmiTrayImageFileUploaders, + tsmiTrayTextUploaders, tsmiTrayTextFileUploaders, tsmiTrayFileUploaders, tsmiTrayURLShorteners, tsmiTraySocialServices }) { dropDownItem.DropDown.Closing += (sender, e) => e.Cancel = (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked); @@ -386,7 +395,9 @@ 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); SetEnumChecked(Program.DefaultTaskSettings.TextDestination, tsmiTextUploaders, tsmiTrayTextUploaders); + SetEnumChecked(Program.DefaultTaskSettings.TextFileDestination, tsmiTextFileUploaders, tsmiTrayTextFileUploaders); SetEnumChecked(Program.DefaultTaskSettings.FileDestination, tsmiFileUploaders, tsmiTrayFileUploaders); SetEnumChecked(Program.DefaultTaskSettings.URLShortenerDestination, tsmiURLShorteners, tsmiTrayURLShorteners); SetEnumChecked(Program.DefaultTaskSettings.SocialNetworkingServiceDestination, tsmiSocialServices, tsmiTraySocialServices); @@ -395,11 +406,11 @@ public void UpdateMainFormSettings() private void UpdateUploaderMenuNames() { string imageUploader = Program.DefaultTaskSettings.ImageDestination == ImageDestination.FileUploader ? - Program.DefaultTaskSettings.FileDestination.GetDescription() : Program.DefaultTaskSettings.ImageDestination.GetDescription(); + Program.DefaultTaskSettings.ImageFileDestination.GetDescription() : Program.DefaultTaskSettings.ImageDestination.GetDescription(); tsmiImageUploaders.Text = tsmiTrayImageUploaders.Text = "Image uploader: " + imageUploader; string textUploader = Program.DefaultTaskSettings.TextDestination == TextDestination.FileUploader ? - Program.DefaultTaskSettings.FileDestination.GetDescription() : Program.DefaultTaskSettings.TextDestination.GetDescription(); + Program.DefaultTaskSettings.TextFileDestination.GetDescription() : Program.DefaultTaskSettings.TextDestination.GetDescription(); tsmiTextUploaders.Text = tsmiTrayTextUploaders.Text = "Text uploader: " + textUploader; tsmiFileUploaders.Text = tsmiTrayFileUploaders.Text = "File uploader: " + Program.DefaultTaskSettings.FileDestination.GetDescription(); diff --git a/ShareX/TaskSettings.cs b/ShareX/TaskSettings.cs index 13a69715d..5b7eef999 100644 --- a/ShareX/TaskSettings.cs +++ b/ShareX/TaskSettings.cs @@ -49,7 +49,9 @@ public class TaskSettings public bool UseDefaultDestinations = true; public ImageDestination ImageDestination = ImageDestination.Imgur; + public FileDestination ImageFileDestination = FileDestination.Dropbox; public TextDestination TextDestination = TextDestination.Pastebin; + public FileDestination TextFileDestination = FileDestination.Dropbox; public FileDestination FileDestination = FileDestination.Dropbox; public UrlShortenerType URLShortenerDestination = UrlShortenerType.BITLY; public SocialNetworkingService SocialNetworkingServiceDestination = SocialNetworkingService.Twitter; diff --git a/ShareX/UploadTask.cs b/ShareX/UploadTask.cs index 793007924..e2dd88944 100644 --- a/ShareX/UploadTask.cs +++ b/ShareX/UploadTask.cs @@ -298,12 +298,12 @@ private bool DoUpload() case EDataType.Image: Info.Result = UploadImage(Data, Info.FileName); break; - case EDataType.File: - Info.Result = UploadFile(Data, Info.FileName); - break; case EDataType.Text: Info.Result = UploadText(Data, Info.FileName); break; + case EDataType.File: + Info.Result = UploadFile(Data, Info.FileName); + break; } } catch (Exception e) @@ -693,7 +693,23 @@ public UploadResult UploadFile(Stream stream, string fileName) { FileUploader fileUploader = null; - switch (Info.TaskSettings.FileDestination) + FileDestination fileDestination; + + switch (Info.DataType) + { + case EDataType.Image: + fileDestination = Info.TaskSettings.ImageFileDestination; + break; + case EDataType.Text: + fileDestination = Info.TaskSettings.TextFileDestination; + break; + default: + case EDataType.File: + fileDestination = Info.TaskSettings.FileDestination; + break; + } + + switch (fileDestination) { case FileDestination.Dropbox: NameParser parser = new NameParser(NameParserType.URL);