void CUpdateWizard::OnTimer(wxTimerEvent& event) { if (event.GetId() == m_statusTimer.GetId()) { bool changed; CTransferStatus status; if (!m_pEngine) m_statusTimer.Stop(); else if (!m_pEngine->GetTransferStatus(status, changed)) SetTransferStatus(0); else if (changed) SetTransferStatus(&status); else m_statusTimer.Stop(); } else if (event.GetId() == m_autoCheckTimer.GetId()) { if (m_autoUpdateCheckRunning) return; if (CanAutoCheckForUpdateNow()) { m_autoUpdateCheckRunning = true; const wxDateTime& now = wxDateTime::Now(); COptions::Get()->SetOption(OPTION_UPDATECHECK_LASTDATE, now.Format(_T("%Y-%m-%d %H:%M:%S"))); StartUpdateCheck(); } } else if (event.GetId() == m_busy_timer.GetId()) DisplayUpdateAvailability(true); }
void CUpdateWizard::OnPageChanging(wxWizardEvent& event) { if (m_skipPageChanging) return; m_skipPageChanging = true; if (event.GetPage() == m_pages[0]) { event.Veto(); PrepareUpdateCheckPage(); StartUpdateCheck(); } if (event.GetPage() == m_pages[1] && m_pages[1]->GetNext()) { if (!SetLocalFile()) { event.Veto(); m_skipPageChanging = false; return; } } m_skipPageChanging = false; }
void CUpdateWizard::OnPageChanged(wxWizardEvent& event) { if (event.GetPage() == m_pages[0]) { if (m_start_check) { m_start_check = false; StartUpdateCheck(); } return; } if (event.GetPage() != m_pages[2]) return; wxButton* pNext = wxDynamicCast(FindWindow(wxID_FORWARD), wxButton); pNext->Disable(); m_currentPage = 2; wxStaticText *pText = XRCCTRL(*this, "ID_DOWNLOADTEXT", wxStaticText); wxString text = wxString::Format(_("Downloading %s"), (CServer::GetPrefixFromProtocol(m_urlProtocol) + _T("://") + m_urlServer + m_urlFile).c_str()); text.Replace(_T("&"), _T("&&")); pText->SetLabel(text); m_inTransfer = false; if (m_update_options) m_update_options->m_use_internal_rootcert = false; int res = m_pEngine->Command(CConnectCommand(CServer(m_urlProtocol, DEFAULT, m_urlServer, (m_urlProtocol == HTTPS) ? 443 : 80))); if (res == FZ_REPLY_OK) { XRCCTRL(*this, "ID_DOWNLOADPROGRESSTEXT", wxStaticText)->SetLabel(_("Connecting to server")); res = SendTransferCommand(); XRCCTRL(*this, "ID_DOWNLOADPROGRESS", wxGauge)->SetRange(100); } if (res == FZ_REPLY_OK) ShowPage(m_pages[1]); else if (res != FZ_REPLY_WOULDBLOCK) FailedTransfer(); else { RewrapPage(2); } }
void CUpdateWizard::InitAutoUpdateCheck() { COptions* pOptions = COptions::Get(); wxASSERT(pOptions->GetOptionVal(OPTION_UPDATECHECK)); if (CBuildInfo::GetVersion() == _T("custom build")) return; // Check every hour if allowed to check for updates m_autoCheckTimer.Start(1000 * 3600); if (!CanAutoCheckForUpdateNow()) { DisplayUpdateAvailability(false); return; } else { m_autoUpdateCheckRunning = true; const wxDateTime& now = wxDateTime::Now(); pOptions->SetOption(OPTION_UPDATECHECK_LASTDATE, now.Format(_T("%Y-%m-%d %H:%M:%S"))); StartUpdateCheck(); } }
Update::Update() : m_status(NoUpdateAvailable), m_thread(0) { StartUpdateCheck(); }