void CRecentServerList::SetMostRecentServer(const CServer& server) { CInterProcessMutex mutex(MUTEX_MOSTRECENTSERVERS); // Make sure list is initialized GetMostRecentServers(false); bool relocated = false; for (std::list<CServer>::iterator iter = m_mostRecentServers.begin(); iter != m_mostRecentServers.end(); ++iter) { if (iter->EqualsNoPass(server)) { m_mostRecentServers.erase(iter); m_mostRecentServers.push_front(server); relocated = true; break; } } if (!relocated) { m_mostRecentServers.push_front(server); if (m_mostRecentServers.size() > 10) m_mostRecentServers.pop_back(); } if (COptions::Get()->GetOptionVal(OPTION_DEFAULT_KIOSKMODE) == 2) return; TiXmlElement* pDocument = m_XmlFile.GetElement(); if (!pDocument) return; TiXmlElement* pElement = pDocument->FirstChildElement("RecentServers"); if (!pElement) pElement = pDocument->LinkEndChild(new TiXmlElement("RecentServers"))->ToElement(); pElement->Clear(); for (std::list<CServer>::const_iterator iter = m_mostRecentServers.begin(); iter != m_mostRecentServers.end(); ++iter) { TiXmlElement* pServer = pElement->LinkEndChild(new TiXmlElement("Server"))->ToElement(); SetServer(pServer, *iter); } wxString error; m_XmlFile.Save(&error); }
void CRecentServerList::SetMostRecentServer(const CServer& server) { CInterProcessMutex mutex(MUTEX_MOSTRECENTSERVERS); // Make sure list is initialized GetMostRecentServers(false); bool relocated = false; for (std::list<CServer>::iterator iter = m_mostRecentServers.begin(); iter != m_mostRecentServers.end(); iter++) { if (*iter == server) { m_mostRecentServers.erase(iter); m_mostRecentServers.push_front(server); relocated = true; break; } } if (!relocated) { m_mostRecentServers.push_front(server); if (m_mostRecentServers.size() > 10) m_mostRecentServers.pop_back(); } TiXmlElement* pDocument = m_XmlFile.GetElement(); if (!pDocument) return; TiXmlElement* pElement = pDocument->FirstChildElement("RecentServers"); if (!pElement) pElement = pDocument->InsertEndChild(TiXmlElement("RecentServers"))->ToElement(); pElement->Clear(); for (std::list<CServer>::const_iterator iter = m_mostRecentServers.begin(); iter != m_mostRecentServers.end(); iter++) { TiXmlElement* pServer = pElement->InsertEndChild(TiXmlElement("Server"))->ToElement(); SetServer(pServer, *iter); } wxString error; m_XmlFile.Save(&error); }