SFTPTreeView::SFTPTreeView(wxWindow* parent, SFTP* plugin) : SFTPTreeViewBase(parent) , m_plugin(plugin) { wxImageList* il = m_bmpLoader.MakeStandardMimeImageList(); m_treeListCtrl->AssignImageList(il); SFTPSettings settings; settings.Load(); const SSHAccountInfo::Vect_t& accounts = settings.GetAccounts(); SSHAccountInfo::Vect_t::const_iterator iter = accounts.begin(); for(; iter != accounts.end(); ++iter) { m_choiceAccount->Append(iter->GetAccountName()); } if(!m_choiceAccount->IsEmpty()) { m_choiceAccount->SetSelection(0); } #ifdef __WXMSW__ m_treeListCtrl->GetDataView()->SetIndent(16); #endif m_treeListCtrl->SetItemComparator(new SFTPItemComparator); m_treeListCtrl->Connect( ID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuOpen), NULL, this); m_treeListCtrl->Connect( ID_DELETE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuDelete), NULL, this); m_treeListCtrl->Connect( ID_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuNew), NULL, this); m_treeListCtrl->Connect( ID_RENAME, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuRename), NULL, this); m_treeListCtrl->Connect( ID_NEW_FILE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuNewFile), NULL, this); m_treeListCtrl->Connect(ID_REFRESH_FOLDER, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuRefreshFolder), NULL, this); m_treeListCtrl->Bind(wxEVT_MENU, &SFTPTreeView::OnShowTypeCol, this, ID_SHOW_TYPE_COL); m_treeListCtrl->Bind(wxEVT_MENU, &SFTPTreeView::OnShowSizeCol, this, ID_SHOW_SIZE_COL); wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnCopy, this, wxID_COPY); wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnCut, this, wxID_CUT); wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnPaste, this, wxID_PASTE); wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnSelectAll, this, wxID_SELECTALL); wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnUndo, this, wxID_UNDO); wxTheApp->GetTopWindow()->Bind(wxEVT_COMMAND_MENU_SELECTED, &SFTPTreeView::OnRedo, this, wxID_REDO); bool sizeColVisible = clConfig::Get().Read("SFTP/TreeView/ShowSizeCol", true); bool typeColVisible = clConfig::Get().Read("SFTP/TreeView/ShowTypeCol", true); if(!sizeColVisible) { m_treeListCtrl->DeleteColumn(GetSizeColumnIndex()); } if(!typeColVisible) { m_treeListCtrl->DeleteColumn(GetTypeColumnIndex()); } }
SFTPTreeView::SFTPTreeView(wxWindow* parent, SFTP* plugin) : SFTPTreeViewBase(parent) , m_plugin(plugin) { wxImageList* il = m_bmpLoader.MakeStandardMimeImageList(); m_treeListCtrl->AssignImageList( il ); SFTPSettings settings; settings.Load(); const SSHAccountInfo::Vect_t& accounts = settings.GetAccounts(); SSHAccountInfo::Vect_t::const_iterator iter = accounts.begin(); for(; iter != accounts.end(); ++iter ) { m_choiceAccount->Append( iter->GetAccountName() ); } if ( !m_choiceAccount->IsEmpty() ) { m_choiceAccount->SetSelection(0); } #ifdef __WXMSW__ m_treeListCtrl->GetDataView()->SetIndent( 16 ); #endif m_treeListCtrl->SetItemComparator( new SFTPItemComparator ); m_treeListCtrl->Connect(ID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuOpen), NULL, this); m_treeListCtrl->Connect(ID_DELETE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuDelete), NULL, this); m_treeListCtrl->Connect(ID_NEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuNew), NULL, this); m_treeListCtrl->Connect(ID_RENAME, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(SFTPTreeView::OnMenuRename), NULL, this); }
SFTPTreeView::SFTPTreeView(wxWindow* parent, SFTP* plugin) : SFTPTreeViewBase(parent) , m_plugin(plugin) { wxImageList* il = m_bmpLoader.MakeStandardMimeImageList(); m_treeListCtrl->AssignImageList(il); SFTPSettings settings; settings.Load(); const SSHAccountInfo::Vect_t& accounts = settings.GetAccounts(); SSHAccountInfo::Vect_t::const_iterator iter = accounts.begin(); for(; iter != accounts.end(); ++iter) { m_choiceAccount->Append(iter->GetAccountName()); } if(!m_choiceAccount->IsEmpty()) { m_choiceAccount->SetSelection(0); } #ifdef __WXMSW__ m_treeListCtrl->GetDataView()->SetIndent(16); #endif m_treeListCtrl->SetItemComparator(new SFTPItemComparator); m_treeListCtrl->Connect(ID_OPEN, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuOpen), NULL, this); m_treeListCtrl->Connect(ID_OPEN_WITH_DEFAULT_APP, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuOpenWithDefaultApplication), NULL, this); m_treeListCtrl->Connect(ID_OPEN_CONTAINING_FOLDER, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuOpenContainingFolder), NULL, this); m_treeListCtrl->Connect(ID_DELETE, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuDelete), NULL, this); m_treeListCtrl->Connect(ID_NEW, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuNew), NULL, this); m_treeListCtrl->Connect(ID_RENAME, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuRename), NULL, this); m_treeListCtrl->Connect(ID_NEW_FILE, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuNewFile), NULL, this); m_treeListCtrl->Connect( ID_REFRESH_FOLDER, wxEVT_MENU, wxCommandEventHandler(SFTPTreeView::OnMenuRefreshFolder), NULL, this); wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnCopy, this, wxID_COPY); wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnCut, this, wxID_CUT); wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnPaste, this, wxID_PASTE); wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnSelectAll, this, wxID_SELECTALL); wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnUndo, this, wxID_UNDO); wxTheApp->GetTopWindow()->Bind(wxEVT_MENU, &SFTPTreeView::OnRedo, this, wxID_REDO); m_treeListCtrl->SetDropTarget(new clFileOrFolderDropTarget(this)); Bind(wxEVT_DND_FILE_DROPPED, &SFTPTreeView::OnFileDropped, this); }
void SFTPTreeView::OnOpenAccountManager(wxCommandEvent& event) { SSHAccountManagerDlg dlg(this); if(dlg.ShowModal() == wxID_OK) { SFTPSettings settings; settings.Load(); settings.SetAccounts(dlg.GetAccounts()); settings.Save(); // Update the selections at the top wxString curselection = m_choiceAccount->GetStringSelection(); m_choiceAccount->Clear(); const SSHAccountInfo::Vect_t& accounts = settings.GetAccounts(); if(accounts.empty()) { DoCloseSession(); return; } else { SSHAccountInfo::Vect_t::const_iterator iter = accounts.begin(); for(; iter != accounts.end(); ++iter) { m_choiceAccount->Append(iter->GetAccountName()); } int where = m_choiceAccount->FindString(curselection); if(where == wxNOT_FOUND) { // Our previous session is no longer available, close the session DoCloseSession(); where = 0; } m_choiceAccount->SetSelection(where); } } }