From 6b0284193f3fe6e84870953fe93f0d2e1dd441d5 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Thu, 17 Sep 2020 20:18:43 -0700 Subject: [PATCH] More work on file manager. --- FileViewer.Designer.cs | 24 ++++ FileViewer.cs | 53 +++++++- FileViewer.resx | 294 +++++++++++++++++++++-------------------- 3 files changed, 228 insertions(+), 143 deletions(-) diff --git a/FileViewer.Designer.cs b/FileViewer.Designer.cs index 8b70a76..b9dceb6 100644 --- a/FileViewer.Designer.cs +++ b/FileViewer.Designer.cs @@ -59,6 +59,8 @@ namespace MeshCentralRouter this.localLabel = new System.Windows.Forms.Label(); this.localUpButton = new System.Windows.Forms.Button(); this.remoteUpButton = new System.Windows.Forms.Button(); + this.localRefreshButton = new System.Windows.Forms.Button(); + this.remoteRefreshButton = new System.Windows.Forms.Button(); this.topPanel.SuspendLayout(); this.statusStrip1.SuspendLayout(); this.mainTableLayoutPanel.SuspendLayout(); @@ -154,6 +156,7 @@ namespace MeshCentralRouter this.rightListView.SmallImageList = this.fileIconImageList; this.rightListView.UseCompatibleStateImageBehavior = false; this.rightListView.View = System.Windows.Forms.View.Details; + this.rightListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.rightListView_MouseDoubleClick); // // columnHeader3 // @@ -173,6 +176,7 @@ namespace MeshCentralRouter // // rightTopPanel // + this.rightTopPanel.Controls.Add(this.remoteRefreshButton); this.rightTopPanel.Controls.Add(this.remoteUpButton); this.rightTopPanel.Controls.Add(this.remoteLabel); resources.ApplyResources(this.rightTopPanel, "rightTopPanel"); @@ -215,6 +219,7 @@ namespace MeshCentralRouter // // leftTopPanel // + this.leftTopPanel.Controls.Add(this.localRefreshButton); this.leftTopPanel.Controls.Add(this.localUpButton); this.leftTopPanel.Controls.Add(this.localLabel); resources.ApplyResources(this.leftTopPanel, "leftTopPanel"); @@ -237,6 +242,21 @@ namespace MeshCentralRouter resources.ApplyResources(this.remoteUpButton, "remoteUpButton"); this.remoteUpButton.Name = "remoteUpButton"; this.remoteUpButton.UseVisualStyleBackColor = true; + this.remoteUpButton.Click += new System.EventHandler(this.remoteUpButton_Click); + // + // localRefreshButton + // + resources.ApplyResources(this.localRefreshButton, "localRefreshButton"); + this.localRefreshButton.Name = "localRefreshButton"; + this.localRefreshButton.UseVisualStyleBackColor = true; + this.localRefreshButton.Click += new System.EventHandler(this.leftRefreshButton_Click); + // + // remoteRefreshButton + // + resources.ApplyResources(this.remoteRefreshButton, "remoteRefreshButton"); + this.remoteRefreshButton.Name = "remoteRefreshButton"; + this.remoteRefreshButton.UseVisualStyleBackColor = true; + this.remoteRefreshButton.Click += new System.EventHandler(this.rightRefreshButton_Click); // // FileViewer // @@ -255,9 +275,11 @@ namespace MeshCentralRouter this.mainTableLayoutPanel.ResumeLayout(false); this.rightPanel.ResumeLayout(false); this.rightTopPanel.ResumeLayout(false); + this.rightTopPanel.PerformLayout(); this.leftPanel.ResumeLayout(false); this.leftPanel.PerformLayout(); this.leftTopPanel.ResumeLayout(false); + this.leftTopPanel.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -290,6 +312,8 @@ namespace MeshCentralRouter private ColumnHeader columnHeader2; private Button remoteUpButton; private Button localUpButton; + private Button localRefreshButton; + private Button remoteRefreshButton; } } diff --git a/FileViewer.cs b/FileViewer.cs index 0ce00e9..6e8dddf 100644 --- a/FileViewer.cs +++ b/FileViewer.cs @@ -71,6 +71,7 @@ namespace MeshCentralRouter } localUpButton.Enabled = false; localLabel.Text = "Local"; + mainToolTip.SetToolTip(localLabel, "Local"); } catch (Exception) { return false; } } @@ -98,6 +99,7 @@ namespace MeshCentralRouter } localUpButton.Enabled = true; localLabel.Text = "Local - " + localFolder.FullName; + mainToolTip.SetToolTip(localLabel, "Local - " + localFolder.FullName); } catch (Exception) { return false; } } @@ -112,17 +114,21 @@ namespace MeshCentralRouter if ((remoteFolder == null) || (remoteFolder == "")) { remoteLabel.Text = "Remote"; + mainToolTip.SetToolTip(remoteLabel, "Remote"); } else { if (node.agentid < 5) { remoteLabel.Text = "Remote - " + remoteFolder.Replace("/", "\\"); + mainToolTip.SetToolTip(remoteLabel, "Remote - " + remoteFolder.Replace("/", "\\")); } else { remoteLabel.Text = "Remote - " + remoteFolder; + mainToolTip.SetToolTip(remoteLabel, "Remote - " + remoteFolder); } } + remoteRefreshButton.Enabled = true; remoteUpButton.Enabled = !((remoteFolder == null) || (remoteFolder == "")); if (remoteFolderList != null) @@ -270,9 +276,8 @@ namespace MeshCentralRouter byte[] bincmd = UTF8Encoding.UTF8.GetBytes(cmd); wc.SendBinary(bincmd, 0, bincmd.Length); + // Ask for root level requestRemoteFolder(""); - //requestRemoteFolder("C:\\"); - return; } if (state != 3) return; @@ -367,6 +372,8 @@ namespace MeshCentralRouter case 0: // Disconnected mainToolStripStatusLabel.Text = "Disconnected"; connectButton.Text = "Connect"; + remoteRefreshButton.Enabled = false; + remoteUpButton.Enabled = false; break; case 1: // Connecting mainToolStripStatusLabel.Text = "Connecting..."; @@ -459,5 +466,47 @@ namespace MeshCentralRouter localFolder = localFolder.Parent; updateLocalFileView(); } + + private void rightListView_MouseDoubleClick(object sender, MouseEventArgs e) + { + ListViewItem item = rightListView.GetItemAt(e.X, e.Y); + if (item != null) + { + string r = remoteFolder; + if ((item.ImageIndex == 0) || (item.ImageIndex == 1)) { + if ((r == null) || (r == "")) { + r = item.Text; + } else { + if (remoteFolder.EndsWith("/")) { r = remoteFolder + item.Text; } else { r = remoteFolder + "/" + item.Text; } + } + requestRemoteFolder(r); + } + } + } + + 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); + } + + private void leftRefreshButton_Click(object sender, EventArgs e) + { + updateLocalFileView(); + } + + private void rightRefreshButton_Click(object sender, EventArgs e) + { + requestRemoteFolder(remoteFolder); + } } } diff --git a/FileViewer.resx b/FileViewer.resx index 1b36912..1c6063c 100644 --- a/FileViewer.resx +++ b/FileViewer.resx @@ -412,6 +412,33 @@ 0 + + NoControl + + + 58, 21 + + + 61, 23 + + + 5 + + + Refresh + + + remoteRefreshButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + rightTopPanel + + + 0 + False @@ -440,11 +467,14 @@ rightTopPanel - 0 + 1 Top, Left, Right + + True + NoControl @@ -452,7 +482,7 @@ 3, 3 - 315, 13 + 44, 13 0 @@ -470,7 +500,7 @@ rightTopPanel - 1 + 2 Top @@ -520,6 +550,33 @@ 1 + + Name + + + 220 + + + Size + + + Right + + + 80 + + + Fill + + + 0, 50 + + + 325, 411 + + + 0 + leftListView @@ -532,6 +589,99 @@ 1 + + NoControl + + + 58, 21 + + + 61, 23 + + + 4 + + + Refresh + + + localRefreshButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + leftTopPanel + + + 0 + + + 6, 21 + + + 46, 23 + + + 3 + + + Up + + + localUpButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + leftTopPanel + + + 1 + + + Top, Left, Right + + + True + + + 3, 3 + + + 33, 13 + + + 0 + + + Local + + + localLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + leftTopPanel + + + 2 + + + Top + + + 0, 0 + + + 325, 50 + + + 1 + leftTopPanel @@ -598,144 +748,6 @@ <?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,20,Percent,50" /><Rows Styles="Percent,100" /></TableLayoutSettings> - - Name - - - 220 - - - Size - - - Right - - - 80 - - - Fill - - - 0, 50 - - - 325, 411 - - - 0 - - - leftListView - - - System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - leftPanel - - - 1 - - - localUpButton - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - leftTopPanel - - - 0 - - - localLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - leftTopPanel - - - 1 - - - Top - - - 0, 0 - - - 325, 50 - - - 1 - - - leftTopPanel - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - leftPanel - - - 2 - - - Top, Left, Right - - - 3, 3 - - - 319, 13 - - - 0 - - - Local - - - localLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - leftTopPanel - - - 1 - - - 6, 21 - - - 46, 23 - - - 3 - - - Up - - - localUpButton - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - leftTopPanel - - - 0 - True