mirror of
https://github.com/Ylianst/MeshCentralRouter
synced 2025-12-06 00:13:33 +00:00
Added some drag & drop support in the file manager.
This commit is contained in:
44
FileViewer.Designer.cs
generated
44
FileViewer.Designer.cs
generated
@@ -48,6 +48,8 @@ namespace MeshCentralRouter
|
||||
this.remoteDeleteButton = new System.Windows.Forms.Button();
|
||||
this.downloadButton = new System.Windows.Forms.Button();
|
||||
this.uploadButton = new System.Windows.Forms.Button();
|
||||
this.localDeleteButton = new System.Windows.Forms.Button();
|
||||
this.localNewFolderButton = new System.Windows.Forms.Button();
|
||||
this.topPanel = new System.Windows.Forms.Panel();
|
||||
this.statusStrip = new System.Windows.Forms.StatusStrip();
|
||||
this.mainToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
@@ -71,8 +73,6 @@ namespace MeshCentralRouter
|
||||
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.leftTopPanel = new System.Windows.Forms.Panel();
|
||||
this.localLabel = new System.Windows.Forms.Label();
|
||||
this.localDeleteButton = new System.Windows.Forms.Button();
|
||||
this.localNewFolderButton = new System.Windows.Forms.Button();
|
||||
this.topPanel.SuspendLayout();
|
||||
this.statusStrip.SuspendLayout();
|
||||
this.mainTableLayoutPanel.SuspendLayout();
|
||||
@@ -200,6 +200,24 @@ namespace MeshCentralRouter
|
||||
this.uploadButton.UseVisualStyleBackColor = true;
|
||||
this.uploadButton.Click += new System.EventHandler(this.uploadButton_Click);
|
||||
//
|
||||
// localDeleteButton
|
||||
//
|
||||
resources.ApplyResources(this.localDeleteButton, "localDeleteButton");
|
||||
this.localDeleteButton.Image = global::MeshCentralRouter.Properties.Resources.delete16;
|
||||
this.localDeleteButton.Name = "localDeleteButton";
|
||||
this.mainToolTip.SetToolTip(this.localDeleteButton, resources.GetString("localDeleteButton.ToolTip"));
|
||||
this.localDeleteButton.UseVisualStyleBackColor = true;
|
||||
this.localDeleteButton.Click += new System.EventHandler(this.localDeleteButton_Click);
|
||||
//
|
||||
// localNewFolderButton
|
||||
//
|
||||
resources.ApplyResources(this.localNewFolderButton, "localNewFolderButton");
|
||||
this.localNewFolderButton.Image = global::MeshCentralRouter.Properties.Resources.foldernew16;
|
||||
this.localNewFolderButton.Name = "localNewFolderButton";
|
||||
this.mainToolTip.SetToolTip(this.localNewFolderButton, resources.GetString("localNewFolderButton.ToolTip"));
|
||||
this.localNewFolderButton.UseVisualStyleBackColor = true;
|
||||
this.localNewFolderButton.Click += new System.EventHandler(this.localNewFolderButton_Click);
|
||||
//
|
||||
// topPanel
|
||||
//
|
||||
this.topPanel.BackColor = System.Drawing.SystemColors.Control;
|
||||
@@ -252,6 +270,7 @@ namespace MeshCentralRouter
|
||||
//
|
||||
// rightListView
|
||||
//
|
||||
this.rightListView.AllowDrop = true;
|
||||
this.rightListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.columnHeader3,
|
||||
this.columnHeader4});
|
||||
@@ -265,6 +284,8 @@ namespace MeshCentralRouter
|
||||
this.rightListView.View = System.Windows.Forms.View.Details;
|
||||
this.rightListView.ColumnWidthChanged += new System.Windows.Forms.ColumnWidthChangedEventHandler(this.rightListView_ColumnWidthChanged);
|
||||
this.rightListView.SelectedIndexChanged += new System.EventHandler(this.rightListView_SelectedIndexChanged);
|
||||
this.rightListView.DragDrop += new System.Windows.Forms.DragEventHandler(this.rightListView_DragDrop);
|
||||
this.rightListView.DragEnter += new System.Windows.Forms.DragEventHandler(this.rightListView_DragEnter);
|
||||
this.rightListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.rightListView_MouseDoubleClick);
|
||||
this.rightListView.Resize += new System.EventHandler(this.rightListView_Resize);
|
||||
//
|
||||
@@ -351,6 +372,7 @@ namespace MeshCentralRouter
|
||||
this.leftListView.ColumnWidthChanged += new System.Windows.Forms.ColumnWidthChangedEventHandler(this.leftListView_ColumnWidthChanged);
|
||||
this.leftListView.SelectedIndexChanged += new System.EventHandler(this.leftListView_SelectedIndexChanged);
|
||||
this.leftListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.leftListView_MouseDoubleClick);
|
||||
this.leftListView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.leftListView_MouseMove);
|
||||
this.leftListView.Resize += new System.EventHandler(this.leftListView_Resize);
|
||||
//
|
||||
// columnHeader1
|
||||
@@ -377,24 +399,6 @@ namespace MeshCentralRouter
|
||||
resources.ApplyResources(this.localLabel, "localLabel");
|
||||
this.localLabel.Name = "localLabel";
|
||||
//
|
||||
// localDeleteButton
|
||||
//
|
||||
resources.ApplyResources(this.localDeleteButton, "localDeleteButton");
|
||||
this.localDeleteButton.Image = global::MeshCentralRouter.Properties.Resources.delete16;
|
||||
this.localDeleteButton.Name = "localDeleteButton";
|
||||
this.mainToolTip.SetToolTip(this.localDeleteButton, resources.GetString("localDeleteButton.ToolTip"));
|
||||
this.localDeleteButton.UseVisualStyleBackColor = true;
|
||||
this.localDeleteButton.Click += new System.EventHandler(this.localDeleteButton_Click);
|
||||
//
|
||||
// localNewFolderButton
|
||||
//
|
||||
resources.ApplyResources(this.localNewFolderButton, "localNewFolderButton");
|
||||
this.localNewFolderButton.Image = global::MeshCentralRouter.Properties.Resources.foldernew16;
|
||||
this.localNewFolderButton.Name = "localNewFolderButton";
|
||||
this.mainToolTip.SetToolTip(this.localNewFolderButton, resources.GetString("localNewFolderButton.ToolTip"));
|
||||
this.localNewFolderButton.UseVisualStyleBackColor = true;
|
||||
this.localNewFolderButton.Click += new System.EventHandler(this.localNewFolderButton_Click);
|
||||
//
|
||||
// FileViewer
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
|
||||
@@ -694,7 +694,7 @@ namespace MeshCentralRouter
|
||||
string r;
|
||||
if (remoteFolder.EndsWith("/")) { r = remoteFolder + f.filename; } else { r = remoteFolder + "/" + f.filename; }
|
||||
requestCreateFolder(r);
|
||||
updateTimer.Enabled = true;
|
||||
remoteRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -771,7 +771,7 @@ namespace MeshCentralRouter
|
||||
if (f.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
requestDelete(remoteFolder, files, f.recursive);
|
||||
updateTimer.Enabled = true;
|
||||
remoteRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -798,7 +798,7 @@ namespace MeshCentralRouter
|
||||
//string r;
|
||||
//if (remoteFolder.EndsWith("/")) { r = remoteFolder + f.filename; } else { r = remoteFolder + "/" + f.filename; }
|
||||
requestRename(remoteFolder, oldname, f.filename);
|
||||
updateTimer.Enabled = true;
|
||||
remoteRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -857,14 +857,23 @@ namespace MeshCentralRouter
|
||||
|
||||
private void uploadNextFile()
|
||||
{
|
||||
string localFilePath;
|
||||
string localFilePath, localFileName;
|
||||
if (uploadLocalPath != null)
|
||||
{
|
||||
localFilePath = Path.Combine(uploadLocalPath.FullName, (string)uploadFileArray[uploadFileArrayPtr]);
|
||||
localFileName = (string)uploadFileArray[uploadFileArrayPtr];
|
||||
}
|
||||
else
|
||||
{
|
||||
localFilePath = (string)uploadFileArray[uploadFileArrayPtr];
|
||||
localFileName = Path.GetFileName(localFilePath);
|
||||
}
|
||||
uploadFileStream = File.OpenRead(localFilePath);
|
||||
uploadFileSize = new FileInfo(localFilePath).Length;
|
||||
uploadFilePtr = 0;
|
||||
|
||||
// Send UPLOAD command
|
||||
string cmd = "{\"action\":\"upload\",\"reqid\":" + (uploadFileArrayPtr + 1000) + ",\"path\":\"" + uploadRemotePath + "\",\"name\":\"" + uploadFileArray[uploadFileArrayPtr] + "\",\"size\":" + uploadFileSize + "}";
|
||||
string cmd = "{\"action\":\"upload\",\"reqid\":" + (uploadFileArrayPtr + 1000) + ",\"path\":\"" + uploadRemotePath + "\",\"name\":\"" + localFileName + "\",\"size\":" + uploadFileSize + "}";
|
||||
byte[] bincmd = UTF8Encoding.UTF8.GetBytes(cmd);
|
||||
wc.SendBinary(bincmd, 0, bincmd.Length);
|
||||
}
|
||||
@@ -889,7 +898,7 @@ namespace MeshCentralRouter
|
||||
uploadFileSize = 0;
|
||||
if (uploadFileStream != null) { uploadFileStream.Close(); uploadFileStream = null; }
|
||||
closeTransferDialog();
|
||||
updateTimer.Enabled = true;
|
||||
remoteRefresh();
|
||||
}
|
||||
|
||||
private void uploadNextPart(bool dataPriming)
|
||||
@@ -1061,5 +1070,44 @@ namespace MeshCentralRouter
|
||||
updateLocalFileView();
|
||||
}
|
||||
}
|
||||
|
||||
private void rightListView_DragEnter(object sender, DragEventArgs e)
|
||||
{
|
||||
if (uploadActive || downloadActive) return;
|
||||
if ((node.agentid < 5) && ((remoteFolder == null) || (remoteFolder == ""))) { return; }
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
|
||||
}
|
||||
|
||||
private void rightListView_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
if (uploadActive || downloadActive) return;
|
||||
if ((node.agentid < 5) && ((remoteFolder == null) || (remoteFolder == ""))) { return; }
|
||||
uploadFileArrayPtr = 0;
|
||||
uploadFileArray = new ArrayList();
|
||||
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
|
||||
foreach (string file in files) { uploadFileArray.Add(file); }
|
||||
uploadLocalPath = null;
|
||||
uploadRemotePath = remoteFolder;
|
||||
uploadActive = true;
|
||||
uploadStop = false;
|
||||
uploadNextFile();
|
||||
|
||||
// Show transfer status dialog
|
||||
transferStatusForm = new FileTransferStatusForm(this);
|
||||
transferStatusForm.Show(this);
|
||||
}
|
||||
|
||||
private void leftListView_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
ArrayList files = new ArrayList();
|
||||
foreach (ListViewItem l in leftListView.SelectedItems) { if (l.ImageIndex == 2) { files.Add(Path.Combine(localFolder.FullName, l.Text)); } }
|
||||
if (files.Count > 0)
|
||||
{
|
||||
leftListView.DoDragDrop(new DataObject(DataFormats.FileDrop, (string[])files.ToArray(typeof(string))), DragDropEffects.Copy);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
170
FileViewer.resx
170
FileViewer.resx
@@ -486,6 +486,66 @@
|
||||
<data name=">>uploadButton.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>150, 21</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 23</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.ToolTip" xml:space="preserve">
|
||||
<value>Delete</value>
|
||||
</data>
|
||||
<data name=">>localDeleteButton.Name" xml:space="preserve">
|
||||
<value>localDeleteButton</value>
|
||||
</data>
|
||||
<data name=">>localDeleteButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>localDeleteButton.Parent" xml:space="preserve">
|
||||
<value>leftTopPanel</value>
|
||||
</data>
|
||||
<data name=">>localDeleteButton.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>114, 21</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 23</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.ToolTip" xml:space="preserve">
|
||||
<value>New Folder</value>
|
||||
</data>
|
||||
<data name=">>localNewFolderButton.Name" xml:space="preserve">
|
||||
<value>localNewFolderButton</value>
|
||||
</data>
|
||||
<data name=">>localNewFolderButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>localNewFolderButton.Parent" xml:space="preserve">
|
||||
<value>leftTopPanel</value>
|
||||
</data>
|
||||
<data name=">>localNewFolderButton.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="topPanel.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
@@ -692,7 +752,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+
|
||||
CQAAAk1TRnQBSQFMAgEBAwEAAWgBAAFoAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
CQAAAk1TRnQBSQFMAgEBAwEAAXABAAFwAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABEAMAAQEBAAEQBgABCDoAATABcwHKAWYBygFmAbUBexIAARABQgEQAUIBEAFCARABQgEQAUIBEAFC
|
||||
ARABQgEQAUIBEAFCARABQgEQAUIBEAFCARABQkYAAcoBZgHKAWYBygFmAcoBZgHKAWYBygFmAcoBZgHK
|
||||
AWYBygFmAcoBZgHKAWYBygFmATABcwYAARABQgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7
|
||||
@@ -751,84 +811,6 @@
|
||||
<data name=">>leftListView.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>150, 21</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 23</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="localDeleteButton.ToolTip" xml:space="preserve">
|
||||
<value>Delete</value>
|
||||
</data>
|
||||
<data name=">>localDeleteButton.Name" xml:space="preserve">
|
||||
<value>localDeleteButton</value>
|
||||
</data>
|
||||
<data name=">>localDeleteButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>localDeleteButton.Parent" xml:space="preserve">
|
||||
<value>leftTopPanel</value>
|
||||
</data>
|
||||
<data name=">>localDeleteButton.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>114, 21</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 23</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="localNewFolderButton.ToolTip" xml:space="preserve">
|
||||
<value>New Folder</value>
|
||||
</data>
|
||||
<data name=">>localNewFolderButton.Name" xml:space="preserve">
|
||||
<value>localNewFolderButton</value>
|
||||
</data>
|
||||
<data name=">>localNewFolderButton.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>localNewFolderButton.Parent" xml:space="preserve">
|
||||
<value>leftTopPanel</value>
|
||||
</data>
|
||||
<data name=">>localNewFolderButton.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="localLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="localLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="localLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 3</value>
|
||||
</data>
|
||||
<data name="localLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>33, 13</value>
|
||||
</data>
|
||||
<data name="localLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="localLabel.Text" xml:space="preserve">
|
||||
<value>Local</value>
|
||||
</data>
|
||||
<data name=">>localLabel.Name" xml:space="preserve">
|
||||
<value>localLabel</value>
|
||||
</data>
|
||||
@@ -1054,6 +1036,36 @@
|
||||
<data name=">>remoteLabel.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="localLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="localLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="localLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 3</value>
|
||||
</data>
|
||||
<data name="localLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>33, 13</value>
|
||||
</data>
|
||||
<data name="localLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="localLabel.Text" xml:space="preserve">
|
||||
<value>Local</value>
|
||||
</data>
|
||||
<data name=">>localLabel.Name" xml:space="preserve">
|
||||
<value>localLabel</value>
|
||||
</data>
|
||||
<data name=">>localLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>localLabel.Parent" xml:space="preserve">
|
||||
<value>leftTopPanel</value>
|
||||
</data>
|
||||
<data name=">>localLabel.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
||||
Reference in New Issue
Block a user