void PHPWorkspaceView::DoDeleteSelectedFileItem() { wxTreeItemId item = DoGetSingleSelection(); CHECK_ITEM_RET(item); ItemData* itemData = DoGetItemData(item); if(!itemData || !itemData->IsFile()) return; wxString msg, caption; caption << _("Removing file '") << wxFileName(itemData->GetFile()).GetFullName() << "'"; msg << _("Removing file '") << wxFileName(itemData->GetFile()).GetFullName() << "' from project '" << itemData->GetProjectName() << "'\n" << _("You can select to remove the file from the project and optionally from the file system\n") << _("From where should codelite remove the file?"); wxMessageDialog dlg(EventNotifier::Get()->TopFrame(), msg, caption, wxYES_NO | wxCANCEL | wxCANCEL_DEFAULT); dlg.SetYesNoCancelLabels("File system && project", "Project only", "Cancel"); int answer = dlg.ShowModal(); if(answer == wxID_YES || answer == wxID_NO) { wxString fileName = itemData->GetFile(); // Remove from from project if(PHPWorkspace::Get()->DelFile(itemData->GetProjectName(), itemData->GetFolderPath(), fileName)) { m_treeCtrlView->Delete(item); } else { return; } if(answer == wxID_YES) { ::wxRemoveFile(fileName); } } }
void PHPWorkspaceView::DoOpenFile(const wxTreeItemId& item) { ItemData* data = DoGetItemData(item); if(data && data->IsFile()) { m_mgr->OpenFile(data->GetFile()); } }
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::OnMakeIndexPHP(wxCommandEvent& e) { e.Skip(); wxTreeItemId item = DoGetSingleSelection(); CHECK_ITEM_RET(item); ItemData* itemData = DoGetItemData(item); CHECK_PTR_RET(itemData); CHECK_ID_FILE(itemData); wxString projectName = itemData->GetProjectName(); if(projectName.IsEmpty()) return; PHPProject::Ptr_t pProject = PHPWorkspace::Get()->GetProject(projectName); CHECK_PTR_RET(pProject); PHPProjectSettingsData& settings = pProject->GetSettings(); settings.SetIndexFile(itemData->GetFile()); pProject->Save(); }