本文整理汇总了C++中phpproject::Ptr_t::Folder方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr_t::Folder方法的具体用法?C++ Ptr_t::Folder怎么用?C++ Ptr_t::Folder使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类phpproject::Ptr_t
的用法示例。
在下文中一共展示了Ptr_t::Folder方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnNewClass
void PHPWorkspaceView::OnNewClass(wxCommandEvent& e)
{
wxTreeItemId folderId = DoGetSingleSelection();
ItemData* data = DoGetItemData(folderId);
if(!data || !data->IsFolder()) {
return;
}
PHPProject::Ptr_t pProject = PHPWorkspace::Get()->GetProject(data->GetProjectName());
CHECK_PTR_RET(pProject);
PHPFolder::Ptr_t pFolder = pProject->Folder(data->GetFolderPath());
CHECK_PTR_RET(pFolder);
NewPHPClass dlg(wxTheApp->GetTopWindow(), pFolder->GetFullPath(pProject->GetFilename().GetPath(), false));
if(dlg.ShowModal() == wxID_OK) {
PHPClassDetails pcd = dlg.GetDetails();
pFolder = pProject->AddFolder(PHPFolder::GetFolderPathFromFileFullPath(pcd.GetFilepath().GetFullPath(),
pProject->GetFilename().GetPath()));
CHECK_PTR_RET(pFolder);
folderId = EnsureFolderExists(
DoGetProjectItem(pProject->GetName()), pFolder->GetPathRelativeToProject(), pProject->GetName());
DoAddFileWithContent(
folderId, pcd.GetFilepath(), pcd.ToString(EditorConfigST::Get()->GetOptions()->GetEOLAsString(), " "));
}
}
示例2: DoAddFolderFiles
void PHPWorkspaceView::DoAddFolderFiles(const wxString& project,
const wxString& folder,
const wxTreeItemId& folderTreeItemId,
wxStringSet_t* filesAdded)
{
PHPProject::Ptr_t pProject = PHPWorkspace::Get()->GetProject(project);
CHECK_PTR_RET(pProject);
PHPFolder::Ptr_t pFolder = pProject->Folder(folder);
CHECK_PTR_RET(pFolder);
wxArrayString files;
pFolder->GetFiles(files, pProject->GetFilename().GetPath());
files.Sort();
for(size_t i = 0; i < files.GetCount(); ++i) {
wxFileName fn(files.Item(i));
// create the user data
ItemData* itemData = new ItemData(ItemData::Kind_File);
itemData->SetFile(fn.GetFullPath());
itemData->SetFolderPath(folder);
itemData->SetProjectName(project);
int imgId = DoGetItemImgIdx(fn.GetFullName());
m_treeCtrlView->AppendItem(folderTreeItemId, fn.GetFullName(), imgId, imgId, itemData);
if(filesAdded) {
filesAdded->insert(fn.GetFullPath());
}
}
}
示例3: OnAddFile
void PHPWorkspaceView::OnAddFile(wxCommandEvent& e)
{
wxTreeItemId folderItem = DoGetSingleSelection();
CHECK_ITEM_RET(folderItem);
ItemData* data = DoGetItemData(folderItem);
CHECK_PTR_RET(data);
if(!data->IsFolder()) return;
PHPProject::Ptr_t pProject = PHPWorkspace::Get()->GetProject(data->GetProjectName());
CHECK_PTR_RET(pProject);
PHPFolder::Ptr_t pFolder = pProject->Folder(data->GetFolderPath());
CHECK_PTR_RET(pFolder);
wxFileDialog dlg(wxTheApp->GetTopWindow(),
_("Add file"),
pFolder->GetFullPath(pProject->GetFilename().GetPath()),
wxT(""),
wxT("PHP Files (*.php)|*.php|PHP include files (*.inc)|*.inc|All files (*)|*"),
wxFD_FILE_MUST_EXIST | wxFD_OPEN | wxFD_MULTIPLE);
if(dlg.ShowModal() == wxID_OK) {
wxArrayString paths;
dlg.GetPaths(paths);
if(paths.IsEmpty()) return;
// if the file is not under the project's tree - do not add it
// Use the folder taken from the file's full path and the pFolder as the base folder for adding the file
if(!paths.Item(0).StartsWith(pProject->GetFilename().GetPath())) {
::wxMessageBox(_("Can not add file to project. File must be under the project directory tree"),
"CodeLite",
wxOK | wxCENTER | wxICON_WARNING);
return;
}
DoAddFilesToFolder(paths, pProject, true);
pProject->Save();
}
}
示例4: OnNewFile
void PHPWorkspaceView::OnNewFile(wxCommandEvent& e)
{
wxTreeItemId folderId = DoGetSingleSelection();
ItemData *data = DoGetItemData( folderId );
if( data->IsFolder() ) {
PHPProject::Ptr_t pProj = PHPWorkspace::Get()->GetProject(data->GetProjectName());
CHECK_PTR_RET(pProj);
PHPFolder::Ptr_t pFolder = pProj->Folder(data->GetFolderPath());
CHECK_PTR_RET(pFolder);
NewFileDlg dlg(wxTheApp->GetTopWindow(), pFolder->GetFullPath( pProj->GetFilename().GetPath() ) );
if(dlg.ShowModal() == wxID_OK) {
wxFileName filename = dlg.GetPath();
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;
}
DoAddFileWithContent(folderId, filename, "");
}
}
}
示例5: DoAddFileWithContent
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);
}