本文整理汇总了C++中SFTPSettings::SetAccounts方法的典型用法代码示例。如果您正苦于以下问题:C++ SFTPSettings::SetAccounts方法的具体用法?C++ SFTPSettings::SetAccounts怎么用?C++ SFTPSettings::SetAccounts使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SFTPSettings
的用法示例。
在下文中一共展示了SFTPSettings::SetAccounts方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnAccountManager
void SFTP::OnAccountManager(wxCommandEvent& e)
{
wxUnusedVar(e);
SSHAccountManagerDlg dlg(wxTheApp->GetTopWindow());
if(dlg.ShowModal() == wxID_OK) {
SFTPSettings settings;
settings.Load();
settings.SetAccounts(dlg.GetAccounts());
settings.Save();
}
}
示例2: OnOpenAccountManager
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);
}
}
}
示例3: DoOpenSession
void SFTPTreeView::DoOpenSession()
{
DoCloseSession();
if(!GetAccountFromUser(m_account)) { return; }
wxString message;
wxProgressDialog dlg(_("SFTP"), wxString(' ', 100) + "\n\n", 10);
dlg.Show();
dlg.Update(1, wxString() << _("Connecting to: ") << m_account.GetAccountName() << "..."
<< _("\n(this may take a few seconds)"));
// We know that there is a bug that libssh succeeded on connecting only on the second attempt..
// to workaround it, we issue first connect with 1 second timeout, and then re-open the connection
try {
clSSH::Ptr_t ssh(
new clSSH(m_account.GetHost(), m_account.GetUsername(), m_account.GetPassword(), m_account.GetPort()));
ssh->Connect(wxNOT_FOUND);
} catch(...) {
}
try {
clSSH::Ptr_t ssh(
new clSSH(m_account.GetHost(), m_account.GetUsername(), m_account.GetPassword(), m_account.GetPort()));
ssh->Connect(5);
dlg.Update(5, _("Connected!"));
dlg.Update(6, _("Authenticating server..."));
if(!ssh->AuthenticateServer(message)) {
if(::wxMessageBox(message, "SSH", wxYES_NO | wxCENTER | wxICON_QUESTION) == wxYES) {
dlg.Update(7, _("Accepting server authentication server..."));
ssh->AcceptServerAuthentication();
}
} else {
dlg.Update(7, _("Server authenticated"));
}
dlg.Update(8, _("Logging in.."));
ssh->Login();
m_sftp.reset(new clSFTP(ssh));
m_sftp->Initialize();
m_sftp->SetAccount(m_account.GetAccountName());
m_plugin->GetManager()->SetStatusMessage(wxString() << _("Done!"));
dlg.Update(9, _("Fetching directory list..."));
DoBuildTree(m_account.GetDefaultFolder().IsEmpty() ? "/" : m_account.GetDefaultFolder());
dlg.Update(10, _("Done"));
CallAfter(&SFTPTreeView::DoLoadSession);
// If this is a new account, offer the user to save it
SFTPSettings s;
s.Load();
SSHAccountInfo dummy;
if(!s.GetAccount(m_account.GetAccountName(), dummy)) {
wxString message;
message << _("Would you like to save this account?\n") << _("It will be saved as '")
<< m_account.GetAccountName() << "'";
wxStandardID res = ::PromptForYesNoCancelDialogWithCheckbox(message, "SFTPQuickConnectSaveDlg");
if(res == wxID_YES) {
// This 'Connect' was via Quick Connect option
SSHAccountInfo::Vect_t accounts = s.GetAccounts();
accounts.push_back(m_account);
s.SetAccounts(accounts);
s.Save();
}
}
} catch(clException& e) {
::wxMessageBox(e.What(), "CodeLite", wxICON_ERROR | wxOK);
DoCloseSession();
}
}