TiXmlElement* COptions::CreateSettingsXmlElement() { if (!m_pXmlFile) return 0; TiXmlElement* element = m_pXmlFile->GetElement(); if (!element) { return 0; } TiXmlElement* settings = element->FirstChildElement("Settings"); if (settings) { return settings; } settings = new TiXmlElement("Settings"); element->LinkEndChild(settings); for (int i = 0; i < OPTIONS_NUM; ++i) { if (options[i].type == string) { SetXmlValue(i, GetOption(i)); } else { SetXmlValue(i, GetOptionVal(i)); } } return settings; }
void COptions::CreateSettingsXmlElement() { if (!m_pXmlFile) return; TiXmlElement *element = m_pXmlFile->GetElement(); if (element->FirstChildElement("Settings")) return; TiXmlElement *settings = new TiXmlElement("Settings"); element->LinkEndChild(settings); for (int i = 0; i < OPTIONS_NUM; i++) { if (options[i].type == string) SetXmlValue(i, m_optionsCache[i].strValue); else { wxString s(wxString::Format(_T("%d"), m_optionsCache[i].numValue)); SetXmlValue(i, s); } } m_pXmlFile->Save(); }
pugi::xml_node COptions::CreateSettingsXmlElement() { if (!m_pXmlFile) { return pugi::xml_node(); } auto element = m_pXmlFile->GetElement(); if (!element) { return element; } auto settings = element.child("Settings"); if (settings) { return settings; } settings = element.append_child("Settings"); for (int i = 0; i < OPTIONS_NUM; ++i) { if (options[i].type == string) { SetXmlValue(i, GetOption(i)); } else { SetXmlValue(i, GetOptionVal(i)); } } return settings; }
void COptions::ContinueSetOption(unsigned int nID, T const& value) { T validated = Validate(nID, value); { scoped_lock l(m_sync_); if (m_optionsCache[nID] == validated) { // Nothing to do return; } m_optionsCache[nID] = validated; } // Fixme: Setting options from other threads if (!wxIsMainThread()) return; if (options[nID].flags == normal || options[nID].flags == default_priority) { SetXmlValue(nID, validated); if (!m_save_timer.IsRunning()) m_save_timer.Start(15000, true); } if (changedOptions_.none()) { CallAfter(&COptions::NotifyChangedOptions); } changedOptions_.set(nID); }
bool COptions::SetOption(unsigned int nID, wxString value) { if (nID >= OPTIONS_NUM) return false; if (options[nID].type != string) { long tmp; if (!value.ToLong(&tmp)) return false; return SetOption(nID, tmp); } Validate(nID, value); if (m_optionsCache[nID].strValue == value) { // Nothing to do return true; } m_optionsCache[nID].strValue = value; if (m_pXmlFile && options[nID].flags == normal) { SetXmlValue(nID, value); if (!m_save_timer.IsRunning()) m_save_timer.Start(15000, true); } COptionChangeEventHandler::DoNotify(nID); return true; }
bool COptions::SetOption(unsigned int nID, int value) { if (nID >= OPTIONS_NUM) return false; if (options[nID].type != number) return false; value = Validate(nID, value); if (m_optionsCache[nID].numValue == value) { // Nothing to do return true; } m_optionsCache[nID].numValue = value; if (m_pXmlFile && (options[nID].flags == normal || options[nID].flags == default_priority) ) { SetXmlValue(nID, wxString::Format(_T("%d"), value)); if (!m_save_timer.IsRunning()) m_save_timer.Start(15000, true); } COptionChangeEventHandler::DoNotify(nID); return true; }
void COptions::CreateSettingsXmlElement() { if (!m_pXmlFile) return; TiXmlElement *element = m_pXmlFile->GetElement(); if (element->FirstChildElement("Settings")) return; TiXmlElement settings("Settings"); element->InsertEndChild(settings); for (int i = 0; i < OPTIONS_NUM; i++) { m_optionsCache[i].cached = true; if (options[i].type == string) m_optionsCache[i].strValue = options[i].defaultValue; else { long numValue = 0; options[i].defaultValue.ToLong(&numValue); m_optionsCache[i].numValue = numValue; } SetXmlValue(i, options[i].defaultValue); } m_pXmlFile->Save(); }
bool COptions::SetOption(unsigned int nID, wxString value) { if (nID >= OPTIONS_NUM) return false; if (options[nID].type != string) { long tmp; if (!value.ToLong(&tmp)) return false; return SetOption(nID, tmp); } Validate(nID, value); m_optionsCache[nID].cached = true; m_optionsCache[nID].strValue = value; if (m_pXmlFile && !options[nID].internal) { SetXmlValue(nID, value); if (!m_save_timer.IsRunning()) m_save_timer.Start(15000, true); } return true; }
bool COptions::SetOption(unsigned int nID, int value) { if (nID >= OPTIONS_NUM) return false; if (options[nID].type != number) return false; value = Validate(nID, value); m_optionsCache[nID].cached = true; m_optionsCache[nID].numValue = value; if (m_pXmlFile && !options[nID].internal) { SetXmlValue(nID, wxString::Format(_T("%d"), value)); if (!m_save_timer.IsRunning()) m_save_timer.Start(15000, true); } return true; }
void COptions::SetXmlValue(unsigned int nID, int value) { SetXmlValue(nID, wxString::Format(_T("%d"), value)); }
void COptions::SetXmlValue(unsigned int nID, int value) { SetXmlValue(nID, fz::to_wstring(value)); }