fixed #3805: Added delete input file option to actions

This commit is contained in:
Jaex 2018-12-06 18:16:39 +03:00
parent 15cb8d3830
commit 1b0d16ab41
7 changed files with 175 additions and 88 deletions

View file

@ -32,16 +32,16 @@ namespace ShareX.HelpersLib
public class ExternalProgram public class ExternalProgram
{ {
public bool IsActive { get; set; } public bool IsActive { get; set; }
public bool HiddenWindow { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Path { get; set; } public string Path { get; set; }
public string Args { get; set; } public string Args { get; set; }
public string Extensions { get; set; }
public string OutputExtension { get; set; } public string OutputExtension { get; set; }
public string Extensions { get; set; }
public bool HiddenWindow { get; set; }
public bool DeleteInputFile { get; set; }
public ExternalProgram() public ExternalProgram()
{ {
IsActive = false;
Args = "%input"; Args = "%input";
} }
@ -59,87 +59,111 @@ public ExternalProgram(string name, string path, string args) : this(name, path)
} }
} }
public string Run(string filePath) public string Run(string inputPath)
{ {
if (!string.IsNullOrEmpty(filePath) && CheckExtensions(filePath) && !string.IsNullOrEmpty(Path) && File.Exists(Path)) if (!string.IsNullOrEmpty(Path) && File.Exists(Path) && !string.IsNullOrWhiteSpace(inputPath))
{ {
filePath = filePath.Trim('"'); inputPath = inputPath.Trim('"');
try if (CheckExtension(inputPath, Extensions))
{ {
string outputPath = ""; try
using (Process process = new Process())
{ {
ProcessStartInfo psi = new ProcessStartInfo(Path); string outputPath = inputPath;
if (string.IsNullOrEmpty(Args)) using (Process process = new Process())
{ {
psi.Arguments = '"' + filePath + '"'; ProcessStartInfo psi = new ProcessStartInfo(Path);
} psi.UseShellExecute = false;
else
{ if (string.IsNullOrEmpty(Args))
if (!string.IsNullOrEmpty(OutputExtension))
{ {
outputPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(filePath), System.IO.Path.GetFileNameWithoutExtension(filePath)); psi.Arguments = '"' + inputPath + '"';
if (!OutputExtension.Contains("."))
{
OutputExtension = "." + OutputExtension;
}
outputPath += OutputExtension;
} }
else else
{ {
outputPath = filePath; if (!string.IsNullOrWhiteSpace(OutputExtension))
{
outputPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(inputPath), System.IO.Path.GetFileNameWithoutExtension(inputPath));
if (!OutputExtension.StartsWith("."))
{
outputPath += ".";
}
outputPath += OutputExtension;
}
psi.Arguments = CodeMenuEntryActions.Parse(Args, inputPath, outputPath);
} }
psi.Arguments = CodeMenuEntryActions.Parse(Args, filePath, outputPath); if (HiddenWindow)
{
psi.CreateNoWindow = true;
}
process.StartInfo = psi;
DebugHelper.WriteLine($"Running \"{psi.FileName}\" with arguments: {psi.Arguments}");
process.Start();
process.WaitForExit();
} }
if (HiddenWindow) if (!string.IsNullOrEmpty(outputPath) && File.Exists(outputPath))
{ {
psi.WindowStyle = ProcessWindowStyle.Hidden; if (DeleteInputFile && !inputPath.Equals(outputPath, StringComparison.OrdinalIgnoreCase) && File.Exists(inputPath))
psi.CreateNoWindow = true; {
DebugHelper.WriteLine("Deleting input file: " + inputPath);
File.Delete(inputPath);
}
return outputPath;
} }
process.StartInfo = psi; return inputPath;
DebugHelper.WriteLine(string.Format("Running {0} with arguments: {1}", Path, psi.Arguments));
process.Start();
process.WaitForExit();
} }
catch (Exception e)
if (!string.IsNullOrEmpty(outputPath) && File.Exists(outputPath))
{ {
return outputPath; DebugHelper.WriteException(e);
} }
return filePath;
}
catch (Exception e)
{
DebugHelper.WriteException(e);
} }
} }
return filePath; return inputPath;
} }
private bool CheckExtensions(string path) private bool CheckExtension(string path, string extensions)
{ {
if (string.IsNullOrEmpty(Extensions) || string.IsNullOrEmpty(path)) return true; if (!string.IsNullOrWhiteSpace(path))
int idx = 0;
for (int i = 0; i <= Extensions.Length; ++i)
{ {
if (i == Extensions.Length || !char.IsLetterOrDigit(Extensions[i])) if (string.IsNullOrWhiteSpace(extensions))
{ {
if (idx < i && path.EndsWith(Extensions.Substring(idx, i - idx))) return true; return true;
idx = i + 1; }
int index = 0;
for (int i = 0; i <= extensions.Length; ++i)
{
if (i == extensions.Length || !char.IsLetterOrDigit(extensions[i]))
{
if (i > index)
{
string extension = "." + extensions.Substring(index, i - index);
if (path.EndsWith(extension, StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
index = i + 1;
}
} }
} }
return false; return false;
} }
} }

View file

@ -43,6 +43,7 @@ private void InitializeComponent()
this.txtOutputExtension = new System.Windows.Forms.TextBox(); this.txtOutputExtension = new System.Windows.Forms.TextBox();
this.lblOutputExtension = new System.Windows.Forms.Label(); this.lblOutputExtension = new System.Windows.Forms.Label();
this.cbHiddenWindow = new System.Windows.Forms.CheckBox(); this.cbHiddenWindow = new System.Windows.Forms.CheckBox();
this.cbDeleteInputFile = new System.Windows.Forms.CheckBox();
this.SuspendLayout(); this.SuspendLayout();
// //
// lblName // lblName
@ -92,6 +93,7 @@ private void InitializeComponent()
// btnCancel // btnCancel
// //
resources.ApplyResources(this.btnCancel, "btnCancel"); resources.ApplyResources(this.btnCancel, "btnCancel");
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Name = "btnCancel"; this.btnCancel.Name = "btnCancel";
this.btnCancel.UseVisualStyleBackColor = true; this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
@ -110,6 +112,7 @@ private void InitializeComponent()
// //
resources.ApplyResources(this.txtOutputExtension, "txtOutputExtension"); resources.ApplyResources(this.txtOutputExtension, "txtOutputExtension");
this.txtOutputExtension.Name = "txtOutputExtension"; this.txtOutputExtension.Name = "txtOutputExtension";
this.txtOutputExtension.TextChanged += new System.EventHandler(this.txtOutputExtension_TextChanged);
// //
// lblOutputExtension // lblOutputExtension
// //
@ -122,6 +125,12 @@ private void InitializeComponent()
this.cbHiddenWindow.Name = "cbHiddenWindow"; this.cbHiddenWindow.Name = "cbHiddenWindow";
this.cbHiddenWindow.UseVisualStyleBackColor = true; this.cbHiddenWindow.UseVisualStyleBackColor = true;
// //
// cbDeleteInputFile
//
resources.ApplyResources(this.cbDeleteInputFile, "cbDeleteInputFile");
this.cbDeleteInputFile.Name = "cbDeleteInputFile";
this.cbDeleteInputFile.UseVisualStyleBackColor = true;
//
// ActionsForm // ActionsForm
// //
this.AcceptButton = this.btnOK; this.AcceptButton = this.btnOK;
@ -129,6 +138,7 @@ private void InitializeComponent()
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Window; this.BackColor = System.Drawing.SystemColors.Window;
this.CancelButton = this.btnCancel; this.CancelButton = this.btnCancel;
this.Controls.Add(this.cbDeleteInputFile);
this.Controls.Add(this.cbHiddenWindow); this.Controls.Add(this.cbHiddenWindow);
this.Controls.Add(this.lblOutputExtension); this.Controls.Add(this.lblOutputExtension);
this.Controls.Add(this.txtOutputExtension); this.Controls.Add(this.txtOutputExtension);
@ -166,5 +176,6 @@ private void InitializeComponent()
private System.Windows.Forms.TextBox txtOutputExtension; private System.Windows.Forms.TextBox txtOutputExtension;
private System.Windows.Forms.Label lblOutputExtension; private System.Windows.Forms.Label lblOutputExtension;
private System.Windows.Forms.CheckBox cbHiddenWindow; private System.Windows.Forms.CheckBox cbHiddenWindow;
private System.Windows.Forms.CheckBox cbDeleteInputFile;
} }
} }

View file

@ -51,6 +51,7 @@ public ActionsForm(ExternalProgram fileAction)
txtOutputExtension.Text = fileAction.OutputExtension ?? ""; txtOutputExtension.Text = fileAction.OutputExtension ?? "";
txtExtensions.Text = fileAction.Extensions ?? ""; txtExtensions.Text = fileAction.Extensions ?? "";
cbHiddenWindow.Checked = fileAction.HiddenWindow; cbHiddenWindow.Checked = fileAction.HiddenWindow;
cbDeleteInputFile.Checked = fileAction.DeleteInputFile;
} }
private void btnPathBrowse_Click(object sender, EventArgs e) private void btnPathBrowse_Click(object sender, EventArgs e)
@ -58,6 +59,11 @@ private void btnPathBrowse_Click(object sender, EventArgs e)
Helpers.BrowseFile(txtPath); Helpers.BrowseFile(txtPath);
} }
private void txtOutputExtension_TextChanged(object sender, EventArgs e)
{
cbDeleteInputFile.Enabled = txtOutputExtension.TextLength > 0;
}
private void btnOK_Click(object sender, EventArgs e) private void btnOK_Click(object sender, EventArgs e)
{ {
if (string.IsNullOrEmpty(txtName.Text)) if (string.IsNullOrEmpty(txtName.Text))
@ -78,6 +84,7 @@ private void btnOK_Click(object sender, EventArgs e)
FileAction.Extensions = txtExtensions.Text; FileAction.Extensions = txtExtensions.Text;
FileAction.OutputExtension = txtOutputExtension.Text; FileAction.OutputExtension = txtOutputExtension.Text;
FileAction.HiddenWindow = cbHiddenWindow.Checked; FileAction.HiddenWindow = cbHiddenWindow.Checked;
FileAction.DeleteInputFile = cbDeleteInputFile.Checked;
DialogResult = DialogResult.OK; DialogResult = DialogResult.OK;
Close(); Close();

View file

@ -144,7 +144,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblName.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblName.ZOrder" xml:space="preserve">
<value>13</value> <value>14</value>
</data> </data>
<data name="lblPath.AutoSize" type="System.Boolean, mscorlib"> <data name="lblPath.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -171,7 +171,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblPath.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblPath.ZOrder" xml:space="preserve">
<value>12</value> <value>13</value>
</data> </data>
<data name="lblArgs.AutoSize" type="System.Boolean, mscorlib"> <data name="lblArgs.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -198,7 +198,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblArgs.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblArgs.ZOrder" xml:space="preserve">
<value>11</value> <value>12</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="txtName.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="txtName.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
@ -223,7 +223,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;txtName.ZOrder" xml:space="preserve"> <data name="&gt;&gt;txtName.ZOrder" xml:space="preserve">
<value>10</value> <value>11</value>
</data> </data>
<data name="txtPath.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="txtPath.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value> <value>Top, Left, Right</value>
@ -247,7 +247,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;txtPath.ZOrder" xml:space="preserve"> <data name="&gt;&gt;txtPath.ZOrder" xml:space="preserve">
<value>9</value> <value>10</value>
</data> </data>
<data name="txtArguments.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="txtArguments.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value> <value>Top, Left, Right</value>
@ -271,7 +271,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;txtArguments.ZOrder" xml:space="preserve"> <data name="&gt;&gt;txtArguments.ZOrder" xml:space="preserve">
<value>8</value> <value>9</value>
</data> </data>
<data name="btnPathBrowse.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="btnPathBrowse.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value> <value>Top, Right</value>
@ -287,7 +287,7 @@
</data> </data>
<data name="btnPathBrowse.Text" xml:space="preserve"> <data name="btnPathBrowse.Text" xml:space="preserve">
<value>...</value> <value>...</value>
<comment>@Invariant</comment></data> </data>
<data name="&gt;&gt;btnPathBrowse.Name" xml:space="preserve"> <data name="&gt;&gt;btnPathBrowse.Name" xml:space="preserve">
<value>btnPathBrowse</value> <value>btnPathBrowse</value>
</data> </data>
@ -298,16 +298,16 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;btnPathBrowse.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnPathBrowse.ZOrder" xml:space="preserve">
<value>7</value> <value>8</value>
</data> </data>
<data name="btnOK.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="btnOK.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value> <value>Bottom, Right</value>
</data> </data>
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
<value>155, 285</value> <value>136, 304</value>
</data> </data>
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing"> <data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 24</value> <value>80, 24</value>
</data> </data>
<data name="btnOK.TabIndex" type="System.Int32, mscorlib"> <data name="btnOK.TabIndex" type="System.Int32, mscorlib">
<value>11</value> <value>11</value>
@ -325,16 +325,16 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;btnOK.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnOK.ZOrder" xml:space="preserve">
<value>6</value> <value>7</value>
</data> </data>
<data name="btnCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="btnCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value> <value>Bottom, Right</value>
</data> </data>
<data name="btnCancel.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnCancel.Location" type="System.Drawing.Point, System.Drawing">
<value>233, 285</value> <value>224, 304</value>
</data> </data>
<data name="btnCancel.Size" type="System.Drawing.Size, System.Drawing"> <data name="btnCancel.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 24</value> <value>80, 24</value>
</data> </data>
<data name="btnCancel.TabIndex" type="System.Int32, mscorlib"> <data name="btnCancel.TabIndex" type="System.Int32, mscorlib">
<value>12</value> <value>12</value>
@ -352,7 +352,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;btnCancel.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnCancel.ZOrder" xml:space="preserve">
<value>5</value> <value>6</value>
</data> </data>
<data name="lblExtensions.AutoSize" type="System.Boolean, mscorlib"> <data name="lblExtensions.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -379,7 +379,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblExtensions.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblExtensions.ZOrder" xml:space="preserve">
<value>4</value> <value>5</value>
</data> </data>
<data name="txtExtensions.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="txtExtensions.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value> <value>Top, Left, Right</value>
@ -403,7 +403,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;txtExtensions.ZOrder" xml:space="preserve"> <data name="&gt;&gt;txtExtensions.ZOrder" xml:space="preserve">
<value>3</value> <value>4</value>
</data> </data>
<data name="txtOutputExtension.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms"> <data name="txtOutputExtension.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value> <value>Top, Left, Right</value>
@ -427,7 +427,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;txtOutputExtension.ZOrder" xml:space="preserve"> <data name="&gt;&gt;txtOutputExtension.ZOrder" xml:space="preserve">
<value>2</value> <value>3</value>
</data> </data>
<data name="lblOutputExtension.AutoSize" type="System.Boolean, mscorlib"> <data name="lblOutputExtension.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -454,7 +454,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblOutputExtension.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblOutputExtension.ZOrder" xml:space="preserve">
<value>1</value> <value>2</value>
</data> </data>
<data name="cbHiddenWindow.AutoSize" type="System.Boolean, mscorlib"> <data name="cbHiddenWindow.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -484,6 +484,36 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;cbHiddenWindow.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbHiddenWindow.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cbDeleteInputFile.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbDeleteInputFile.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="cbDeleteInputFile.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 272</value>
</data>
<data name="cbDeleteInputFile.Size" type="System.Drawing.Size, System.Drawing">
<value>99, 17</value>
</data>
<data name="cbDeleteInputFile.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="cbDeleteInputFile.Text" xml:space="preserve">
<value>Delete input file</value>
</data>
<data name="&gt;&gt;cbDeleteInputFile.Name" xml:space="preserve">
<value>cbDeleteInputFile</value>
</data>
<data name="&gt;&gt;cbDeleteInputFile.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbDeleteInputFile.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;cbDeleteInputFile.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@ -493,7 +523,7 @@
<value>6, 13</value> <value>6, 13</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>313, 317</value> <value>313, 337</value>
</data> </data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms"> <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value> <value>CenterScreen</value>

View file

@ -1935,6 +1935,7 @@ private void InitializeComponent()
this.lvActions.View = System.Windows.Forms.View.Details; this.lvActions.View = System.Windows.Forms.View.Details;
this.lvActions.ItemMoved += new ShareX.HelpersLib.MyListView.ListViewItemMovedEventHandler(this.lvActions_ItemMoved); this.lvActions.ItemMoved += new ShareX.HelpersLib.MyListView.ListViewItemMovedEventHandler(this.lvActions_ItemMoved);
this.lvActions.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.lvActions_ItemChecked); this.lvActions.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.lvActions_ItemChecked);
this.lvActions.SelectedIndexChanged += new System.EventHandler(this.lvActions_SelectedIndexChanged);
// //
// chActionsName // chActionsName
// //

View file

@ -311,7 +311,7 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
cbCaptureOCRAutoCopy.Enabled = !cbCaptureOCRSilent.Checked; cbCaptureOCRAutoCopy.Enabled = !cbCaptureOCRSilent.Checked;
cbCaptureOCRProcessOnLoad.Enabled = !cbCaptureOCRSilent.Checked; cbCaptureOCRProcessOnLoad.Enabled = !cbCaptureOCRSilent.Checked;
#endregion #endregion OCR
#endregion Capture #endregion Capture
@ -1139,7 +1139,7 @@ private void cbCaptureOCRAutoCopy_CheckedChanged(object sender, EventArgs e)
TaskSettings.CaptureSettings.OCROptions.AutoCopy = cbCaptureOCRAutoCopy.Checked; TaskSettings.CaptureSettings.OCROptions.AutoCopy = cbCaptureOCRAutoCopy.Checked;
} }
#endregion #endregion OCR
#endregion Capture #endregion Capture
@ -1206,6 +1206,11 @@ private void txtNameFormatPatternActiveWindow_TextChanged(object sender, EventAr
UpdateNameFormatPreviews(); UpdateNameFormatPreviews();
} }
private void cbFileUploadReplaceProblematicCharacters_CheckedChanged(object sender, EventArgs e)
{
TaskSettings.UploadSettings.FileUploadReplaceProblematicCharacters = cbFileUploadReplaceProblematicCharacters.Checked;
}
private void btnResetAutoIncrementNumber_Click(object sender, EventArgs e) private void btnResetAutoIncrementNumber_Click(object sender, EventArgs e)
{ {
Program.Settings.NameParserAutoIncrementNumber = 0; Program.Settings.NameParserAutoIncrementNumber = 0;
@ -1424,6 +1429,11 @@ private void btnActionsRemove_Click(object sender, EventArgs e)
} }
} }
private void lvActions_SelectedIndexChanged(object sender, EventArgs e)
{
btnActionsEdit.Enabled = btnActionsDuplicate.Enabled = btnActionsRemove.Enabled = lvActions.SelectedItems.Count > 0;
}
private void lvActions_ItemChecked(object sender, ItemCheckedEventArgs e) private void lvActions_ItemChecked(object sender, ItemCheckedEventArgs e)
{ {
ExternalProgram fileAction = e.Item.Tag as ExternalProgram; ExternalProgram fileAction = e.Item.Tag as ExternalProgram;
@ -1534,11 +1544,6 @@ private void txtToolsScreenColorPickerFormat_TextChanged(object sender, EventArg
TaskSettings.ToolsSettings.ScreenColorPickerFormat = txtToolsScreenColorPickerFormat.Text; TaskSettings.ToolsSettings.ScreenColorPickerFormat = txtToolsScreenColorPickerFormat.Text;
} }
private void cbFileUploadReplaceProblematicCharacters_CheckedChanged(object sender, EventArgs e)
{
TaskSettings.UploadSettings.FileUploadReplaceProblematicCharacters = cbFileUploadReplaceProblematicCharacters.Checked;
}
#endregion Tools #endregion Tools
#region Advanced #region Advanced

View file

@ -421,7 +421,7 @@
<value>btnAfterCapture</value> <value>btnAfterCapture</value>
</data> </data>
<data name="&gt;&gt;btnAfterCapture.Type" xml:space="preserve"> <data name="&gt;&gt;btnAfterCapture.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value> <value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=12.4.0.0, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;btnAfterCapture.Parent" xml:space="preserve"> <data name="&gt;&gt;btnAfterCapture.Parent" xml:space="preserve">
<value>tpTask</value> <value>tpTask</value>
@ -451,7 +451,7 @@
<value>btnAfterUpload</value> <value>btnAfterUpload</value>
</data> </data>
<data name="&gt;&gt;btnAfterUpload.Type" xml:space="preserve"> <data name="&gt;&gt;btnAfterUpload.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value> <value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=12.4.0.0, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;btnAfterUpload.Parent" xml:space="preserve"> <data name="&gt;&gt;btnAfterUpload.Parent" xml:space="preserve">
<value>tpTask</value> <value>tpTask</value>
@ -523,7 +523,7 @@
<value>btnDestinations</value> <value>btnDestinations</value>
</data> </data>
<data name="&gt;&gt;btnDestinations.Type" xml:space="preserve"> <data name="&gt;&gt;btnDestinations.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value> <value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=12.4.0.0, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;btnDestinations.Parent" xml:space="preserve"> <data name="&gt;&gt;btnDestinations.Parent" xml:space="preserve">
<value>tpTask</value> <value>tpTask</value>
@ -553,7 +553,7 @@
<value>btnTask</value> <value>btnTask</value>
</data> </data>
<data name="&gt;&gt;btnTask.Type" xml:space="preserve"> <data name="&gt;&gt;btnTask.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value> <value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=12.4.0.0, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;btnTask.Parent" xml:space="preserve"> <data name="&gt;&gt;btnTask.Parent" xml:space="preserve">
<value>tpTask</value> <value>tpTask</value>
@ -4606,7 +4606,7 @@
<value>lvUploaderFiltersList</value> <value>lvUploaderFiltersList</value>
</data> </data>
<data name="&gt;&gt;lvUploaderFiltersList.Type" xml:space="preserve"> <data name="&gt;&gt;lvUploaderFiltersList.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value> <value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=12.4.0.0, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;lvUploaderFiltersList.Parent" xml:space="preserve"> <data name="&gt;&gt;lvUploaderFiltersList.Parent" xml:space="preserve">
<value>tpUploaderFilters</value> <value>tpUploaderFilters</value>
@ -4887,6 +4887,9 @@
<data name="&gt;&gt;tpUpload.ZOrder" xml:space="preserve"> <data name="&gt;&gt;tpUpload.ZOrder" xml:space="preserve">
<value>4</value> <value>4</value>
</data> </data>
<data name="btnActionsDuplicate.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="btnActionsDuplicate.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <data name="btnActionsDuplicate.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value> <value>NoControl</value>
</data> </data>
@ -4981,7 +4984,7 @@
<value>lvActions</value> <value>lvActions</value>
</data> </data>
<data name="&gt;&gt;lvActions.Type" xml:space="preserve"> <data name="&gt;&gt;lvActions.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value> <value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=12.4.0.0, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;lvActions.Parent" xml:space="preserve"> <data name="&gt;&gt;lvActions.Parent" xml:space="preserve">
<value>pActions</value> <value>pActions</value>
@ -4989,6 +4992,9 @@
<data name="&gt;&gt;lvActions.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lvActions.ZOrder" xml:space="preserve">
<value>2</value> <value>2</value>
</data> </data>
<data name="btnActionsEdit.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="btnActionsEdit.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <data name="btnActionsEdit.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value> <value>NoControl</value>
</data> </data>
@ -5016,6 +5022,9 @@
<data name="&gt;&gt;btnActionsEdit.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnActionsEdit.ZOrder" xml:space="preserve">
<value>3</value> <value>3</value>
</data> </data>
<data name="btnActionsRemove.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="btnActionsRemove.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <data name="btnActionsRemove.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value> <value>NoControl</value>
</data> </data>
@ -5572,7 +5581,7 @@
<value>tttvMain</value> <value>tttvMain</value>
</data> </data>
<data name="&gt;&gt;tttvMain.Type" xml:space="preserve"> <data name="&gt;&gt;tttvMain.Type" xml:space="preserve">
<value>ShareX.HelpersLib.TabToTreeView, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value> <value>ShareX.HelpersLib.TabToTreeView, ShareX.HelpersLib, Version=12.4.0.0, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;tttvMain.Parent" xml:space="preserve"> <data name="&gt;&gt;tttvMain.Parent" xml:space="preserve">
<value>$this</value> <value>$this</value>