Rev 162 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "../StdAfx.h"
#include "DownloadPackageList.h"
namespace PluginManager {
DownloadPackageList::DownloadPackageList(CPackages *p, Utils::WStringList *servers)
{
InitializeComponent();
m_pPackages = p;
m_pServers = servers;
_pCurrentServer = NULL;
m_iServerPos = -1;
}
void DownloadPackageList::NextServer()
{
if(m_iServerPos == -1)
{
m_iServerPos = 0;
_pCurrentServer = &m_pServers->get(m_iServerPos)->str;
}
else
{
++m_iServerPos;
if (static_cast<size_t>(m_iServerPos) >= m_pServers->size())
{
m_iServerPos = -1;
_pCurrentServer = NULL;
}
else
_pCurrentServer = &m_pServers->get(m_iServerPos)->str;
}
// last server done
if (!_pCurrentServer)
{
Finished();
return;
}
this->label2->Text = Convert::ToString(m_iServerPos) + " / " + Convert::ToString(m_pServers->size());
this->label3->Text = _US(*_pCurrentServer);
this->backgroundWorker1->RunWorkerAsync();
}
void DownloadPackageList::Finished()
{
Close();
}
void DownloadPackageList::ExtractWebData(String ^data)
{
cli::array<String ^> ^lines = data->Split('\n');
if ( lines )
{
for ( int i = 0; i < lines->Length; i++ )
m_pPackages->parseAvailablePackage(_WS(lines[i]).remove(9).remove('\r'), *_pCurrentServer);
}
}
}