Example #1
0
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();
}
Example #3
0
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;
}
Example #4
0
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);
}
Example #5
0
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;
}
Example #6
0
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;
}
Example #7
0
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();
}
Example #8
0
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;
}
Example #9
0
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;
}
Example #10
0
void COptions::SetXmlValue(unsigned int nID, int value)
{
	SetXmlValue(nID, wxString::Format(_T("%d"), value));
}
Example #11
0
void COptions::SetXmlValue(unsigned int nID, int value)
{
	SetXmlValue(nID, fz::to_wstring(value));
}