/* This routine is platform-independent. MMEX is a portable application which means ability to to run without installation, for example, from USB flash drive. If mmex finds mmexini.db3 in its folder, it assumes portable mode and GetUserDir() in such case points to that folder. FIXME: security issue - temp files will be created on host filesystem. */ const wxFileName mmex::GetUserDir(bool create) { static wxFileName fname; if (!fname.IsOk()) { fname = getSettingsPathPortable(); bool portable_file_ok = fname.IsFileWritable() && fname.IsFileReadable(); if (!portable_file_ok) { fname.AssignDir(wxStandardPaths::Get().GetUserDataDir()); if (create && !fname.DirExists()) { portable_file_ok = fname.Mkdir(0700, wxPATH_MKDIR_FULL); // 0700 - octal, "111 000 000" wxASSERT(portable_file_ok); } } fname.SetFullName(wxGetEmptyString()); } return fname; }
bool CMakePlugin::ExistsCMakeLists(wxFileName directory) const { // Add CMakeLists.txt directory.SetFullName(CMAKELISTS_FILE); return directory.Exists(); }
void CMakePlugin::OpenCMakeLists(wxFileName filename) const { filename.SetFullName(CMAKELISTS_FILE); if (!m_mgr->OpenFile(filename.GetFullPath())) wxMessageBox("Unable to open \"" + filename.GetFullPath() + "\"", wxMessageBoxCaptionStr, wxOK | wxCENTER | wxICON_ERROR); }