mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-05 20:54:31 +13:00
Adding regions in task settings form
This commit is contained in:
parent
d41cc5f18f
commit
8df8df3f01
1 changed files with 156 additions and 94 deletions
|
@ -51,6 +51,8 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
TaskSettings = hotkeySetting;
|
||||
IsDefault = isDefault;
|
||||
|
||||
UpdateWindowTitle();
|
||||
|
||||
if (IsDefault)
|
||||
{
|
||||
tcTaskSettings.TabPages.Remove(tpTask);
|
||||
|
@ -72,7 +74,11 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
chkUseDefaultAdvancedSettings.Checked = TaskSettings.UseDefaultAdvancedSettings;
|
||||
}
|
||||
|
||||
UpdateWindowTitle();
|
||||
UpdateDefaultSettingVisibility();
|
||||
|
||||
tttvMain.MainTabControl = tcTaskSettings;
|
||||
|
||||
#region Task
|
||||
|
||||
AddEnumItemsContextMenu<HotkeyType>(x =>
|
||||
{
|
||||
|
@ -81,16 +87,15 @@ 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)
|
||||
{
|
||||
SetEnumChecked(TaskSettings.ImageFileDestination, tsmiImageFileUploaders);
|
||||
}
|
||||
else // if click not on "folder" with destinations then uncheck file destinations
|
||||
else
|
||||
{
|
||||
MainForm.Uncheck(tsmiImageFileUploaders);
|
||||
}
|
||||
|
@ -101,16 +106,15 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
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
|
||||
else
|
||||
{
|
||||
MainForm.Uncheck(tsmiTextFileUploaders);
|
||||
}
|
||||
|
@ -121,7 +125,6 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
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);
|
||||
|
@ -139,7 +142,6 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
|
||||
if (Program.UploadersConfig != null)
|
||||
{
|
||||
// FTP
|
||||
if (Program.UploadersConfig.FTPAccountList.Count > 0)
|
||||
{
|
||||
chkOverrideFTP.Checked = TaskSettings.OverrideFTP;
|
||||
|
@ -148,7 +150,6 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
cboFTPaccounts.SelectedIndex = TaskSettings.FTPIndex.BetweenOrDefault(0, Program.UploadersConfig.FTPAccountList.Count - 1);
|
||||
}
|
||||
|
||||
// Custom uploader
|
||||
if (Program.UploadersConfig.CustomUploadersList.Count > 0)
|
||||
{
|
||||
chkOverrideCustomUploader.Checked = TaskSettings.OverrideCustomUploader;
|
||||
|
@ -161,14 +162,22 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
UpdateDestinationStates();
|
||||
UpdateUploaderMenuNames();
|
||||
|
||||
// General
|
||||
#endregion Task
|
||||
|
||||
#region General
|
||||
|
||||
cbPlaySoundAfterCapture.Checked = TaskSettings.GeneralSettings.PlaySoundAfterCapture;
|
||||
cbPlaySoundAfterUpload.Checked = TaskSettings.GeneralSettings.PlaySoundAfterUpload;
|
||||
cboPopUpNotification.Items.Clear();
|
||||
cboPopUpNotification.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<PopUpNotificationType>());
|
||||
cboPopUpNotification.SelectedIndex = (int)TaskSettings.GeneralSettings.PopUpNotification;
|
||||
|
||||
// Image - General
|
||||
#endregion General
|
||||
|
||||
#region Image
|
||||
|
||||
#region General
|
||||
|
||||
cbImageFormat.Items.AddRange(Enum.GetNames(typeof(EImageFormat)));
|
||||
cbImageFormat.SelectedIndex = (int)TaskSettings.ImageSettings.ImageFormat;
|
||||
nudImageJPEGQuality.SetValue(TaskSettings.ImageSettings.ImageJPEGQuality);
|
||||
|
@ -181,18 +190,31 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
cbImageFileExist.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<FileExistAction>());
|
||||
cbImageFileExist.SelectedIndex = (int)TaskSettings.ImageSettings.FileExistAction;
|
||||
|
||||
// Image - Effects
|
||||
#endregion General
|
||||
|
||||
#region Effects
|
||||
|
||||
chkShowImageEffectsWindowAfterCapture.Checked = TaskSettings.ImageSettings.ShowImageEffectsWindowAfterCapture;
|
||||
cbImageEffectOnlyRegionCapture.Checked = TaskSettings.ImageSettings.ImageEffectOnlyRegionCapture;
|
||||
|
||||
// Image - Thumbnail
|
||||
#endregion Effects
|
||||
|
||||
#region Thumbnail
|
||||
|
||||
nudThumbnailWidth.SetValue(TaskSettings.ImageSettings.ThumbnailWidth);
|
||||
nudThumbnailHeight.SetValue(TaskSettings.ImageSettings.ThumbnailHeight);
|
||||
txtThumbnailName.Text = TaskSettings.ImageSettings.ThumbnailName;
|
||||
lblThumbnailNamePreview.Text = "ImageName" + TaskSettings.ImageSettings.ThumbnailName + ".jpg";
|
||||
cbThumbnailIfSmaller.Checked = TaskSettings.ImageSettings.ThumbnailCheckSize;
|
||||
|
||||
// Capture
|
||||
#endregion Thumbnail
|
||||
|
||||
#endregion Image
|
||||
|
||||
#region Capture
|
||||
|
||||
#region General
|
||||
|
||||
cbShowCursor.Checked = TaskSettings.CaptureSettings.ShowCursor;
|
||||
cbCaptureTransparent.Checked = TaskSettings.CaptureSettings.CaptureTransparent;
|
||||
cbCaptureShadow.Enabled = TaskSettings.CaptureSettings.CaptureTransparent;
|
||||
|
@ -207,7 +229,10 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
nudCaptureCustomRegionWidth.SetValue(TaskSettings.CaptureSettings.CaptureCustomRegion.Width);
|
||||
nudCaptureCustomRegionHeight.SetValue(TaskSettings.CaptureSettings.CaptureCustomRegion.Height);
|
||||
|
||||
// Capture / Region capture
|
||||
#endregion General
|
||||
|
||||
#region Region capture
|
||||
|
||||
cbRegionCaptureMultiRegionMode.Checked = !TaskSettings.CaptureSettings.SurfaceOptions.QuickCrop;
|
||||
cbRegionCaptureMouseRightClickAction.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<RegionCaptureAction>());
|
||||
cbRegionCaptureMouseRightClickAction.SelectedIndex = (int)TaskSettings.CaptureSettings.SurfaceOptions.MouseRightClickAction;
|
||||
|
@ -218,6 +243,7 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
cbRegionCaptureMouse5ClickAction.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<RegionCaptureAction>());
|
||||
cbRegionCaptureMouse5ClickAction.SelectedIndex = (int)TaskSettings.CaptureSettings.SurfaceOptions.Mouse5ClickAction;
|
||||
cbRegionCaptureDetectWindows.Checked = TaskSettings.CaptureSettings.SurfaceOptions.DetectWindows;
|
||||
cbRegionCaptureDetectControls.Enabled = TaskSettings.CaptureSettings.SurfaceOptions.DetectWindows;
|
||||
cbRegionCaptureDetectControls.Checked = TaskSettings.CaptureSettings.SurfaceOptions.DetectControls;
|
||||
cbRegionCaptureUseDimming.Checked = TaskSettings.CaptureSettings.SurfaceOptions.UseDimming;
|
||||
cbRegionCaptureUseCustomInfoText.Checked = TaskSettings.CaptureSettings.SurfaceOptions.UseCustomInfoText;
|
||||
|
@ -225,7 +251,10 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
txtRegionCaptureUseCustomInfoText.Text = TaskSettings.CaptureSettings.SurfaceOptions.CustomInfoText;
|
||||
cbRegionCaptureSnapSizes.Items.AddRange(TaskSettings.CaptureSettings.SurfaceOptions.SnapSizes.ToArray());
|
||||
|
||||
// Capture / Screen recorder
|
||||
#endregion Region capture
|
||||
|
||||
#region Screen recorder
|
||||
|
||||
nudScreenRecordFPS.SetValue(TaskSettings.CaptureSettings.ScreenRecordFPS);
|
||||
nudGIFFPS.SetValue(TaskSettings.CaptureSettings.GIFFPS);
|
||||
cbGIFEncoding.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<ScreenRecordGIFEncoding>());
|
||||
|
@ -238,30 +267,21 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
chkRunScreencastCLI.Checked = cboEncoder.Enabled = btnEncoderConfig.Enabled = TaskSettings.CaptureSettings.RunScreencastCLI;
|
||||
UpdateVideoEncoders();
|
||||
|
||||
// Capture / Scrolling capture
|
||||
#endregion Screen recorder
|
||||
|
||||
#region Scrolling capture
|
||||
|
||||
if (TaskSettings.CaptureSettings.ScrollingCaptureOptions == null) TaskSettings.CaptureSettings.ScrollingCaptureOptions = new ScrollingCaptureOptions();
|
||||
pgScrollingCapture.SelectedObject = TaskSettings.CaptureSettings.ScrollingCaptureOptions;
|
||||
|
||||
// Actions
|
||||
TaskHelpers.AddDefaultExternalPrograms(TaskSettings);
|
||||
TaskSettings.ExternalPrograms.ForEach(AddFileAction);
|
||||
#endregion Scrolling capture
|
||||
|
||||
// Watch folders
|
||||
cbWatchFolderEnabled.Checked = TaskSettings.WatchFolderEnabled;
|
||||
#endregion Capture
|
||||
|
||||
if (TaskSettings.WatchFolderList == null)
|
||||
{
|
||||
TaskSettings.WatchFolderList = new List<WatchFolderSettings>();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (WatchFolderSettings watchFolder in TaskSettings.WatchFolderList)
|
||||
{
|
||||
AddWatchFolder(watchFolder);
|
||||
}
|
||||
}
|
||||
#region Upload
|
||||
|
||||
#region File naming
|
||||
|
||||
// Upload / File naming
|
||||
txtNameFormatPattern.Text = TaskSettings.UploadSettings.NameFormatPattern;
|
||||
txtNameFormatPatternActiveWindow.Text = TaskSettings.UploadSettings.NameFormatPatternActiveWindow;
|
||||
CodeMenu.Create<ReplCodeMenuEntry>(txtNameFormatPattern, ReplCodeMenuEntry.n, ReplCodeMenuEntry.t, ReplCodeMenuEntry.pn);
|
||||
|
@ -280,28 +300,82 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
|
|||
}
|
||||
}
|
||||
|
||||
// Upload / Clipboard upload
|
||||
#endregion File naming
|
||||
|
||||
#region Clipboard upload
|
||||
|
||||
chkClipboardUploadURLContents.Checked = TaskSettings.UploadSettings.ClipboardUploadURLContents;
|
||||
cbClipboardUploadShortenURL.Checked = TaskSettings.UploadSettings.ClipboardUploadShortenURL;
|
||||
cbClipboardUploadShareURL.Checked = TaskSettings.UploadSettings.ClipboardUploadShareURL;
|
||||
cbClipboardUploadAutoIndexFolder.Checked = TaskSettings.UploadSettings.ClipboardUploadAutoIndexFolder;
|
||||
|
||||
// Tools / Indexer
|
||||
#endregion Clipboard upload
|
||||
|
||||
#endregion Upload
|
||||
|
||||
#region Actions
|
||||
|
||||
TaskHelpers.AddDefaultExternalPrograms(TaskSettings);
|
||||
TaskSettings.ExternalPrograms.ForEach(AddFileAction);
|
||||
|
||||
#endregion Actions
|
||||
|
||||
#region Watch folders
|
||||
|
||||
cbWatchFolderEnabled.Checked = TaskSettings.WatchFolderEnabled;
|
||||
|
||||
if (TaskSettings.WatchFolderList == null)
|
||||
{
|
||||
TaskSettings.WatchFolderList = new List<WatchFolderSettings>();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (WatchFolderSettings watchFolder in TaskSettings.WatchFolderList)
|
||||
{
|
||||
AddWatchFolder(watchFolder);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Watch folders
|
||||
|
||||
#region Tools
|
||||
|
||||
#region Indexer
|
||||
|
||||
pgIndexer.SelectedObject = TaskSettings.ToolsSettings.IndexerSettings;
|
||||
|
||||
// Tools / Video thumbnailer
|
||||
#endregion Indexer
|
||||
|
||||
#region Video thumbnailer
|
||||
|
||||
pgVideoThumbnailer.SelectedObject = TaskSettings.ToolsSettings.VideoThumbnailOptions;
|
||||
|
||||
// Advanced
|
||||
#endregion Video thumbnailer
|
||||
|
||||
#endregion Tools
|
||||
|
||||
#region Advanced
|
||||
|
||||
pgTaskSettings.SelectedObject = TaskSettings.AdvancedSettings;
|
||||
|
||||
tttvMain.MainTabControl = tcTaskSettings;
|
||||
|
||||
UpdateDefaultSettingVisibility();
|
||||
#endregion Advanced
|
||||
|
||||
loaded = true;
|
||||
}
|
||||
|
||||
private void TaskSettingsForm_Resize(object sender, EventArgs e)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
|
||||
private void tttvMain_TabChanged(TabPage tabPage)
|
||||
{
|
||||
if (IsDefault && (tabPage == tpUploadMain || tabPage == tpToolsMain))
|
||||
{
|
||||
tttvMain.SelectChild();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateWindowTitle()
|
||||
{
|
||||
if (IsDefault)
|
||||
|
@ -314,22 +388,6 @@ private void UpdateWindowTitle()
|
|||
}
|
||||
}
|
||||
|
||||
private void UpdateVideoEncoders()
|
||||
{
|
||||
cboEncoder.Items.Clear();
|
||||
|
||||
if (Program.Settings.VideoEncoders.Count > 0)
|
||||
{
|
||||
Program.Settings.VideoEncoders.ForEach(x => cboEncoder.Items.Add(x));
|
||||
cboEncoder.SelectedIndex = TaskSettings.CaptureSettings.VideoEncoderSelected.BetweenOrDefault(0, Program.Settings.VideoEncoders.Count - 1);
|
||||
}
|
||||
else if (!cboEncoder.Items.Contains(Resources.TaskSettingsForm_ConfigureEncoder_Configure_CLI_video_encoders_____))
|
||||
{
|
||||
cboEncoder.Items.Add(Resources.TaskSettingsForm_ConfigureEncoder_Configure_CLI_video_encoders_____);
|
||||
cboEncoder.SelectedIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateDefaultSettingVisibility()
|
||||
{
|
||||
if (!IsDefault)
|
||||
|
@ -344,42 +402,6 @@ private void UpdateDefaultSettingVisibility()
|
|||
}
|
||||
}
|
||||
|
||||
private void UpdateNameFormatPreviews()
|
||||
{
|
||||
NameParser nameParser = new NameParser(NameParserType.FileName)
|
||||
{
|
||||
AutoIncrementNumber = Program.Settings.NameParserAutoIncrementNumber,
|
||||
WindowText = Text,
|
||||
ProcessName = "ShareX",
|
||||
ImageWidth = 1920,
|
||||
ImageHeight = 1080,
|
||||
MaxNameLength = TaskSettings.AdvancedSettings.NamePatternMaxLength,
|
||||
MaxTitleLength = TaskSettings.AdvancedSettings.NamePatternMaxTitleLength,
|
||||
CustomTimeZone = TaskSettings.UploadSettings.UseCustomTimeZone ? TaskSettings.UploadSettings.CustomTimeZone : null
|
||||
};
|
||||
|
||||
lblNameFormatPatternPreview.Text = Resources.TaskSettingsForm_txtNameFormatPatternActiveWindow_TextChanged_Preview_ + " " +
|
||||
nameParser.Parse(TaskSettings.UploadSettings.NameFormatPattern);
|
||||
|
||||
lblNameFormatPatternPreviewActiveWindow.Text = Resources.TaskSettingsForm_txtNameFormatPatternActiveWindow_TextChanged_Preview_ + " " +
|
||||
nameParser.Parse(TaskSettings.UploadSettings.NameFormatPatternActiveWindow);
|
||||
|
||||
lblAutoIncrementNumber.Text = Program.Settings.NameParserAutoIncrementNumber.ToString();
|
||||
}
|
||||
|
||||
private void tttvMain_TabChanged(TabPage tabPage)
|
||||
{
|
||||
if (IsDefault && (tabPage == tpUploadMain || tabPage == tpToolsMain))
|
||||
{
|
||||
tttvMain.SelectChild();
|
||||
}
|
||||
}
|
||||
|
||||
private void TaskSettingsForm_Resize(object sender, EventArgs e)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
|
||||
#region Task
|
||||
|
||||
private void UpdateDestinationStates()
|
||||
|
@ -862,6 +884,7 @@ private void cbRegionCaptureMouse5ClickAction_SelectedIndexChanged(object sender
|
|||
private void cbRegionCaptureDetectWindows_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
TaskSettings.CaptureSettings.SurfaceOptions.DetectWindows = cbRegionCaptureDetectWindows.Checked;
|
||||
cbRegionCaptureDetectControls.Enabled = TaskSettings.CaptureSettings.SurfaceOptions.DetectWindows;
|
||||
}
|
||||
|
||||
private void cbRegionCaptureDetectControls_CheckedChanged(object sender, EventArgs e)
|
||||
|
@ -888,6 +911,22 @@ private void txtRegionCaptureUseCustomInfoText_TextChanged(object sender, EventA
|
|||
|
||||
#region Screen recorder
|
||||
|
||||
private void UpdateVideoEncoders()
|
||||
{
|
||||
cboEncoder.Items.Clear();
|
||||
|
||||
if (Program.Settings.VideoEncoders.Count > 0)
|
||||
{
|
||||
Program.Settings.VideoEncoders.ForEach(x => cboEncoder.Items.Add(x));
|
||||
cboEncoder.SelectedIndex = TaskSettings.CaptureSettings.VideoEncoderSelected.BetweenOrDefault(0, Program.Settings.VideoEncoders.Count - 1);
|
||||
}
|
||||
else if (!cboEncoder.Items.Contains(Resources.TaskSettingsForm_ConfigureEncoder_Configure_CLI_video_encoders_____))
|
||||
{
|
||||
cboEncoder.Items.Add(Resources.TaskSettingsForm_ConfigureEncoder_Configure_CLI_video_encoders_____);
|
||||
cboEncoder.SelectedIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnScreenRecorderFFmpegOptions_Click(object sender, EventArgs e)
|
||||
{
|
||||
ScreencastOptions options = new ScreencastOptions
|
||||
|
@ -993,6 +1032,29 @@ private void btnEncoderConfig_Click(object sender, EventArgs e)
|
|||
|
||||
#region Upload
|
||||
|
||||
private void UpdateNameFormatPreviews()
|
||||
{
|
||||
NameParser nameParser = new NameParser(NameParserType.FileName)
|
||||
{
|
||||
AutoIncrementNumber = Program.Settings.NameParserAutoIncrementNumber,
|
||||
WindowText = Text,
|
||||
ProcessName = "ShareX",
|
||||
ImageWidth = 1920,
|
||||
ImageHeight = 1080,
|
||||
MaxNameLength = TaskSettings.AdvancedSettings.NamePatternMaxLength,
|
||||
MaxTitleLength = TaskSettings.AdvancedSettings.NamePatternMaxTitleLength,
|
||||
CustomTimeZone = TaskSettings.UploadSettings.UseCustomTimeZone ? TaskSettings.UploadSettings.CustomTimeZone : null
|
||||
};
|
||||
|
||||
lblNameFormatPatternPreview.Text = Resources.TaskSettingsForm_txtNameFormatPatternActiveWindow_TextChanged_Preview_ + " " +
|
||||
nameParser.Parse(TaskSettings.UploadSettings.NameFormatPattern);
|
||||
|
||||
lblNameFormatPatternPreviewActiveWindow.Text = Resources.TaskSettingsForm_txtNameFormatPatternActiveWindow_TextChanged_Preview_ + " " +
|
||||
nameParser.Parse(TaskSettings.UploadSettings.NameFormatPatternActiveWindow);
|
||||
|
||||
lblAutoIncrementNumber.Text = Program.Settings.NameParserAutoIncrementNumber.ToString();
|
||||
}
|
||||
|
||||
private void chkUseDefaultUploadSettings_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
TaskSettings.UseDefaultUploadSettings = chkUseDefaultUploadSettings.Checked;
|
||||
|
|
Loading…
Reference in a new issue