Subversion Repositories spk

Rev

Rev 161 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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