增加ctrlV导入
This commit is contained in:
14
SpineViewer/Controls/SpineListView.Designer.cs
generated
14
SpineViewer/Controls/SpineListView.Designer.cs
generated
@@ -53,6 +53,7 @@
|
|||||||
toolStripMenuItem_DetailsView = new ToolStripMenuItem();
|
toolStripMenuItem_DetailsView = new ToolStripMenuItem();
|
||||||
imageList_LargeIcon = new ImageList(components);
|
imageList_LargeIcon = new ImageList(components);
|
||||||
imageList_SmallIcon = new ImageList(components);
|
imageList_SmallIcon = new ImageList(components);
|
||||||
|
toolStripMenuItem_AddFromClipboard = new ToolStripMenuItem();
|
||||||
contextMenuStrip.SuspendLayout();
|
contextMenuStrip.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
@@ -88,9 +89,9 @@
|
|||||||
// contextMenuStrip
|
// contextMenuStrip
|
||||||
//
|
//
|
||||||
contextMenuStrip.ImageScalingSize = new Size(24, 24);
|
contextMenuStrip.ImageScalingSize = new Size(24, 24);
|
||||||
contextMenuStrip.Items.AddRange(new ToolStripItem[] { toolStripMenuItem_Add, toolStripMenuItem_Insert, toolStripMenuItem_Remove, toolStripSeparator1, toolStripMenuItem_BatchAdd, toolStripMenuItem_RemoveAll, toolStripSeparator2, toolStripMenuItem_MoveUp, toolStripMenuItem_MoveDown, toolStripMenuItem_MoveTop, toolStripMenuItem_MoveBottom, toolStripSeparator3, toolStripMenuItem_SelectAll, toolStripMenuItem_CopyPreview, toolStripSeparator4, toolStripMenuItem_ChangeView });
|
contextMenuStrip.Items.AddRange(new ToolStripItem[] { toolStripMenuItem_Add, toolStripMenuItem_Insert, toolStripMenuItem_Remove, toolStripSeparator1, toolStripMenuItem_BatchAdd, toolStripMenuItem_RemoveAll, toolStripSeparator2, toolStripMenuItem_MoveUp, toolStripMenuItem_MoveDown, toolStripMenuItem_MoveTop, toolStripMenuItem_MoveBottom, toolStripSeparator3, toolStripMenuItem_CopyPreview, toolStripMenuItem_AddFromClipboard, toolStripMenuItem_SelectAll, toolStripSeparator4, toolStripMenuItem_ChangeView });
|
||||||
contextMenuStrip.Name = "contextMenuStrip";
|
contextMenuStrip.Name = "contextMenuStrip";
|
||||||
contextMenuStrip.Size = new Size(329, 388);
|
contextMenuStrip.Size = new Size(329, 451);
|
||||||
contextMenuStrip.Closed += contextMenuStrip_Closed;
|
contextMenuStrip.Closed += contextMenuStrip_Closed;
|
||||||
contextMenuStrip.Opening += contextMenuStrip_Opening;
|
contextMenuStrip.Opening += contextMenuStrip_Opening;
|
||||||
//
|
//
|
||||||
@@ -241,6 +242,14 @@
|
|||||||
imageList_SmallIcon.ImageSize = new Size(48, 48);
|
imageList_SmallIcon.ImageSize = new Size(48, 48);
|
||||||
imageList_SmallIcon.TransparentColor = Color.Transparent;
|
imageList_SmallIcon.TransparentColor = Color.Transparent;
|
||||||
//
|
//
|
||||||
|
// toolStripMenuItem_AddFromClipboard
|
||||||
|
//
|
||||||
|
toolStripMenuItem_AddFromClipboard.Name = "toolStripMenuItem_AddFromClipboard";
|
||||||
|
toolStripMenuItem_AddFromClipboard.ShortcutKeys = Keys.Control | Keys.V;
|
||||||
|
toolStripMenuItem_AddFromClipboard.Size = new Size(328, 30);
|
||||||
|
toolStripMenuItem_AddFromClipboard.Text = "从剪贴板添加";
|
||||||
|
toolStripMenuItem_AddFromClipboard.Click += toolStripMenuItem_AddFromClipboard_Click;
|
||||||
|
//
|
||||||
// SpineListView
|
// SpineListView
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(11F, 24F);
|
AutoScaleDimensions = new SizeF(11F, 24F);
|
||||||
@@ -277,5 +286,6 @@
|
|||||||
private ToolStripMenuItem toolStripMenuItem_CopyPreview;
|
private ToolStripMenuItem toolStripMenuItem_CopyPreview;
|
||||||
private ToolStripMenuItem toolStripMenuItem_SelectAll;
|
private ToolStripMenuItem toolStripMenuItem_SelectAll;
|
||||||
private ToolStripSeparator toolStripSeparator4;
|
private ToolStripSeparator toolStripSeparator4;
|
||||||
|
private ToolStripMenuItem toolStripMenuItem_AddFromClipboard;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ namespace SpineViewer.Controls
|
|||||||
private void listView_DragOver(object sender, DragEventArgs e)
|
private void listView_DragOver(object sender, DragEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Data.GetDataPresent(DataFormats.Serializable))
|
if (e.Data.GetDataPresent(DataFormats.Serializable))
|
||||||
{
|
{
|
||||||
// 获取鼠标位置并确定目标索引
|
// 获取鼠标位置并确定目标索引
|
||||||
var point = listView.PointToClient(new(e.X, e.Y));
|
var point = listView.PointToClient(new(e.X, e.Y));
|
||||||
var targetItem = listView.GetItemAt(point.X, point.Y);
|
var targetItem = listView.GetItemAt(point.X, point.Y);
|
||||||
@@ -197,23 +197,7 @@ namespace SpineViewer.Controls
|
|||||||
}
|
}
|
||||||
else if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
else if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||||
{
|
{
|
||||||
var validPaths = ((string[])e.Data.GetData(DataFormats.FileDrop)).Where(
|
AddFromFileDrop((string[])e.Data.GetData(DataFormats.FileDrop));
|
||||||
path => File.Exists(path) &&
|
|
||||||
(Path.GetExtension(path).Equals(".skel", StringComparison.OrdinalIgnoreCase) ||
|
|
||||||
Path.GetExtension(path).Equals(".json", StringComparison.OrdinalIgnoreCase))
|
|
||||||
).ToArray();
|
|
||||||
|
|
||||||
if (validPaths.Length > 1)
|
|
||||||
{
|
|
||||||
var progressDialog = new Dialogs.ProgressDialog();
|
|
||||||
progressDialog.DoWork += BatchAdd_Work;
|
|
||||||
progressDialog.RunWorkerAsync(new Dialogs.BatchOpenSpineDialogResult(Spine.Version.Auto, validPaths));
|
|
||||||
progressDialog.ShowDialog();
|
|
||||||
}
|
|
||||||
else if (validPaths.Length > 0)
|
|
||||||
{
|
|
||||||
Insert(new Dialogs.OpenSpineDialogResult(Spine.Version.Auto, validPaths[0]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -383,14 +367,6 @@ namespace SpineViewer.Controls
|
|||||||
PropertyGrid.SelectedObject = null;
|
PropertyGrid.SelectedObject = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void toolStripMenuItem_SelectAll_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
listView.BeginUpdate();
|
|
||||||
foreach (ListViewItem item in listView.Items)
|
|
||||||
item.Selected = true;
|
|
||||||
listView.EndUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void toolStripMenuItem_CopyPreview_Click(object sender, EventArgs e)
|
private void toolStripMenuItem_CopyPreview_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var fileDropList = new StringCollection();
|
var fileDropList = new StringCollection();
|
||||||
@@ -411,6 +387,25 @@ namespace SpineViewer.Controls
|
|||||||
Clipboard.SetFileDropList(fileDropList);
|
Clipboard.SetFileDropList(fileDropList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toolStripMenuItem_AddFromClipboard_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (Clipboard.ContainsFileDropList())
|
||||||
|
{
|
||||||
|
var fileDropList = Clipboard.GetFileDropList();
|
||||||
|
var paths = new string[fileDropList.Count];
|
||||||
|
fileDropList.CopyTo(paths, 0);
|
||||||
|
AddFromFileDrop(paths);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void toolStripMenuItem_SelectAll_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
listView.BeginUpdate();
|
||||||
|
foreach (ListViewItem item in listView.Items)
|
||||||
|
item.Selected = true;
|
||||||
|
listView.EndUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
private void toolStripMenuItem_LargeIconView_Click(object sender, EventArgs e)
|
private void toolStripMenuItem_LargeIconView_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
listView.View = View.LargeIcon;
|
listView.View = View.LargeIcon;
|
||||||
@@ -528,6 +523,27 @@ namespace SpineViewer.Controls
|
|||||||
Program.Logger.Info($"Current memory usage: {Program.Process.WorkingSet64 / 1024.0 / 1024.0:F2} MB");
|
Program.Logger.Info($"Current memory usage: {Program.Process.WorkingSet64 / 1024.0 / 1024.0:F2} MB");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void AddFromFileDrop(string[] paths)
|
||||||
|
{
|
||||||
|
var validPaths = paths.Where(
|
||||||
|
path => File.Exists(path) &&
|
||||||
|
(Path.GetExtension(path).Equals(".skel", StringComparison.OrdinalIgnoreCase) ||
|
||||||
|
Path.GetExtension(path).Equals(".json", StringComparison.OrdinalIgnoreCase))
|
||||||
|
).ToArray();
|
||||||
|
|
||||||
|
if (validPaths.Length > 1)
|
||||||
|
{
|
||||||
|
var progressDialog = new Dialogs.ProgressDialog();
|
||||||
|
progressDialog.DoWork += BatchAdd_Work;
|
||||||
|
progressDialog.RunWorkerAsync(new Dialogs.BatchOpenSpineDialogResult(Spine.Version.Auto, validPaths));
|
||||||
|
progressDialog.ShowDialog();
|
||||||
|
}
|
||||||
|
else if (validPaths.Length > 0)
|
||||||
|
{
|
||||||
|
Insert(new Dialogs.OpenSpineDialogResult(Spine.Version.Auto, validPaths[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void ExportPreview_Work(object? sender, DoWorkEventArgs e)
|
private void ExportPreview_Work(object? sender, DoWorkEventArgs e)
|
||||||
{
|
{
|
||||||
var worker = sender as BackgroundWorker;
|
var worker = sender as BackgroundWorker;
|
||||||
|
|||||||
Reference in New Issue
Block a user