wxString GUI::GetDataDirectory() { std::string cfg_str = g_settings.getString(Config::DATA_DIRECTORY); if(cfg_str.size()) { FileName dir; dir.Assign(wxstr(cfg_str)); wxString path; if(dir.DirExists()) { path = dir.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR); return path; } } // Silently reset directory FileName exec_directory; try { exec_directory = dynamic_cast<wxStandardPaths&>(wxStandardPaths::Get()).GetExecutablePath(); } catch(std::bad_cast) { throw; // Crash application (this should never happend anyways...) } exec_directory.AppendDir(wxT("data")); return exec_directory.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR); }
wxString GUI::GetExtensionsDirectory() { std::string cfg_str = g_settings.getString(Config::EXTENSIONS_DIRECTORY); if(cfg_str.size()) { FileName dir; dir.Assign(wxstr(cfg_str)); wxString path; if(dir.DirExists()) { path = dir.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR); return path; } } // Silently reset directory FileName local_directory = GetLocalDirectory(); local_directory.AppendDir(wxT("extensions")); local_directory.Mkdir(0755, wxPATH_MKDIR_FULL); return local_directory.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR); }