void PHPWorkspaceView::OnNewFolder(wxCommandEvent& e) { wxUnusedVar(e); wxString name = wxGetTextFromUser(_("New Folder Name:"), _("New Folder")); if(name.IsEmpty()) return; wxString project = DoGetSelectedProject(); if(project.IsEmpty()) return; wxTreeItemId parent = m_treeCtrlView->GetSelection(); CHECK_ITEM_RET(parent); ItemData* itemData = DoGetItemData(parent); CHECK_PTR_RET(itemData); if(!itemData->IsFolder() && !itemData->IsProject()) return; PHPProject::Ptr_t proj = PHPWorkspace::Get()->GetProject(project); CHECK_PTR_RET(proj); wxString folder; if(itemData->IsFolder()) { folder << itemData->GetFolderPath() << "/" << name; } else { folder << name; } PHPFolder::Ptr_t pFolder = proj->AddFolder(folder); proj->Save(); // Update the UI DoAddFolder(parent, pFolder, proj); }
void PHPWorkspaceView::OnImportFiles(wxCommandEvent& e) { ImportFilesDlg dlg(wxTheApp->GetTopWindow()); if(dlg.ShowModal() == wxID_OK) { PHPProject::Ptr_t pProject = PHPWorkspace::Get()->GetProject(DoGetSelectedProject()); CHECK_PTR_RET(pProject); pProject->ImportDirectory(dlg.GetPath(), dlg.GetFileSpec(), dlg.GetIsRecursive()); LoadWorkspace(); } }
void PHPWorkspaceView::OnSetProjectActive(wxCommandEvent& e) { wxString project = DoGetSelectedProject(); if(project.IsEmpty()) return; PHPWorkspace::Get()->SetProjectActive(project); wxTreeItemIdValue cookie; wxTreeItemId child = m_treeCtrlView->GetFirstChild(m_treeCtrlView->GetRootItem(), cookie); while(child.IsOk()) { ItemData* id = DoGetItemData(child); if(id && id->IsProject()) { id->SetActive(id->GetProjectName() == project); m_treeCtrlView->SetItemBold(child, id->IsActive()); } child = m_treeCtrlView->GetNextChild(m_treeCtrlView->GetRootItem(), cookie); } }
void PHPWorkspaceView::OnRenameFile(wxCommandEvent& e) { wxTreeItemId item = DoGetSingleSelection(); CHECK_ITEM_RET(item); ItemData *data = DoGetItemData(item); CHECK_PTR_RET(data); CHECK_ID_FILE(data); wxFileName old_file_name = data->GetFile(); wxString new_name = ::wxGetTextFromUser(_("New file name:"), _("Rename file"), old_file_name.GetFullName() ); if ( new_name.IsEmpty() ) return; if ( new_name == old_file_name.GetFullName() ) return; // Check to see if we got a file with the old path opened bool reopenFile = false; IEditor *editor = m_mgr->FindEditor(old_file_name.GetFullPath()); if ( editor ) { m_mgr->ClosePage( editor->GetFileName().GetFullName() ); reopenFile = true; editor = NULL; } PHPProject::Ptr_t pProject = PHPWorkspace::Get()->GetProject(DoGetSelectedProject()); CHECK_PTR_RET(pProject); if ( pProject->RenameFile(old_file_name.GetFullPath(), new_name) ) { // Locate the folder pProject->Save(); m_treeCtrlView->SetItemText(item, new_name); // Update the item data old_file_name.SetFullName(new_name); data->SetFile( old_file_name.GetFullPath() ); // Open the file if it was opened earlier // old_file_name now contains the new full path to the new file if ( reopenFile ) { m_mgr->OpenFile( old_file_name.GetFullPath() ); } } }
void PHPWorkspaceView::OnDeleteFolder(wxCommandEvent& e) { wxTreeItemId folderItem = DoGetSingleSelection(); if(!IsFolderItem(folderItem)) return; ItemData* data = DoGetItemData(folderItem); wxString folder = data->GetFolderPath(); wxString project = DoGetSelectedProject(); if(folder.IsEmpty() || project.IsEmpty()) return; wxString msg = wxString() << _("Are you sure you want to delete folder '") << folder << ("'?\nNote: selecting 'Yes' will NOT remove any file from the file system"); if(wxMessageBox(msg, wxT("CodeLite"), wxYES_NO | wxCANCEL | wxICON_QUESTION | wxCENTER) != wxYES) return; PHPProject::Ptr_t pProject = PHPWorkspace::Get()->GetProject(project); CHECK_PTR_RET(pProject); pProject->DeleteFolder(folder); pProject->Save(); // Update the UI m_treeCtrlView->Delete(folderItem); }
void PHPWorkspaceView::DoAddFileWithContent(const wxTreeItemId& folderId, const wxFileName& filename, const wxString& content) { // file can only be added to a folder ItemData* data = DoGetItemData(folderId); if(!data || !data->IsFolder()) { return; } if(filename.FileExists()) { // a file with this name already exists wxMessageBox(_("A file with same name already exists!"), wxT("CodeLite"), wxOK | wxCENTER | wxICON_WARNING); return; } FileExtManager::FileType type = FileExtManager::GetType(filename.GetFullName()); // Create the file const wxString __EOL__ = EditorConfigST::Get()->GetOptions()->GetEOLAsString(); // Make sure that the path exists filename.Mkdir(wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL); wxFFile fp; if(fp.Open(filename.GetFullPath(), wxT("w+"))) { // if its is a PHP file, write the php tag at to the top of the file if(type == FileExtManager::TypePhp) { fp.Write(wxString() << "<?php " << __EOL__ << __EOL__ << content); } fp.Close(); } // add the new file wxString project_name = DoGetSelectedProject(); wxString folder_name = data->GetFolderPath(); PHPProject::Ptr_t pProject = PHPWorkspace::Get()->GetProject(project_name); CHECK_PTR_RET(pProject); PHPFolder::Ptr_t pFolder = pProject->Folder(folder_name); CHECK_PTR_RET(pFolder); if(PHPWorkspace::Get()->AddFile(project_name, folder_name, filename.GetFullPath())) { wxArrayString filesToAdd; filesToAdd.Add(filename.GetFullPath()); DoAddFilesToTreeView(folderId, pProject, pFolder, filesToAdd); } // Open the newly added file m_mgr->OpenFile(filename.GetFullPath()); IEditor* editor = m_mgr->GetActiveEditor(); if(editor) { editor->SetCaretAt(editor->GetLength()); } // Notify plugins about new files was added to workspace wxArrayString files; files.Add(filename.GetFullPath()); // Notify the plugins clCommandEvent evtFilesAdded(wxEVT_PROJ_FILE_ADDED); evtFilesAdded.SetStrings(files); EventNotifier::Get()->AddPendingEvent(evtFilesAdded); }
void PHPWorkspaceView::OnProjectSettings(wxCommandEvent& event) { PHPProjectSettingsDlg settingsDlg(FRAME, DoGetSelectedProject()); settingsDlg.ShowModal(); }
void PHPWorkspaceView::OnRunProject(wxCommandEvent& e) { PHPWorkspace::Get()->RunProject(false, DoGetSelectedProject()); }