本文整理汇总了C++中MyClientData::GetFullPath方法的典型用法代码示例。如果您正苦于以下问题:C++ MyClientData::GetFullPath方法的具体用法?C++ MyClientData::GetFullPath怎么用?C++ MyClientData::GetFullPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MyClientData
的用法示例。
在下文中一共展示了MyClientData::GetFullPath方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnMenuDelete
void SFTPTreeView::OnMenuDelete(wxCommandEvent& event)
{
wxTreeListItems items;
m_treeListCtrl->GetSelections(items);
if(items.empty()) return;
wxString message;
message << _("Are you sure you want to delete the selected items?");
if(::wxMessageBox(message, "Confirm", wxYES_NO | wxCANCEL | wxICON_QUESTION) != wxYES) {
return;
}
try {
for(size_t i = 0; i < items.size(); ++i) {
MyClientData* cd = GetItemData(items.at(i));
if(cd->IsFolder()) {
m_sftp->RemoveDir(cd->GetFullPath());
} else {
m_sftp->UnlinkFile(cd->GetFullPath());
}
// Remove the selection
m_treeListCtrl->DeleteItem(items.at(i));
}
} catch(clException& e) {
::wxMessageBox(e.What(), "SFTP", wxICON_ERROR | wxOK | wxCENTER);
}
}
示例2: OnMenuRename
void SFTPTreeView::OnMenuRename(wxCommandEvent& event)
{
wxTreeListItems items;
m_treeListCtrl->GetSelections(items);
if(items.empty()) return;
try {
for(size_t i = 0; i < items.size(); ++i) {
MyClientData* cd = GetItemData(items.at(i));
if(!cd) continue; // ??
wxString new_name = ::wxGetTextFromUser(_("Enter new name:"), _("Rename"), cd->GetFullName());
if(!new_name.IsEmpty()) {
wxString old_path = cd->GetFullPath();
cd->SetFullName(new_name);
m_sftp->Rename(old_path, cd->GetFullPath());
// Remove the selection
m_treeListCtrl->SetItemText(items.at(i), 0, new_name);
}
}
} catch(clException& e) {
::wxMessageBox(e.What(), "SFTP", wxICON_ERROR | wxOK | wxCENTER);
}
}
示例3: DoExpandItem
bool SFTPTreeView::DoExpandItem(const wxTreeItemId& item)
{
MyClientData* cd = GetItemData(item);
CHECK_PTR_RET_FALSE(cd);
// already initialized this folder before?
if(cd->IsInitialized()) { return true; }
// get list of files and populate the tree
SFTPAttribute::List_t attributes;
try {
attributes = m_sftp->List(cd->GetFullPath(), clSFTP::SFTP_BROWSE_FILES | clSFTP::SFTP_BROWSE_FOLDERS);
} catch(clException& e) {
::wxMessageBox(e.What(), "SFTP", wxOK | wxICON_ERROR | wxCENTER, EventNotifier::Get()->TopFrame());
return false;
}
// Remove the dummy item and replace it with real items
wxTreeItemIdValue cookie;
wxTreeItemId dummyItem = m_treeCtrl->GetFirstChild(item, cookie);
m_treeCtrl->Delete(dummyItem);
cd->SetInitialized(true);
int nNumOfRealChildren = 0;
SFTPAttribute::List_t::iterator iter = attributes.begin();
for(; iter != attributes.end(); ++iter) {
SFTPAttribute::Ptr_t attr = (*iter);
if(attr->GetName() == "." || attr->GetName() == "..") continue;
++nNumOfRealChildren;
// determine the icon index
int imgIdx = wxNOT_FOUND;
if(attr->IsFolder()) {
imgIdx = m_bmpLoader->GetMimeImageId(FileExtManager::TypeFolder);
} else {
imgIdx = m_bmpLoader->GetMimeImageId(attr->GetName());
}
if(imgIdx == wxNOT_FOUND) { imgIdx = m_bmpLoader->GetMimeImageId(FileExtManager::TypeText); }
wxString path;
path << cd->GetFullPath() << "/" << attr->GetName();
while(path.Replace("//", "/")) {}
MyClientData* childClientData = new MyClientData(path);
childClientData->SetIsFolder(attr->IsFolder());
wxTreeItemId child = m_treeCtrl->AppendItem(item, attr->GetName(), imgIdx, imgIdx, childClientData);
// if its type folder, add a fake child item
if(attr->IsFolder()) { m_treeCtrl->AppendItem(child, "<dummy>"); }
}
return nNumOfRealChildren > 0;
}
示例4: OnMenuNewFile
void SFTPTreeView::OnMenuNewFile(wxCommandEvent& event)
{
wxTreeListItems items;
m_treeListCtrl->GetSelections(items);
if(items.size() != 1) return;
MyClientData* cd = GetItemData(items.at(0));
CHECK_PTR_RET(cd);
if(!cd->IsFolder()) {
return;
}
wxString defaultValue;
static size_t s_untitledCounter = 0;
defaultValue << "Untitled" << ++s_untitledCounter;
wxString new_name = ::wxGetTextFromUser(_("Enter the new file name:"), _("New File"), defaultValue);
if(!new_name.IsEmpty()) {
wxString fullpath = cd->GetFullPath();
fullpath << "/" << new_name;
wxTreeListItem fileItem = DoAddFile(items.at(0), fullpath);
if(fileItem.IsOk()) {
DoOpenFile(fileItem);
}
}
}
示例5: OnFileDropped
void SFTPTreeView::OnFileDropped(clCommandEvent& event)
{
wxArrayTreeItemIds items;
m_treeCtrl->GetSelections(items);
wxTreeItemId parenItem;
wxString defaultPath = m_textCtrlQuickJump->GetValue();
if(items.size() == 1) {
// Use the selected folder as the default path
MyClientData* cd = GetItemData(items.Item(0));
if(cd && cd->IsFolder()) {
defaultPath = cd->GetFullPath();
parenItem = items.Item(0);
}
}
SFTPUploadDialog dlg(EventNotifier::Get()->TopFrame());
dlg.GetTextCtrlRemoteFolder()->ChangeValue(defaultPath);
if(dlg.ShowModal() != wxID_OK) return;
const wxString targetFolder = dlg.GetTextCtrlRemoteFolder()->GetValue();
const wxArrayString& files = event.GetStrings();
for(size_t i = 0; i < files.size(); ++i) {
wxFileName localFile(files.Item(i));
wxString remotePath;
remotePath << targetFolder << "/" << localFile.GetFullName();
if(parenItem.IsOk()) {
wxTreeItemId fileItem = DoAddFile(parenItem, remotePath);
if(!fileItem.IsOk()) continue;
}
SFTPWorkerThread::Instance()->Add(new SFTPThreadRequet(m_account, remotePath, localFile.GetFullPath(), 0));
}
}
示例6: OnSelectionChanged
void SFTPTreeView::OnSelectionChanged(wxTreeEvent& event)
{
MyClientDataVect_t items = GetSelectionsItemData();
if(items.size() != 1) return;
MyClientData* cd = items.at(0);
if(cd->IsFolder()) { m_textCtrlQuickJump->ChangeValue(cd->GetFullPath()); }
}
示例7: DoOpenFile
bool SFTPTreeView::DoOpenFile(const wxTreeItemId& item)
{
MyClientData* cd = GetItemData(item);
if(!cd || cd->IsFolder()) { return false; }
RemoteFileInfo remoteFile;
remoteFile.SetAccount(m_account);
remoteFile.SetRemoteFile(cd->GetFullPath());
SFTPThreadRequet* req = new SFTPThreadRequet(remoteFile);
SFTPWorkerThread::Instance()->Add(req);
m_plugin->AddRemoteFile(remoteFile);
return true;
}
示例8: OnItemActivated
void SFTPTreeView::OnItemActivated(wxTreeEvent& event)
{
event.Skip();
MyClientData* cd = GetItemData(event.GetItem());
CHECK_PTR_RET(cd);
if(cd->IsFolder()) {
wxTreeItemId item = event.GetItem();
if(m_treeCtrl->IsExpanded(item)) {
m_treeCtrl->CallAfter(&wxTreeCtrl::Collapse, item);
} else {
m_treeCtrl->CallAfter(&wxTreeCtrl::Expand, item);
}
} else {
DoOpenFile(cd->GetFullPath());
}
}
示例9: OnMenuOpenContainingFolder
void SFTPTreeView::OnMenuOpenContainingFolder(wxCommandEvent& event)
{
wxArrayTreeItemIds items;
m_treeCtrl->GetSelections(items);
if(items.empty()) return;
for(size_t i = 0; i < items.size(); ++i) {
MyClientData* cd = GetItemData(items.Item(i));
if(!cd || cd->IsFolder()) { continue; }
RemoteFileInfo remoteFile;
remoteFile.SetAccount(m_account);
remoteFile.SetRemoteFile(cd->GetFullPath());
SFTPThreadRequet* req = new SFTPThreadRequet(remoteFile);
req->SetAction(eSFTPActions::kDownloadAndOpenContainingFolder);
SFTPWorkerThread::Instance()->Add(req);
}
}
示例10: OnMenuNew
void SFTPTreeView::OnMenuNew(wxCommandEvent& event)
{
wxArrayTreeItemIds items;
m_treeCtrl->GetSelections(items);
if(items.size() != 1) return;
MyClientData* cd = GetItemData(items.Item(0));
CHECK_PTR_RET(cd);
if(!cd->IsFolder()) { return; }
wxString new_name = ::wxGetTextFromUser(_("Enter the new directory name:"), _("New Directory"));
if(!new_name.IsEmpty()) {
wxString fullpath = cd->GetFullPath();
fullpath << "/" << new_name;
DoAddFolder(items.Item(0), fullpath);
}
}
示例11: OnItemActivated
void SFTPTreeView::OnItemActivated(wxTreeListEvent& event)
{
event.Skip();
MyClientData* cd = GetItemData(event.GetItem());
CHECK_PTR_RET(cd);
if(cd->IsFolder()) {
m_treeListCtrl->Expand(event.GetItem());
} else {
RemoteFileInfo remoteFile;
remoteFile.SetAccount(m_account);
remoteFile.SetRemoteFile(cd->GetFullPath());
SFTPThreadRequet* req = new SFTPThreadRequet(remoteFile);
SFTPWorkerThread::Instance()->Add(req);
m_plugin->AddRemoteFile(remoteFile);
}
}
示例12: OnMenuOpenWithDefaultApplication
void SFTPTreeView::OnMenuOpenWithDefaultApplication(wxCommandEvent& event)
{
wxTreeListItems items;
m_treeListCtrl->GetSelections(items);
if(items.empty()) return;
for(size_t i = 0; i < items.size(); ++i) {
MyClientData* cd = GetItemData(items.at(i));
if(!cd || cd->IsFolder()) {
continue;
}
RemoteFileInfo remoteFile;
remoteFile.SetAccount(m_account);
remoteFile.SetRemoteFile(cd->GetFullPath());
SFTPThreadRequet* req = new SFTPThreadRequet(remoteFile);
req->SetDirection(SFTPThreadRequet::kDownloadAndOpenWithDefaultApp);
SFTPWorkerThread::Instance()->Add(req);
}
}