Subversion Repositories spk

Rev

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

Rev Author Line No. Line
1 cycrow 1
#include "../StdAfx.h"
2
#include "FakePatchControl.h"
3
 
4
namespace PluginManager {
5
	void FakePatchControl::UpdateList()
6
	{
7
		this->listView1->Items->Clear();
8
 
9
		m_pPackages->AssignPackageNumbers();
10
		for ( CBaseFile *p = m_pPackages->FirstPackage(); p; p = m_pPackages->NextPackage() )
11
		{
12
			if ( !p->IsEnabled() ) continue;
13
			if ( !p->AnyFileType(FILETYPE_MOD) ) continue;
14
 
203 cycrow 15
			Utils::WString packageName = p->getFullPackageName(m_pPackages->GetLanguage());
1 cycrow 16
 
17
			for ( C_File *f = p->GetFirstFile(FILETYPE_MOD); f; f = p->GetNextFile(f) )
18
			{
178 cycrow 19
				if (!f->IsFakePatch()) continue;
203 cycrow 20
				if (!f->checkFileExt(L"cat")) continue;
1 cycrow 21
 
170 cycrow 22
				ListViewItem ^item = gcnew ListViewItem(_US(packageName));
1 cycrow 23
				item->ImageIndex = 1;
24
				this->listView1->Items->Add(item);
25
				item->Tag = p->GetNum();
26
 
27
				break;
28
			}
29
		}
30
 
31
		this->listView1->AutoResizeColumns(ColumnHeaderAutoResizeStyle::HeaderSize);
32
	}
33
 
34
	void FakePatchControl::ApplyOrder()
35
	{
197 cycrow 36
		auto& list = m_pPackages->getFakePatchOrder();
160 cycrow 37
		for(auto itr = list.begin(); itr != list.end(); itr++)
1 cycrow 38
		{
182 cycrow 39
			CBaseFile *p = m_pPackages->findPackage((*itr)->str, (*itr)->data);
1 cycrow 40
			if ( p )
41
			{
42
				// find item and move it
43
				for ( int i = 0; i < this->listView1->Items->Count; i++ )
44
				{
45
					if ( Convert::ToInt32(this->listView1->Items[i]->Tag) == p->GetNum() )
46
					{
47
						Order(this->listView1->Items[i]);
48
						break;
49
					}
50
				}
51
			}
52
		}
53
	}
54
 
55
	void FakePatchControl::Save()
56
	{
160 cycrow 57
		m_lFakePatches->clear();
1 cycrow 58
		for ( int i = 0; i < this->listView2->Items->Count; i++ )
59
		{
60
			int pos = Convert::ToInt32(this->listView2->Items[i]->Tag);
61
			CBaseFile *p = m_pPackages->GetPackageAt(pos);
62
			if ( p )
160 cycrow 63
				m_lFakePatches->pushBack(p->name(), p->author());
1 cycrow 64
		}
65
	}
66
};