Support clipboard with batch audio-to-text - thx ard-av :)

Related to  #6296
This commit is contained in:
niksedk 2022-10-04 20:35:58 +02:00
parent d05c7c3e04
commit 6c88e286b7
4 changed files with 74 additions and 6 deletions

View File

@ -293,6 +293,7 @@
this.listViewInputFiles.View = System.Windows.Forms.View.Details;
this.listViewInputFiles.DragDrop += new System.Windows.Forms.DragEventHandler(this.listViewInputFiles_DragDrop);
this.listViewInputFiles.DragEnter += new System.Windows.Forms.DragEventHandler(this.listViewInputFiles_DragEnter);
this.listViewInputFiles.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listViewInputFiles_KeyDown);
//
// columnHeaderFileName
//
@ -310,7 +311,7 @@
this.labelFC.Text = "labelFC";
this.labelFC.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// AudioToText
// VoskAudioToText
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
@ -330,7 +331,7 @@
this.Controls.Add(this.textBoxLog);
this.KeyPreview = true;
this.MinimumSize = new System.Drawing.Size(575, 250);
this.Name = "AudioToText";
this.Name = "VoskAudioToText";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;

View File

@ -740,8 +740,13 @@ namespace Nikse.SubtitleEdit.Forms.AudioToText
private void AddInputFile(string fileName)
{
if (string.IsNullOrEmpty(fileName))
{
return;
}
var ext = Path.GetExtension(fileName).ToLowerInvariant();
if (Utilities.AudioFileExtensions.Contains(ext) || Utilities.VideoFileExtensions.Contains(ext))
if ((Utilities.AudioFileExtensions.Contains(ext) || Utilities.VideoFileExtensions.Contains(ext)) && File.Exists(fileName))
{
listViewInputFiles.Items.Add(fileName);
}
@ -751,5 +756,33 @@ namespace Nikse.SubtitleEdit.Forms.AudioToText
{
listViewInputFiles.AutoSizeLastColumn();
}
private void listViewInputFiles_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control) //Ctrl+V = Paste from clipboard
{
e.SuppressKeyPress = true;
var files = new List<string>();
if (Clipboard.ContainsFileDropList())
{
foreach (var fileName in Clipboard.GetFileDropList())
{
files.Add(fileName);
}
}
else if (Clipboard.ContainsText())
{
foreach (var fileName in Clipboard.GetText().SplitToLines())
{
files.Add(fileName);
}
}
foreach (var file in files)
{
AddInputFile(file);
}
}
}
}
}

View File

@ -314,6 +314,7 @@
this.listViewInputFiles.View = System.Windows.Forms.View.Details;
this.listViewInputFiles.DragDrop += new System.Windows.Forms.DragEventHandler(this.listViewInputFiles_DragDrop);
this.listViewInputFiles.DragEnter += new System.Windows.Forms.DragEventHandler(this.listViewInputFiles_DragEnter);
this.listViewInputFiles.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listViewInputFiles_KeyDown);
//
// columnHeaderFileName
//
@ -331,7 +332,7 @@
this.labelFC.Text = "labelFC";
this.labelFC.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// AudioToTextWhisper
// WhisperAudioToText
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
@ -351,7 +352,7 @@
this.Controls.Add(this.textBoxLog);
this.KeyPreview = true;
this.MinimumSize = new System.Drawing.Size(575, 250);
this.Name = "AudioToTextWhisper";
this.Name = "WhisperAudioToText";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;

View File

@ -747,8 +747,13 @@ namespace Nikse.SubtitleEdit.Forms.AudioToText
private void AddInputFile(string fileName)
{
if (string.IsNullOrEmpty(fileName))
{
return;
}
var ext = Path.GetExtension(fileName).ToLowerInvariant();
if (Utilities.AudioFileExtensions.Contains(ext) || Utilities.VideoFileExtensions.Contains(ext))
if ((Utilities.AudioFileExtensions.Contains(ext) || Utilities.VideoFileExtensions.Contains(ext)) && File.Exists(fileName))
{
listViewInputFiles.Items.Add(fileName);
}
@ -758,5 +763,33 @@ namespace Nikse.SubtitleEdit.Forms.AudioToText
{
listViewInputFiles.AutoSizeLastColumn();
}
private void listViewInputFiles_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control) //Ctrl+V = Paste from clipboard
{
e.SuppressKeyPress = true;
var files = new List<string>();
if (Clipboard.ContainsFileDropList())
{
foreach (var fileName in Clipboard.GetFileDropList())
{
files.Add(fileName);
}
}
else if (Clipboard.ContainsText())
{
foreach (var fileName in Clipboard.GetText().SplitToLines())
{
files.Add(fileName);
}
}
foreach (var file in files)
{
AddInputFile(file);
}
}
}
}
}