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());
    }
}
Esempio n. 2
0
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();
    }
}