Subversion Repositories spk

Rev

Rev 162 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 cycrow 1
#include "../StdAfx.h"
2
#include "DownloadPackageList.h"
3
 
75 cycrow 4
namespace PluginManager {
5
 
205 cycrow 6
DownloadPackageList::DownloadPackageList(CPackages *p, Utils::WStringList *servers)
75 cycrow 7
{
8
	InitializeComponent();
9
 
10
	m_pPackages = p;
11
	m_pServers = servers;
162 cycrow 12
	_pCurrentServer = NULL;
13
	m_iServerPos = -1;
75 cycrow 14
}
15
 
16
void DownloadPackageList::NextServer()
17
{
162 cycrow 18
	if(m_iServerPos == -1)
75 cycrow 19
	{
162 cycrow 20
		m_iServerPos = 0;
21
		_pCurrentServer = &m_pServers->get(m_iServerPos)->str;
75 cycrow 22
	}
23
	else
24
	{
25
		++m_iServerPos;
162 cycrow 26
		if (static_cast<size_t>(m_iServerPos) >= m_pServers->size())
27
		{
28
			m_iServerPos = -1;
29
			_pCurrentServer = NULL;
30
		}
31
		else
32
			_pCurrentServer = &m_pServers->get(m_iServerPos)->str;
75 cycrow 33
	}
34
 
35
	// last server done
162 cycrow 36
	if (!_pCurrentServer)
75 cycrow 37
	{
38
		Finished();
39
		return;
40
	}
41
 
162 cycrow 42
	this->label2->Text = Convert::ToString(m_iServerPos) + " / " + Convert::ToString(m_pServers->size());
43
	this->label3->Text = _US(*_pCurrentServer);
75 cycrow 44
 
45
	this->backgroundWorker1->RunWorkerAsync();
46
}
47
 
48
void DownloadPackageList::Finished()
49
{
50
	Close();
51
}
52
 
53
void DownloadPackageList::ExtractWebData(String ^data)
54
{
55
	cli::array<String ^> ^lines = data->Split('\n');
56
	if ( lines )
57
	{
58
		 for ( int i = 0; i < lines->Length; i++ )
205 cycrow 59
			 m_pPackages->parseAvailablePackage(_WS(lines[i]).remove(9).remove('\r'), *_pCurrentServer);
75 cycrow 60
	}
61
}
62
 
63
 
64
}