diff --git a/MeshCentralRouter.csproj b/MeshCentralRouter.csproj index b5e3456..13b4ae0 100644 --- a/MeshCentralRouter.csproj +++ b/MeshCentralRouter.csproj @@ -13,7 +13,7 @@ v4.7.2 512 MeshCentralRouter.Program - src\MeshServer.ico + MeshServer.ico 3.5 @@ -58,6 +58,7 @@ AllRules.ruleset false + app.manifest @@ -415,6 +416,7 @@ + diff --git a/MeshServer.ico b/MeshServer.ico new file mode 100644 index 0000000..1c89b1d Binary files /dev/null and b/MeshServer.ico differ diff --git a/src/MainForm.cs b/src/MainForm.cs index a72c31e..581de64 100644 --- a/src/MainForm.cs +++ b/src/MainForm.cs @@ -530,7 +530,7 @@ namespace MeshCentralRouter { string host = serverNameComboBox.Text; int i = host.IndexOf("?key="); - if (i >= 0) { host = host.Substring(0, i); } + if (i >= 0) { host = host.Substring(0, i); } i = host.IndexOf(":"); if (i >= 0) { host = host.Substring(0, i); } ok = (Program.LockToHostname == host); @@ -710,15 +710,15 @@ namespace MeshCentralRouter } } - class GroupComparer : IComparer - { - public int Compare(object objA, object objB) - { - return ((ListViewGroup)objA).Header.CompareTo(((ListViewGroup)objB).Header); - } - } + class GroupComparer : IComparer + { + public int Compare(object objA, object objB) + { + return ((ListViewGroup)objA).Header.CompareTo(((ListViewGroup)objB).Header); + } + } - private void updateDeviceList() + private void updateDeviceList() { string search = searchTextBox.Text.ToLower(); if (deviceListViewMode) @@ -731,6 +731,7 @@ namespace MeshCentralRouter { foreach (NodeClass node in meshcentral.nodes.Values) { + if (node.agentid == -1) { continue; } ListViewItem device; if (node.listitem == null) @@ -748,51 +749,57 @@ namespace MeshCentralRouter } if ((node.meshid != null) && meshcentral.meshes.ContainsKey(node.meshid)) { node.mesh = (MeshClass)meshcentral.meshes[node.meshid]; } + string meshName = (node.mesh != null) ? node.mesh.name : Properties.Resources.IndividualDevices; + if ((showGroupNamesToolStripMenuItem.Checked) && (node.mesh != null)) { - device.SubItems[0].Text = node.mesh.name + " - " + node.name; + device.SubItems[0].Text = meshName + " - " + node.name; } else { device.SubItems[0].Text = node.name; } - // *** Flynn Grouping start - bool bGroupExisting = false; - for(int i = 0; i < devicesListView.Groups.Count; i++) - if(devicesListView.Groups[i].Header == node.mesh.name) - { - bGroupExisting = true; - node.listitem.Group = devicesListView.Groups[i]; - break; - } - if(!bGroupExisting) - { - ListViewGroup grp = devicesListView.Groups.Add(devicesListView.Groups.Count.ToString(), node.mesh.name); - node.listitem.Group = grp; + // *** Flynn Grouping start + bool bGroupExisting = false; + for (int i = 0; i < devicesListView.Groups.Count; i++) + { + if (devicesListView.Groups[i].Header == meshName) + { + bGroupExisting = true; + node.listitem.Group = devicesListView.Groups[i]; + break; + } + } - ListViewGroup[] groups = new ListViewGroup[this.devicesListView.Groups.Count]; + if (!bGroupExisting) + { + ListViewGroup grp = devicesListView.Groups.Add(devicesListView.Groups.Count.ToString(), meshName); + node.listitem.Group = grp; + ListViewGroup[] groups = new ListViewGroup[this.devicesListView.Groups.Count]; + this.devicesListView.Groups.CopyTo(groups, 0); + Array.Sort(groups, new GroupComparer()); - this.devicesListView.Groups.CopyTo(groups, 0); + this.devicesListView.BeginUpdate(); + this.devicesListView.Groups.Clear(); + this.devicesListView.Groups.AddRange(groups); + this.devicesListView.EndUpdate(); - Array.Sort(groups, new GroupComparer()); + foreach (ListViewGroup lvg in devicesListView.Groups) + { + if (lvg.Header == "Repos") + { + ListViewExtended.setGrpState(lvg, ListViewGroupState.Collapsible | ListViewGroupState.Normal); + } + else + { + ListViewExtended.setGrpState(lvg, ListViewGroupState.Collapsible | ListViewGroupState.Collapsed); + } + } + } + // *** Flynn Grouping end - this.devicesListView.BeginUpdate(); - this.devicesListView.Groups.Clear(); - this.devicesListView.Groups.AddRange(groups); - this.devicesListView.EndUpdate(); - - foreach(ListViewGroup lvg in devicesListView.Groups) - { - if(lvg.Header == "Repos") - ListViewExtended.setGrpState(lvg, ListViewGroupState.Collapsible | ListViewGroupState.Normal); - else - ListViewExtended.setGrpState(lvg, ListViewGroupState.Collapsible | ListViewGroupState.Collapsed); - } - } - // *** Flynn Groupng end - - bool connVisible = ((showOfflineDevicesToolStripMenuItem.Checked) || ((node.conn & 1) != 0)) || (node.mtype == 3); + bool connVisible = ((showOfflineDevicesToolStripMenuItem.Checked) || ((node.conn & 1) != 0)) || (node.mtype == 3); int imageIndex = (node.icon - 1) * 2; if (((node.conn & 1) == 0) && (node.mtype != 3)) { imageIndex++; } device.ImageIndex = imageIndex; @@ -2220,13 +2227,14 @@ namespace MeshCentralRouter private void button1_Click(object sender, EventArgs e) { ConnectionSettings form = new ConnectionSettings(); - if (form.ShowDialog(this) == DialogResult.OK) { } + if (form.ShowDialog(this) == DialogResult.OK) { } } private void customAppsToolStripMenuItem_Click(object sender, EventArgs e) { CustomAppsForm f = new CustomAppsForm(Settings.GetApplications()); - if (f.ShowDialog(this) == DialogResult.OK) { + if (f.ShowDialog(this) == DialogResult.OK) + { Settings.SetApplications(f.getApplications()); } }