示例#1
0
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));
}
示例#3
0
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();
    }
}
示例#4
0
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();
}