Beispiel #1
0
CLocalPath COptions::InitSettingsDir()
{
	CLocalPath p;

	std::wstring dir = GetOption(OPTION_DEFAULT_SETTINGSDIR);
	if (!dir.empty()) {
		dir = ExpandPath(dir);
		p.SetPath(wxGetApp().GetDefaultsDir().GetPath());
		p.ChangePath(dir);
	}
	else {
		p = GetUnadjustedSettingsDir();
	}

	if (!p.empty() && !p.Exists()) {
		wxFileName::Mkdir(p.GetPath(), 0700, wxPATH_MKDIR_FULL);
	}

	SetOption(OPTION_DEFAULT_SETTINGSDIR, p.GetPath());

	return p;
}
Beispiel #2
0
CLocalPath COptions::InitSettingsDir()
{
	CLocalPath p;

	wxString dir(GetOption(OPTION_DEFAULT_SETTINGSDIR));
	if (!dir.empty()) {
		wxStringTokenizer tokenizer(dir, _T("/\\"), wxTOKEN_RET_EMPTY_ALL);
		dir = _T("");
		while (tokenizer.HasMoreTokens()) {
			wxString token = tokenizer.GetNextToken();
			if (!token.empty() && token[0] == '$') {
				if (token.size() > 1 && token[1] == '$')
					token = token.Mid(1);
				else {
					token = GetEnv(token.Mid(1));
				}
			}
			dir += token;
			const wxChar delimiter = tokenizer.GetLastDelimiter();
			if (delimiter)
				dir += delimiter;
		}

		p.SetPath(wxGetApp().GetDefaultsDir().GetPath());
		p.ChangePath(dir);
	}
	else {
		p = GetUnadjustedSettingsDir();
	}

	if (!p.empty() && !p.Exists())
		wxFileName::Mkdir( p.GetPath(), 0700, wxPATH_MKDIR_FULL );

	SetOption(OPTION_DEFAULT_SETTINGSDIR, p.GetPath());

	return p;
}