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());
}
}