private void onServerUpdated(Server server) { if (!taskInProgress) { return; } if (serverBrowserView.InvokeRequired) { onServerUpdatedCallback c = new onServerUpdatedCallback(onServerUpdated); this.Invoke(c, new object[] { server }); return; } if (server.queryStatus == Server.ServerQueryStatus.Failed) { if (currentFilter.Favourites != Filter.YNA.Yes) { serverBrowserView.Items.Remove(server.rowItem); } else { server.rowItem.BackColor = Color.OrangeRed; } return; } else if (server.queryStatus == Server.ServerQueryStatus.TimedOut) { if (currentFilter.Favourites != Filter.YNA.Yes) { serverBrowserView.Items.Remove(server.rowItem); } else { server.rowItem.BackColor = Color.Gray; } return; } else if (server.queryStatus == Server.ServerQueryStatus.Successful && !currentFilter.serverMatchesFilter(server, favMngr, friendMngr)) { serverBrowserView.Items.Remove(server.rowItem); } else if (server.queryStatus == Server.ServerQueryStatus.Successful) { // update that individual list item if (server.rowItem.SubItems.Count != 9) { server.rowItem.SubItems.Clear(); server.rowItem.SubItems.Add(HelperFunctions.removeColourCodes(server.serverName)); server.rowItem.SubItems.Add(favMngr.isFavourite(server) ? "X" : "-"); server.rowItem.SubItems.Add(string.Format("{0} ({1})", server.serverPing.ToString(), server.serverDvars["sv_maxPing"])); server.rowItem.SubItems.Add(string.Format("{0} / {1}", server.serverNPlayers, server.serverMaxPlayers)); server.rowItem.SubItems.Add(HelperFunctions.gameTypeToFullname(server.serverGametype)); server.rowItem.SubItems.Add(HelperFunctions.mapToFullname(server.serverMap)); server.rowItem.SubItems.Add(server.serverMod); server.rowItem.SubItems.Add(server.serverDvars["g_hardcore"].Equals("1") ? "X" : "-"); } else { server.rowItem.SubItems[1].Text = HelperFunctions.removeColourCodes(server.serverName); server.rowItem.SubItems[2].Text = favMngr.isFavourite(server) ? "X" : "-"; server.rowItem.SubItems[3].Text = string.Format("{0} ({1})", server.serverPing.ToString(), server.serverDvars["sv_maxPing"]); server.rowItem.SubItems[4].Text = string.Format("{0} / {1}", server.serverNPlayers, server.serverMaxPlayers); server.rowItem.SubItems[5].Text = HelperFunctions.gameTypeToFullname(server.serverGametype); server.rowItem.SubItems[6].Text = HelperFunctions.mapToFullname(server.serverMap); server.rowItem.SubItems[7].Text = server.serverMod; if (server.serverDvars.ContainsKey("g_hardcore")) { server.rowItem.SubItems[8].Text = (server.serverDvars["g_hardcore"].Equals("1") ? "X" : "-"); } else { server.rowItem.SubItems[8].Text = ""; } } } if (infoDlg.currentServer == server) { infoDlg.updateDlg(server); // if the info dlg exists, update it with the correct info } serverBrowserView.Sort(); }
private void onServerUpdated(Server server) { if (!taskInProgress) return; if (serverBrowserView.InvokeRequired) { onServerUpdatedCallback c = new onServerUpdatedCallback(onServerUpdated); this.Invoke(c, new object[] { server }); return; } if (server.queryStatus == Server.ServerQueryStatus.Failed) { if (currentFilter.Favourites != Filter.YNA.Yes) serverBrowserView.Items.Remove(server.rowItem); else server.rowItem.BackColor = Color.OrangeRed; return; } else if (server.queryStatus == Server.ServerQueryStatus.TimedOut) { if (currentFilter.Favourites != Filter.YNA.Yes) serverBrowserView.Items.Remove(server.rowItem); else server.rowItem.BackColor = Color.Gray; return; } else if (server.queryStatus == Server.ServerQueryStatus.Successful && !currentFilter.serverMatchesFilter(server, favMngr, friendMngr)) { serverBrowserView.Items.Remove(server.rowItem); } else if (server.queryStatus == Server.ServerQueryStatus.Successful) { // update that individual list item if (server.rowItem.SubItems.Count != 9) { server.rowItem.SubItems.Clear(); server.rowItem.SubItems.Add(HelperFunctions.removeColourCodes(server.serverName)); server.rowItem.SubItems.Add(favMngr.isFavourite(server) ? "X" : "-"); server.rowItem.SubItems.Add(string.Format("{0} ({1})", server.serverPing.ToString(), server.serverDvars["sv_maxPing"])); server.rowItem.SubItems.Add(string.Format("{0} / {1}", server.serverNPlayers, server.serverMaxPlayers)); server.rowItem.SubItems.Add(HelperFunctions.gameTypeToFullname(server.serverGametype)); server.rowItem.SubItems.Add(HelperFunctions.mapToFullname(server.serverMap)); server.rowItem.SubItems.Add(server.serverMod); server.rowItem.SubItems.Add(server.serverDvars["g_hardcore"].Equals("1") ? "X" : "-"); } else { server.rowItem.SubItems[1].Text = HelperFunctions.removeColourCodes(server.serverName); server.rowItem.SubItems[2].Text = favMngr.isFavourite(server) ? "X" : "-"; server.rowItem.SubItems[3].Text = string.Format("{0} ({1})", server.serverPing.ToString(), server.serverDvars["sv_maxPing"]); server.rowItem.SubItems[4].Text = string.Format("{0} / {1}", server.serverNPlayers, server.serverMaxPlayers); server.rowItem.SubItems[5].Text = HelperFunctions.gameTypeToFullname(server.serverGametype); server.rowItem.SubItems[6].Text = HelperFunctions.mapToFullname(server.serverMap); server.rowItem.SubItems[7].Text = server.serverMod; if (server.serverDvars.ContainsKey("g_hardcore")) server.rowItem.SubItems[8].Text = (server.serverDvars["g_hardcore"].Equals("1") ? "X" : "-"); else server.rowItem.SubItems[8].Text = ""; } } if (infoDlg.currentServer == server) infoDlg.updateDlg(server); // if the info dlg exists, update it with the correct info serverBrowserView.Sort(); }