From f7ac20b3dc3f0ee105db428d9e10b2164b921fc4 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Mon, 21 Sep 2020 21:41:53 -0700 Subject: [PATCH] Added file sort. --- FileViewer.cs | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/FileViewer.cs b/FileViewer.cs index 12297b9..f7b3075 100644 --- a/FileViewer.cs +++ b/FileViewer.cs @@ -141,6 +141,14 @@ namespace MeshCentralRouter return true; } + public class ListViewItemSortClass : IComparer + { + int IComparer.Compare(Object x, Object y) + { + return ((new CaseInsensitiveComparer()).Compare(((ListViewItem)x).SubItems[0].Text, ((ListViewItem)y).SubItems[0].Text)); + } + } + private delegate void updateRemoteFileViewHandler(); public void updateRemoteFileView() { @@ -176,6 +184,8 @@ namespace MeshCentralRouter if (remoteFolderList != null) { + ArrayList sortlist = new ArrayList(); + // Display all folders for (int i = 0; i < remoteFolderList.Count; i++) { @@ -189,15 +199,14 @@ namespace MeshCentralRouter if (fileItem.ContainsKey("d")) { fileDate = (string)fileItem["d"]; } if (fileItem.ContainsKey("s")) { fileSize = (int)fileItem["s"]; } if (fileIcon == 1) { - // Drive - ListViewItem x = new ListViewItem(fileName, 0); - rightListView.Items.Add(x); + sortlist.Add(new ListViewItem(fileName, 0)); // Drive } else if (fileIcon == 2) { - // Folder - ListViewItem x = new ListViewItem(fileName, 1); - rightListView.Items.Add(x); + sortlist.Add(new ListViewItem(fileName, 1)); // Folder } } + sortlist.Sort(new ListViewItemSortClass()); + foreach (ListViewItem l in sortlist) { rightListView.Items.Add(l); } + sortlist.Clear(); // Display all files for (int i = 0; i < remoteFolderList.Count; i++) @@ -217,10 +226,11 @@ namespace MeshCentralRouter string[] si = new string[2]; si[0] = fileName; si[1] = "" + fileSize; - ListViewItem x = new ListViewItem(si, 2); - rightListView.Items.Add(x); + sortlist.Add(new ListViewItem(si, 2)); // File } } + sortlist.Sort(new ListViewItemSortClass()); + foreach (ListViewItem l in sortlist) { rightListView.Items.Add(l); } } updateTransferButtons(); }