Esempio n. 1
0
void
ResView::UpdateRow(BRow *row)
{
	TypeCodeField *typeField = (TypeCodeField*) row->GetField(1);
	ResourceData *resData = typeField->GetResourceData();
	BStringField *strField = (BStringField *)row->GetField(0);
	
	if (strcmp("(attr)", strField->String()) != 0)
		strField->SetString(resData->GetIDString());
	
	strField = (BStringField *)row->GetField(2);
	if (strField)
		strField->SetString(resData->GetName());
	
	PreviewField *preField = (PreviewField*)row->GetField(3);
	if (preField)
		preField->SetData(resData->GetData(), resData->GetLength());
	
	BSizeField *sizeField = (BSizeField*)row->GetField(4);
	if (sizeField)
		sizeField->SetSize(resData->GetLength());
}
Esempio n. 2
0
void
ResView::SaveFile(void)
{
	if (fSaveStatus == FILE_CLEAN || !fRef)
		return;
	
	BFile file(fRef,B_READ_WRITE);
	BResources res(&file,true);
	file.Unset();
	
	for (int32 i = 0; i < fListView->CountRows(); i++) {
		ResDataRow *row = (ResDataRow*)fListView->RowAt(i);
		ResourceData *data = row->GetData();
		res.AddResource(data->GetType(), data->GetID(), data->GetData(),
						data->GetLength(), data->GetName());
	}
	
	res.Sync();
	
	if (fSaveStatus == FILE_QUIT_AFTER_SAVE && Window())
		Window()->PostMessage(B_QUIT_REQUESTED);
	SetSaveStatus(FILE_CLEAN);
}