void QuenchFrame::OnLoadStandardVolumes(wxCommandEvent &event) { wxDirDialog ddlg(this,wxDirSelectorPromptStr,_lastDirDlgPath); if(ddlg.ShowModal() == wxID_OK) _qCtrlr->LoadDefaultVolumes(ddlg.GetPath().c_str()); }
void InternetRetrievalDialog::OnRetrieve( wxCommandEvent& event ) { int count = 0; for(int i=0; i < m_lUrls->GetItemCount(); i++) { FaxUrl *faxurl = reinterpret_cast<FaxUrl*> (wxUIntToPtr(m_lUrls->GetItemData(i))); if(event.GetEventObject() == m_bRetrieveScheduled) { if(!faxurl->Scheduled) continue; } else if(m_lUrls->GetNextItem(i - 1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED) != i) continue; count++; wxString path = weatherfax_pi::StandardPath(); wxString filename = faxurl->Url; filename.Replace(_T("/"), _T("!")); filename.Replace(_T(":"), _T("!")); filename = path + wxFileName::GetPathSeparator() + filename; wxFileName fn(filename); if(fn.FileExists() && (wxDateTime::Now() - fn.GetModificationTime()).GetMinutes() < 180) { wxMessageDialog mdlg(this, _("Fax already retrieved less than 180 minutes ago.\n\ Use existing file?"), _("Weather Fax"), wxYES | wxNO | wxCANCEL); switch(mdlg.ShowModal()) { case wxID_YES: goto loadimage; case wxID_NO: break; default: return; } } { #if 0 wxProgressDialog progressdialog(_("WeatherFax InternetRetrieval"), _("Reading Headers: ") + faxurl->Contents, 1000, this, wxPD_CAN_ABORT | wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME); progressdialog.Update(0); DownloadThread *dl = new DownloadThread(faxurl->Url, filename); dl->Run(); while(dl->IsRunning()) { bool ok; if(dl->size) ok = progressdialog.Update(1000*dl->position / dl->size, _("Reading") + wxString(_T(": ")) + faxurl->Contents); else ok = progressdialog.Update(0); if(!ok) { dl->please_quit = true; return; } wxThread::Sleep(250); } dl->please_quit = true; switch(dl->exitcode) { case 1: case 2: { wxMessageDialog mdlg(this, _("Timed out waiting for headers for: ") + faxurl->Contents + _T("\n") + faxurl->Url + _T("\n") + _("Verify there is a working internet connection.") + _T("\n") + _("Possibly the server is down temporarily.") + _T("\n") + _("If the url is incorrect please edit the xml and/or post a bug report."), _("Weather Fax"), wxOK | wxICON_ERROR); mdlg.ShowModal(); } return; case 3: { wxMessageDialog mdlg(this, _("Failed to read file size aborting."), _("Weather Fax"), wxOK | wxICON_INFORMATION); mdlg.ShowModal(); } return; } #else wxFileOutputStream output(filename); wxCurlDownloadDialog ddlg(faxurl->Url, &output, _("WeatherFax InternetRetrieval"), _("Reading Headers: ") + faxurl->Contents, wxNullBitmap, this, wxCTDS_CAN_PAUSE|wxCTDS_CAN_ABORT|wxCTDS_SHOW_ALL|wxCTDS_AUTO_CLOSE); switch(ddlg.RunModal()) { case wxCDRF_SUCCESS: break; case wxCDRF_FAILED: { wxMessageDialog mdlg(this, _("Failed to Download: ") + faxurl->Contents + _T("\n") + faxurl->Url + _T("\n") + _("Verify there is a working internet connection.") + _T("\n") + _("If the url is incorrect please edit the xml and/or post a bug report."), _("Weather Fax"), wxOK | wxICON_ERROR); mdlg.ShowModal(); wxRemoveFile( filename ); } case wxCDRF_USER_ABORTED: return; } #endif } loadimage: m_weatherfax_pi.m_pWeatherFax->OpenImage (filename, faxurl->Server + _T(" - ") + faxurl->Region, faxurl->area_name, faxurl->Contents); }