Rev 197 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "../StdAfx.h"
#include "FakePatchControl.h"
namespace PluginManager {
void FakePatchControl::UpdateList()
{
this->listView1->Items->Clear();
m_pPackages->AssignPackageNumbers();
for ( CBaseFile *p = m_pPackages->FirstPackage(); p; p = m_pPackages->NextPackage() )
{
if ( !p->IsEnabled() ) continue;
if ( !p->AnyFileType(FILETYPE_MOD) ) continue;
Utils::WString packageName = p->getFullPackageName(m_pPackages->GetLanguage());
for ( C_File *f = p->GetFirstFile(FILETYPE_MOD); f; f = p->GetNextFile(f) )
{
if (!f->IsFakePatch()) continue;
if (!f->checkFileExt(L"cat")) continue;
ListViewItem ^item = gcnew ListViewItem(_US(packageName));
item->ImageIndex = 1;
this->listView1->Items->Add(item);
item->Tag = p->GetNum();
break;
}
}
this->listView1->AutoResizeColumns(ColumnHeaderAutoResizeStyle::HeaderSize);
}
void FakePatchControl::ApplyOrder()
{
auto& list = m_pPackages->getFakePatchOrder();
for(auto itr = list.begin(); itr != list.end(); itr++)
{
CBaseFile *p = m_pPackages->findPackage((*itr)->str, (*itr)->data);
if ( p )
{
// find item and move it
for ( int i = 0; i < this->listView1->Items->Count; i++ )
{
if ( Convert::ToInt32(this->listView1->Items[i]->Tag) == p->GetNum() )
{
Order(this->listView1->Items[i]);
break;
}
}
}
}
}
void FakePatchControl::Save()
{
m_lFakePatches->clear();
for ( int i = 0; i < this->listView2->Items->Count; i++ )
{
int pos = Convert::ToInt32(this->listView2->Items[i]->Tag);
CBaseFile *p = m_pPackages->GetPackageAt(pos);
if ( p )
m_lFakePatches->pushBack(p->name(), p->author());
}
}
};