void PhpPlugin::OnIsWorkspaceOpen(clCommandEvent& e) { e.Skip(); bool isOpen = PHPWorkspace::Get()->IsOpen(); e.SetAnswer(isOpen); if(isOpen) { e.SetFileName(PHPWorkspace::Get()->GetFilename().GetFullPath()); e.SetString(e.GetFileName()); } }
void PhpPlugin::OnOpenWorkspace(clCommandEvent& e) { const wxString WPS_EXT = "phpwsp"; wxString workspace_file = e.GetFileName(); if(!workspace_file.IsEmpty() && wxFileName(workspace_file).GetExt() != WPS_EXT) { // the event already contains a workspace name - don't do anything with the event e.Skip(); return; } wxString filename; if(!workspace_file.IsEmpty()) { filename = workspace_file; } else { // Prompt the user to see if he wants to open a PHP workspace or standard workspace wxString filter; PluginSettings settings; PluginSettings::Load(settings); filter = "All Files (*)|*|Standard Workspace (*.workspace)|*.workspace|PHP Workspace (*.phpwsp)|*.phpwsp"; filename = wxFileSelector(wxT("Open workspace"), wxT(""), wxT(""), wxT(""), filter, wxFD_FILE_MUST_EXIST | wxFD_OPEN); } if(filename.IsEmpty()) { return; } if(PHPWorkspace::Get()->IsOpen()) { PHPWorkspace::Get()->Close(); } wxFileName fn(filename); if(fn.GetExt() == PHPStrings::PHP_WORKSPACE_EXT) { DoOpenWorkspace(fn.GetFullPath()); } else { // set the file selection and pass it on to codelite e.SetFileName(fn.GetFullPath()); e.Skip(); } }