diff --git a/src/FileViewer.Designer.cs b/src/FileViewer.Designer.cs index 55143b2..57d63af 100644 --- a/src/FileViewer.Designer.cs +++ b/src/FileViewer.Designer.cs @@ -70,7 +70,7 @@ namespace MeshCentralRouter this.refreshToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.fileIconImageList = new System.Windows.Forms.ImageList(this.components); this.rightTopPanel = new System.Windows.Forms.Panel(); - this.remoteLabel = new System.Windows.Forms.Label(); + this.remoteDirectoryPath = new System.Windows.Forms.ToolStrip(); this.leftPanel = new System.Windows.Forms.Panel(); this.leftListView = new System.Windows.Forms.ListView(); this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); @@ -82,7 +82,7 @@ namespace MeshCentralRouter this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); this.refreshToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.leftTopPanel = new System.Windows.Forms.Panel(); - this.localLabel = new System.Windows.Forms.Label(); + this.localDirectoryPath = new System.Windows.Forms.ToolStrip(); this.topPanel.SuspendLayout(); this.statusStrip.SuspendLayout(); this.mainTableLayoutPanel.SuspendLayout(); @@ -373,20 +373,22 @@ namespace MeshCentralRouter // // rightTopPanel // + this.rightTopPanel.Controls.Add(this.remoteDirectoryPath); this.rightTopPanel.Controls.Add(this.remoteZipButton); this.rightTopPanel.Controls.Add(this.remoteDeleteButton); this.rightTopPanel.Controls.Add(this.remoteRootButton); this.rightTopPanel.Controls.Add(this.remoteNewFolderButton); this.rightTopPanel.Controls.Add(this.remoteRefreshButton); this.rightTopPanel.Controls.Add(this.remoteUpButton); - this.rightTopPanel.Controls.Add(this.remoteLabel); resources.ApplyResources(this.rightTopPanel, "rightTopPanel"); this.rightTopPanel.Name = "rightTopPanel"; // - // remoteLabel + // remoteDirectoryPath // - resources.ApplyResources(this.remoteLabel, "remoteLabel"); - this.remoteLabel.Name = "remoteLabel"; + resources.ApplyResources(this.remoteDirectoryPath, "remoteDirectoryPath"); + this.remoteDirectoryPath.GripMargin = new System.Windows.Forms.Padding(0); + this.remoteDirectoryPath.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.remoteDirectoryPath.Name = "remoteDirectoryPath"; // // leftPanel // @@ -467,19 +469,22 @@ namespace MeshCentralRouter // // leftTopPanel // + this.leftTopPanel.Controls.Add(this.localDirectoryPath); this.leftTopPanel.Controls.Add(this.localDeleteButton); this.leftTopPanel.Controls.Add(this.localNewFolderButton); this.leftTopPanel.Controls.Add(this.localRootButton); this.leftTopPanel.Controls.Add(this.localRefreshButton); this.leftTopPanel.Controls.Add(this.localUpButton); - this.leftTopPanel.Controls.Add(this.localLabel); resources.ApplyResources(this.leftTopPanel, "leftTopPanel"); this.leftTopPanel.Name = "leftTopPanel"; // - // localLabel + // localDirectoryPath // - resources.ApplyResources(this.localLabel, "localLabel"); - this.localLabel.Name = "localLabel"; + resources.ApplyResources(this.localDirectoryPath, "localDirectoryPath"); + this.localDirectoryPath.GripMargin = new System.Windows.Forms.Padding(0); + this.localDirectoryPath.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.localDirectoryPath.Name = "localDirectoryPath"; + this.localDirectoryPath.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.toolStrip1_ItemClicked); // // FileViewer // @@ -528,9 +533,7 @@ namespace MeshCentralRouter private Panel leftPanel; private ListView leftListView; private Panel rightTopPanel; - private Label remoteLabel; private Panel leftTopPanel; - private Label localLabel; private ColumnHeader columnHeader3; private ColumnHeader columnHeader4; private ImageList fileIconImageList; @@ -562,5 +565,7 @@ namespace MeshCentralRouter private Button remoteZipButton; private ColumnHeader columnHeader5; private ColumnHeader columnHeader6; + private ToolStrip remoteDirectoryPath; + private ToolStrip localDirectoryPath; } } diff --git a/src/FileViewer.cs b/src/FileViewer.cs index bf22a2d..cfd57bf 100644 --- a/src/FileViewer.cs +++ b/src/FileViewer.cs @@ -24,6 +24,7 @@ using System.Windows.Forms; using System.Collections.Generic; using System.Security.Cryptography; using System.Web.Script.Serialization; +using System.Linq; namespace MeshCentralRouter { @@ -99,8 +100,87 @@ namespace MeshCentralRouter // Add ColumnClick event handlers leftListView.ColumnClick += new ColumnClickEventHandler(LeftListView_ColumnClick); rightListView.ColumnClick += new ColumnClickEventHandler(RightListView_ColumnClick); + + // Update the path display for the first time + UpdateLocalPathDisplay(); } + private void UpdateLocalPathDisplay() + { + localDirectoryPath.Items.Clear(); + ToolStripLabel fixedLabel = new ToolStripLabel("Local -"); + localDirectoryPath.Items.Add(fixedLabel); + if (localFolder == null) + { + return; + } + + string[] parts = localFolder.FullName.Split(Path.DirectorySeparatorChar); + for (int i = 0; i < parts.Length; i++) + { + ToolStripButton dirButton = new ToolStripButton(parts[i]); + int index = i; // Local copy for the lambda + dirButton.Click += (sender, e) => LocalPathButtonClicked(parts.Take(index + 1).ToArray()); + localDirectoryPath.Items.Add(dirButton); + + if (i < parts.Length - 1) + { + ToolStripLabel separatorLabel = new ToolStripLabel(" / "); + localDirectoryPath.Items.Add(separatorLabel); + } + } + } + + private void UpdateRemotePathDisplay() + { + remoteDirectoryPath.Items.Clear(); + ToolStripLabel fixedLabel = new ToolStripLabel("Remote -"); + remoteDirectoryPath.Items.Add(fixedLabel); + if (remoteFolder == null) + { + return; + } + + string[] parts = remoteFolder.Split(new char[] { '/', '\\' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < parts.Length; i++) + { + ToolStripButton dirButton = new ToolStripButton(parts[i]); + int index = i; // Local copy for the lambda + dirButton.Click += (sender, e) => RemotePathButtonClicked(parts.Take(index + 1).ToArray()); + remoteDirectoryPath.Items.Add(dirButton); + + if (i < parts.Length - 1) + { + ToolStripLabel separatorLabel = new ToolStripLabel(" / "); + remoteDirectoryPath.Items.Add(separatorLabel); + } + } + } + + + private void LocalPathButtonClicked(string[] parts) + { + string path = string.Join(Path.DirectorySeparatorChar.ToString(), parts); + DirectoryInfo old = localFolder; + localFolder = new DirectoryInfo(path); + if (updateLocalFileView() == false) + { + localFolder = old; + updateLocalFileView(); + } + Settings.SetRegValue("LocalPath", (localFolder == null) ? "" : localFolder.FullName); + UpdateLocalPathDisplay(); + } + + private void RemotePathButtonClicked(string[] parts) + { + string path = string.Join(Path.DirectorySeparatorChar.ToString(), parts); + string old = remoteFolder; + remoteFolder = path; + requestRemoteFolder(path); // This will also call UpdateRemotePathDisplay + } + + private void LeftListView_ColumnClick(object sender, ColumnClickEventArgs e) { if (localFolder == null) return; @@ -211,8 +291,8 @@ namespace MeshCentralRouter leftListView.Items.Add(x); } localUpButton.Enabled = false; - localLabel.Text = Translate.T(Properties.Resources.Local); - mainToolTip.SetToolTip(localLabel, Translate.T(Properties.Resources.Local)); + //localLabel.Text = Translate.T(Properties.Resources.Local); + //mainToolTip.SetToolTip(localLabel, Translate.T(Properties.Resources.Local)); } catch(Exception) { return false; } } @@ -247,8 +327,8 @@ namespace MeshCentralRouter leftListView.Items.Add(x); } localUpButton.Enabled = true; - localLabel.Text = string.Format(Translate.T(Properties.Resources.LocalPlus), localFolder.FullName); - mainToolTip.SetToolTip(localLabel, string.Format(Translate.T(Properties.Resources.LocalPlus), localFolder.FullName)); + //localLabel.Text = string.Format(Translate.T(Properties.Resources.LocalPlus), localFolder.FullName); + //mainToolTip.SetToolTip(localLabel, string.Format(Translate.T(Properties.Resources.LocalPlus), localFolder.FullName)); } catch(Exception) { return false; } } @@ -283,20 +363,20 @@ namespace MeshCentralRouter if((remoteFolder == null) || (remoteFolder == "")) { - remoteLabel.Text = Translate.T(Properties.Resources.Remote); - mainToolTip.SetToolTip(remoteLabel, Translate.T(Properties.Resources.Remote)); + //remoteLabel.Text = Translate.T(Properties.Resources.Remote); + //mainToolTip.SetToolTip(remoteLabel, Translate.T(Properties.Resources.Remote)); } else { if(node.agentid < 5) { - remoteLabel.Text = string.Format(Translate.T(Properties.Resources.RemotePlus), remoteFolder.Replace("/", "\\")); - mainToolTip.SetToolTip(remoteLabel, string.Format(Translate.T(Properties.Resources.RemotePlus), remoteFolder.Replace("/", "\\"))); + //remoteLabel.Text = string.Format(Translate.T(Properties.Resources.RemotePlus), remoteFolder.Replace("/", "\\")); + //mainToolTip.SetToolTip(remoteLabel, string.Format(Translate.T(Properties.Resources.RemotePlus), remoteFolder.Replace("/", "\\"))); } else { - remoteLabel.Text = string.Format(Translate.T(Properties.Resources.RemotePlus), remoteFolder); - mainToolTip.SetToolTip(remoteLabel, string.Format(Translate.T(Properties.Resources.RemotePlus), remoteFolder)); + //remoteLabel.Text = string.Format(Translate.T(Properties.Resources.RemotePlus), remoteFolder); + //mainToolTip.SetToolTip(remoteLabel, string.Format(Translate.T(Properties.Resources.RemotePlus), remoteFolder)); } } @@ -494,6 +574,8 @@ namespace MeshCentralRouter string cmd = "{\"action\":\"ls\",\"reqid\":1,\"path\":\"" + path.Replace("\\", "/") + "\"}"; byte[] bincmd = UTF8Encoding.UTF8.GetBytes(cmd); wc.SendBinary(bincmd, 0, bincmd.Length); + remoteFolder = path; // Update remote folder path immediately + UpdateRemotePathDisplay(); } private void requestCreateFolder(string path) @@ -1056,6 +1138,7 @@ namespace MeshCentralRouter if(updateLocalFileView() == false) { localFolder = old; updateLocalFileView(); } Settings.SetRegValue("LocalPath", (localFolder == null) ? "" : localFolder.FullName); } + UpdateLocalPathDisplay(); } } @@ -1064,6 +1147,7 @@ namespace MeshCentralRouter localFolder = localFolder.Parent; Settings.SetRegValue("LocalPath", (localFolder == null) ? "" : localFolder.FullName); updateLocalFileView(); + UpdateLocalPathDisplay(); } private void rightListView_MouseDoubleClick(object sender, MouseEventArgs e) @@ -1089,11 +1173,14 @@ namespace MeshCentralRouter private void remoteUpButton_Click(object sender, EventArgs e) { - string r = remoteFolder; - if(r.EndsWith("/")) { r = r.Substring(0, r.Length - 1); } - int i = r.LastIndexOf("/"); - if(i >= 0) { r = r.Substring(0, i + 1); } else { r = ""; } - requestRemoteFolder(r); + //string r = remoteFolder; + //if(r.EndsWith("/")) { r = r.Substring(0, r.Length - 1); } + if (remoteFolder.EndsWith("/")) { remoteFolder = remoteFolder.Substring(0, remoteFolder.Length - 1); } + int i = remoteFolder.LastIndexOf("/"); + //if(i >= 0) { r = r.Substring(0, i + 1); } else { r = ""; } + if (i >= 0) { remoteFolder = remoteFolder.Substring(0, i + 1); } else { remoteFolder = ""; } + //requestRemoteFolder(r); + requestRemoteFolder(remoteFolder); // This will also call UpdateRemotePathDisplay } private void leftRefreshButton_Click(object sender, EventArgs e) @@ -1139,11 +1226,13 @@ namespace MeshCentralRouter localFolder = null; Settings.SetRegValue("LocalPath", ""); updateLocalFileView(); + UpdateLocalPathDisplay(); } private void remoteRootButton_Click(object sender, EventArgs e) { requestRemoteFolder(""); + //UpdateRemotePathDisplay(); } private void rightListView_SelectedIndexChanged(object sender, EventArgs e) @@ -2157,9 +2246,14 @@ namespace MeshCentralRouter localRefresh(); } } - } - public class Fle + private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) + { + + } + } + + public class Fle { public String Path = ""; public String Name = ""; diff --git a/src/FileViewer.resx b/src/FileViewer.resx index a91a2d5..a87ddc3 100644 --- a/src/FileViewer.resx +++ b/src/FileViewer.resx @@ -223,7 +223,7 @@ rightTopPanel - 4 + 5 False @@ -253,7 +253,7 @@ rightTopPanel - 5 + 6 NoControl @@ -280,7 +280,7 @@ leftTopPanel - 3 + 4 False @@ -307,7 +307,7 @@ leftTopPanel - 4 + 5 False @@ -337,7 +337,7 @@ rightTopPanel - 3 + 4 False @@ -367,7 +367,7 @@ rightTopPanel - 2 + 3 False @@ -397,7 +397,7 @@ leftTopPanel - 2 + 3 False @@ -427,7 +427,7 @@ rightTopPanel - 1 + 2 False @@ -514,7 +514,7 @@ leftTopPanel - 0 + 1 False @@ -544,7 +544,7 @@ leftTopPanel - 1 + 2 False @@ -574,7 +574,7 @@ rightTopPanel - 0 + 1 Top @@ -603,15 +603,6 @@ 381, 17 - - 675, 17 - - - --- - - - MiddleLeft - 0, 480 @@ -636,6 +627,15 @@ 4 + + 675, 17 + + + --- + + + MiddleLeft + Bottom, Left @@ -702,130 +702,6 @@ 0 - - Name - - - 143 - - - Size - - - Right - - - 80 - - - Date Modified - - - 150 - - - 640, 17 - - - 136, 22 - - - &Rename - - - 136, 22 - - - Compress... - - - 136, 22 - - - &Delete - - - 133, 6 - - - 136, 22 - - - R&efresh - - - 137, 98 - - - remoteContextMenuStrip - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fill - - - 0, 50 - - - 320, 388 - - - 497, 17 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w - LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+ - CQAAAk1TRnQBSQFMAgEBAwEAAdABAAHQAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA - AwABEAMAAQEBAAEQBgABCDoAATABcwHKAWYBygFmAbUBexIAARABQgEQAUIBEAFCARABQgEQAUIBEAFC - ARABQgEQAUIBEAFCARABQgEQAUIBEAFCARABQkYAAcoBZgHKAWYBygFmAcoBZgHKAWYBygFmAcoBZgHK - AWYBygFmAcoBZgHKAWYBygFmATABcwYAARABQgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7 - Ad4BewHeAXsB3gF7ARABQkYAATABcwEwAXMBMAFzATABcwEwAXMBygFmAcoBZgHKAWYBygFmAcoBZgHK - AWYBygFmAcoBZgYAARABQgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7 - ARABQkYAATABcwEwAXMBMAFzATABcwEwAXMBygFmAcoBZgHKAWYBygFmAcoBZgHKAWYBygFmAcoBZgYA - ARABQgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7ARABQiQAAVsBawFR - AUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVsBawIA - ATABcwEwAXMBMAFzATABcwEwAXMBygFmAcoBZgHKAWYBygFmAcoBZgHKAWYBygFmAcoBZgYAAfcBXgHe - AXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFRAUYBUQFG - AVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVsBawFRAUYBUQFGAVEBRgIAATABcwG1 - AXsBMAFzATABcwEwAXMBygFmAcoBZgHKAWYBMAFzAcoBZgHKAWYBtQF7AcoBZgYAAfcBXgHeAXsB3gF7 - Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFRAUYBWwFrAVsBawFb - AWsBWwFrAVsBawFbAWsBWwFrAVsBawFbAWsBUQFGAVEBRgFRAUYBUQFGAVEBRgIAATABcwG1AXsBtQF7 - ATABcwEwAXMBygFmAcoBZgHKAWYBMAFzATABcwEwAXMBtQF7AcoBZgYAAfcBXgHeAXsB3gF7Ad4BewHe - AXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFRAUYBWwFrAVsBawFbAWsBWwFr - AVsBawFbAWsBWwFrAVsBawFbAWsBUQFGAVEBRgFRAUYBUQFGAVEBRgIAATABcwG1AXsBtQF7AbUBewEw - AXMBygFmAcoBZgHKAWYBMAFzATABcwEwAXMBtQF7AcoBZgYAAfcBXgHeAXsB3gF7Ad4BewHeAXsB3gF7 - Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFbAWsBWwFrAVsBawFbAWsBWwFrAVsBawFb - AWsBWwFrAVsBawFbAWsBUQFGAVEBRgFRAUYBUQFGAVEBRgIAATABcwG1AXsBtQF7AbUBewG1AXsBygFm - AcoBZgHKAWYBMAFzATABcwEwAXMBMAFzAcoBZgYAAfcBXgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHe - AXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFbAWsBWwFrAf4BewH+AXsB/gF7Af4BewH+AXsB/gF7 - Af4BewH+AXsB/gF7Af4BewFbAWsBWwFrAVEBRgIAATABcwG1AXsBtQF7AbUBewG1AXsBygFmAcoBZgHK - AWYBtQF7ATABcwEwAXMBygFmATABcwYAAfcBXgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7 - Ad4BewHeAXsB3gF7AfcBXiQAAVsBawFbAWsBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFR - AUYBUQFGAVEBRgFRAUYBWwFrAVsBawIAATABcwG1AXsBtQF7AbUBewG1AXsBygFmATABcwEwAXMBtQF7 - AbUBewG1AXsBygFmCAAB9wFeAd4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHe - AXsB9wFeJgABWwFrAVsBawFbAWsBWwFrAf4BewH+AXsB/gF7Af4BewH+AXsB/gF7AVsBawFbAWsBWwFr - AVsBawQAATABcwG1AXsBtQF7AbUBewG1AXsBygFmATABcwEwAXMBtQF7AbUBewG1AXsBygFmCAAB9wFe - Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB9wFeLAABWwFrAVsBawFb - AWsBWwFrAVsBawFbAWsBWwFrAVsBawoAATABcwG1AXsBtQF7AbUBewG1AXsBygFmATABcwEwAXMBtQF7 - AbUBewG1AXsBygFmCAAB9wFeAd4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB9wFeAfcBXgH3 - AV4B9wFeRgABMAFzAbUBewG1AXsBtQF7ATABcwHKAWYBMAFzAbUBewG1AXsBtQF7AbUBewHKAWYIAAH3 - AV4B3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewH3AV4B3gF7AfcBXkgAATABcwG1AXsBMAFz - ATABcwG1AXsBMAFzAbUBewG1AXsBtQF7AbUBewG1AXsBMAFzCAAB9wFeAd4BewHeAXsB3gF7Ad4BewHe - AXsB3gF7Ad4BewHeAXsB9wFeAfcBXkoAATABcwEwAXMBMAFzATABcwEwAXMBMAFzATABcwEwAXMBMAFz - AcoBZgEwAXMBtQF7CAAB9wFeAfcBXgH3AV4B9wFeAfcBXgH3AV4B9wFeAfcBXgH3AV4B9wFeKgABQgFN - AT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/wEAAv8B8AH/AYABAwIAAv8BgAEDAYABAwIA - Av8BgAEDAYABAwIAAv8BgAEDAYABAwQAAYABAwGAAQMEAAGAAQMBgAEDBAABgAEDAYABAwQAAYABAwGA - AQMEAAGAAQMBgAEDBAABgAEDAYABAwQAAYABBwGAAQMCAAGAAQEBgAEHAYABAwIAAfABDwGAAQcBgAED - AgAC/wGAAQcBgAEHAgAC/wGAAQcBgAEPAgAC/wGAAQcBgAEfAgAL - - - - 299 - rightListView @@ -838,51 +714,6 @@ 0 - - Top, Left, Right - - - True - - - NoControl - - - 3, 3 - - - 44, 13 - - - 0 - - - Remote - - - remoteLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - rightTopPanel - - - 6 - - - Top - - - 0, 0 - - - 320, 50 - - - 2 - rightTopPanel @@ -943,27 +774,6 @@ 830, 17 - - 117, 22 - - - &Rename - - - 117, 22 - - - &Delete - - - 114, 6 - - - 117, 22 - - - R&efresh - 118, 76 @@ -982,6 +792,58 @@ 320, 388 + + 497, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC+ + CQAAAk1TRnQBSQFMAgEBAwEAAfABAAHwAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA + AwABEAMAAQEBAAEQBgABCDoAATABcwHKAWYBygFmAbUBexIAARABQgEQAUIBEAFCARABQgEQAUIBEAFC + ARABQgEQAUIBEAFCARABQgEQAUIBEAFCARABQkYAAcoBZgHKAWYBygFmAcoBZgHKAWYBygFmAcoBZgHK + AWYBygFmAcoBZgHKAWYBygFmATABcwYAARABQgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7 + Ad4BewHeAXsB3gF7ARABQkYAATABcwEwAXMBMAFzATABcwEwAXMBygFmAcoBZgHKAWYBygFmAcoBZgHK + AWYBygFmAcoBZgYAARABQgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7 + ARABQkYAATABcwEwAXMBMAFzATABcwEwAXMBygFmAcoBZgHKAWYBygFmAcoBZgHKAWYBygFmAcoBZgYA + ARABQgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7ARABQiQAAVsBawFR + AUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVsBawIA + ATABcwEwAXMBMAFzATABcwEwAXMBygFmAcoBZgHKAWYBygFmAcoBZgHKAWYBygFmAcoBZgYAAfcBXgHe + AXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFRAUYBUQFG + AVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVsBawFRAUYBUQFGAVEBRgIAATABcwG1 + AXsBMAFzATABcwEwAXMBygFmAcoBZgHKAWYBMAFzAcoBZgHKAWYBtQF7AcoBZgYAAfcBXgHeAXsB3gF7 + Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFRAUYBWwFrAVsBawFb + AWsBWwFrAVsBawFbAWsBWwFrAVsBawFbAWsBUQFGAVEBRgFRAUYBUQFGAVEBRgIAATABcwG1AXsBtQF7 + ATABcwEwAXMBygFmAcoBZgHKAWYBMAFzATABcwEwAXMBtQF7AcoBZgYAAfcBXgHeAXsB3gF7Ad4BewHe + AXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFRAUYBWwFrAVsBawFbAWsBWwFr + AVsBawFbAWsBWwFrAVsBawFbAWsBUQFGAVEBRgFRAUYBUQFGAVEBRgIAATABcwG1AXsBtQF7AbUBewEw + AXMBygFmAcoBZgHKAWYBMAFzATABcwEwAXMBtQF7AcoBZgYAAfcBXgHeAXsB3gF7Ad4BewHeAXsB3gF7 + Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFbAWsBWwFrAVsBawFbAWsBWwFrAVsBawFb + AWsBWwFrAVsBawFbAWsBUQFGAVEBRgFRAUYBUQFGAVEBRgIAATABcwG1AXsBtQF7AbUBewG1AXsBygFm + AcoBZgHKAWYBMAFzATABcwEwAXMBMAFzAcoBZgYAAfcBXgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHe + AXsB3gF7Ad4BewHeAXsB3gF7AfcBXiQAAVEBRgFbAWsBWwFrAf4BewH+AXsB/gF7Af4BewH+AXsB/gF7 + Af4BewH+AXsB/gF7Af4BewFbAWsBWwFrAVEBRgIAATABcwG1AXsBtQF7AbUBewG1AXsBygFmAcoBZgHK + AWYBtQF7ATABcwEwAXMBygFmATABcwYAAfcBXgHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7 + Ad4BewHeAXsB3gF7AfcBXiQAAVsBawFbAWsBUQFGAVEBRgFRAUYBUQFGAVEBRgFRAUYBUQFGAVEBRgFR + AUYBUQFGAVEBRgFRAUYBWwFrAVsBawIAATABcwG1AXsBtQF7AbUBewG1AXsBygFmATABcwEwAXMBtQF7 + AbUBewG1AXsBygFmCAAB9wFeAd4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHe + AXsB9wFeJgABWwFrAVsBawFbAWsBWwFrAf4BewH+AXsB/gF7Af4BewH+AXsB/gF7AVsBawFbAWsBWwFr + AVsBawQAATABcwG1AXsBtQF7AbUBewG1AXsBygFmATABcwEwAXMBtQF7AbUBewG1AXsBygFmCAAB9wFe + Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB9wFeLAABWwFrAVsBawFb + AWsBWwFrAVsBawFbAWsBWwFrAVsBawoAATABcwG1AXsBtQF7AbUBewG1AXsBygFmATABcwEwAXMBtQF7 + AbUBewG1AXsBygFmCAAB9wFeAd4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB9wFeAfcBXgH3 + AV4B9wFeRgABMAFzAbUBewG1AXsBtQF7ATABcwHKAWYBMAFzAbUBewG1AXsBtQF7AbUBewHKAWYIAAH3 + AV4B3gF7Ad4BewHeAXsB3gF7Ad4BewHeAXsB3gF7Ad4BewH3AV4B3gF7AfcBXkgAATABcwG1AXsBMAFz + ATABcwG1AXsBMAFzAbUBewG1AXsBtQF7AbUBewG1AXsBMAFzCAAB9wFeAd4BewHeAXsB3gF7Ad4BewHe + AXsB3gF7Ad4BewHeAXsB9wFeAfcBXkoAATABcwEwAXMBMAFzATABcwEwAXMBMAFzATABcwEwAXMBMAFz + AcoBZgEwAXMBtQF7CAAB9wFeAfcBXgH3AV4B9wFeAfcBXgH3AV4B9wFeAfcBXgH3AV4B9wFeKgABQgFN + AT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/wEAAv8B8AH/AYABAwIAAv8BgAEDAYABAwIA + Av8BgAEDAYABAwIAAv8BgAEDAYABAwQAAYABAwGAAQMEAAGAAQMBgAEDBAABgAEDAYABAwQAAYABAwGA + AQMEAAGAAQMBgAEDBAABgAEDAYABAwQAAYABBwGAAQMCAAGAAQEBgAEHAYABAwIAAfABDwGAAQcBgAED + AgAC/wGAAQcBgAEHAgAC/wGAAQcBgAEPAgAC/wGAAQcBgAEfAgAL + + 199 @@ -997,35 +859,23 @@ 1 - - Top, Left, Right - - + + 17, 43 + + True + + + localDirectoryPath - - 3, 3 + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 33, 13 - - - 0 - - - Local - - - localLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + leftTopPanel - - 5 + + 0 Top @@ -1105,6 +955,231 @@ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="panel1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="rightPanel" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="leftPanel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,50,Absolute,30,Percent,50" /><Rows Styles="Percent,100" /></TableLayoutSettings> + + Name + + + 143 + + + Size + + + Right + + + 80 + + + Date Modified + + + 150 + + + 640, 17 + + + 137, 98 + + + remoteContextMenuStrip + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fill + + + 0, 50 + + + 320, 388 + + + 299 + + + rightListView + + + System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + rightPanel + + + 0 + + + 136, 22 + + + &Rename + + + 136, 22 + + + Compress... + + + 136, 22 + + + &Delete + + + 133, 6 + + + 136, 22 + + + R&efresh + + + 122, 43 + + + True + + + remoteDirectoryPath + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + rightTopPanel + + + 0 + + + Top + + + 0, 0 + + + 320, 50 + + + 2 + + + rightTopPanel + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + rightPanel + + + 1 + + + 122, 43 + + + True + + + Segoe UI, 8pt + + + 0, 0 + + + 0, 22 + + + 5, 0, 0, 0 + + + 320, 22 + + + 206 + + + toolStrip1 + + + remoteDirectoryPath + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + rightTopPanel + + + 0 + + + 117, 22 + + + &Rename + + + 117, 22 + + + &Delete + + + 114, 6 + + + 117, 22 + + + R&efresh + + + 17, 43 + + + True + + + Segoe UI, 8pt + + + 0, 0 + + + 0, 22 + + + 5, 0, 0, 0 + + + 320, 22 + + + 105 + + + toolStrip1 + + + localDirectoryPath + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + leftTopPanel + + + 0 + True