void PersonView::Save() { fSaving = true; int32 count = fControls.CountItems(); for (int32 i = 0; i < count; i++) { ContactFieldTextControl* control = fControls.ItemAt(i); control->UpdateField(); } if (fAddrView != NULL) fAddrView->UpdateAddressField(); if (fPictureView && fPictureView->HasChanged()) { fPictureView->Update(); BBitmap* bitmap = fPictureView->Bitmap(); if (fPhotoField == NULL) { fPhotoField = new BPhotoContactField(bitmap); fContact->AddField(fPhotoField); } else { fPhotoField->SetPhoto(bitmap); } } fFile->GetModificationTime(&fLastModificationTime); fContact->Commit(); // TODO alert here if error fSaving = false; }
void PersonView::Save() { fSaving = true; int32 count = fControls.CountItems(); for (int32 i = 0; i < count; i++) { ContactFieldTextControl* control = fControls.ItemAt(i); control->UpdateField(); } if (fAddressWindow) fAddressWindow->UpdateAddressField(); if (fPictureView && fPictureView->HasChanged()) { fPictureView->Update(); BBitmap* bitmap = fPictureView->Bitmap(); if (fPhotoField == NULL) { fPhotoField = new BPhotoContactField(bitmap); fContact->AddField(fPhotoField); } else { fPhotoField->SetPhoto(bitmap); } } if (fContact->Commit() != B_OK) { BAlert* panel = new BAlert( "", "Error : BContact::Commit() != B_OK!\n", "OK"); panel->Go(); } fContactFile->GetModificationTime(&fLastModificationTime); fSaving = false; fSaved = true; }