#include "FileZilla.h"
#include "Options.h"
#include "settingsdialog.h"
#include "optionspage.h"
#include "optionspage_connection.h"
#include "netconfwizard.h"
BEGIN_EVENT_TABLE(COptionsPageConnection, COptionsPage)
EVT_BUTTON(XRCID("ID_RUNWIZARD"), COptionsPageConnection::OnWizard)
END_EVENT_TABLE()
bool COptionsPageConnection::LoadPage()
{
bool failure = false;
SetRCheck(XRCID("ID_PASSIVE"), m_pOptions->GetOptionVal(OPTION_USEPASV) != 0, failure);
SetRCheck(XRCID("ID_ACTIVE"), m_pOptions->GetOptionVal(OPTION_USEPASV) == 0, failure);
SetCheck(XRCID("ID_FALLBACK"), m_pOptions->GetOptionVal(OPTION_ALLOW_TRANSFERMODEFALLBACK) != 0, failure);
SetTextFromOption(XRCID("ID_RETRIES"), OPTION_RECONNECTCOUNT, failure);
SetTextFromOption(XRCID("ID_RETRYDELAY"), OPTION_RECONNECTDELAY, failure);
return !failure;
}
bool COptionsPageConnection::SavePage()
{
m_pOptions->SetOption(OPTION_USEPASV, GetRCheck(XRCID("ID_PASSIVE")) ? 1 : 0);
m_pOptions->SetOption(OPTION_ALLOW_TRANSFERMODEFALLBACK, GetCheck(XRCID("ID_FALLBACK")) ? 1 : 0);
long tmp;
GetText(XRCID("ID_RETRIES")).ToLong(&tmp); m_pOptions->SetOption(OPTION_RECONNECTCOUNT, tmp);
GetText(XRCID("ID_RETRYDELAY")).ToLong(&tmp); m_pOptions->SetOption(OPTION_RECONNECTDELAY, tmp);
return true;
}
bool COptionsPageConnection::Validate()
{
wxTextCtrl* pRetries = XRCCTRL(*this, "ID_RETRIES", wxTextCtrl);
wxASSERT(pRetries);
long retries;
if (!pRetries->GetValue().ToLong(&retries) || retries < 0 || retries > 99)
{
pRetries->SetFocus();
wxMessageBox(_("Number of retries has to be between 0 and 99."), validationFailed, wxICON_EXCLAMATION, this);
return false;
}
wxTextCtrl* pDelay = XRCCTRL(*this, "ID_RETRYDELAY", wxTextCtrl);
wxASSERT(pDelay);
long delay;
if (!pDelay->GetValue().ToLong(&delay) || delay < 0 || delay > 999)
{
pDelay->SetFocus();
wxMessageBox(_("Delay between failed connection attempts has to be between 1 and 999 seconds."), validationFailed, wxICON_EXCLAMATION, this);
return false;
}
return true;
}
void COptionsPageConnection::OnWizard(wxCommandEvent& event)
{
CNetConfWizard wizard(GetParent(), m_pOptions);
if (!wizard.Load())
return;
if (wizard.Run())
ReloadSettings();
}
syntax highlighted by Code2HTML, v. 0.9.1