void BattleRoomDownloads::OnUpdate() { if (!m_battle) { m_mod->Hide(); m_map->Hide(); return; } DownloadsObserver& observ = downloadsObserver(); const wxString game = TowxString(m_battle->GetHostGameName()); ObserverDownloadInfo obi ; if (observ.GetActiveDownloadInfo(game, obi)) { m_mod->Show(); m_mod->UpdateDownload(obi); } else { m_mod->Hide(); } const wxString map = TowxString(m_battle->GetHostMapName()); if (observ.GetActiveDownloadInfo(map, obi)) { m_map->Show(); m_map->UpdateDownload(obi); } else { m_map->Hide(); } }
void DownloadListCtrl::UpdateTorrentsList() { DownloadsObserver& observ=downloadsObserver(); std::list<ObserverDownloadInfo> list; observ.GetList(list); std::list<ObserverDownloadInfo>::iterator it; for(it=list.begin();it!=list.end();++it) UpdateTorrentInfo((*it)); }
void BattleRoomDownloads::OnUpdate() { if(!m_battle) { m_mod->Hide(); m_map->Hide(); return; } DownloadsObserver& observ=downloadsObserver(); std::map<wxString,ObserverDownloadInfo> dlmap; observ.GetMap(dlmap); try { wxString game=m_battle->GetHostModName(); ObserverDownloadInfo obi=dlmap.at(game); m_mod->Show(); m_mod->UpdateDownload(obi); } catch(...) { m_mod->Hide(); } try { wxString map=m_battle->GetHostMapName(); ObserverDownloadInfo obi=dlmap.at(map); m_map->Show(); m_map->UpdateDownload(obi); } catch(...) { m_map->Hide(); } }
void TaskBar::UpdateDisplay() { bool finished = true; // get status of all downloads unfinishedTasks = 0; overalSize = 0; overalProgress = 0; DownloadsObserver& observ = downloadsObserver(); std::list<ObserverDownloadInfo> activedownloads; observ.GetActiveDownloads(activedownloads); for (ObserverDownloadInfo info: activedownloads) { if (!info.finished) { finished = false; unfinishedTasks++; downloadName = info.name; } overalSize += info.size; overalProgress += info.progress; } // do state transition & actions switch (state) { case STATE_FINISHED: if (finished) { // wait 5sec and hide widget if (finishedCounter < 50) { finishedCounter++; } else { state = STATE_HIDDEN; Hide(); finishedCounter = 0; } } else { // change to STATE_WORKING state = STATE_WORKING; SetBackgroundColour(wxColour(255, 244, 168)); Show(); gauge->Show(); UpdateProgress(); } break; case STATE_WORKING: if (finished) { state = STATE_FINISHED; text->SetLabel(_("Download finished")); gauge->Hide(); SetBackgroundColour(wxColour(0, 208, 10)); } else { UpdateProgress(); } break; case STATE_HIDDEN: if (finished) { // nop } else { // change to STATE_WORKING state = STATE_WORKING; SetBackgroundColour(wxColour(255, 244, 168)); Show(); gauge->Show(); UpdateProgress(); } break; } Layout(); Refresh(); }