Factorize a bit more.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40669 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Philippe Houdoin
2011-02-24 18:14:08 +00:00
parent bb0416a246
commit e23bbaff47
2 changed files with 13 additions and 18 deletions
+12 -17
View File
@@ -120,20 +120,20 @@ PictureView::Revert()
if (!HasChanged()) if (!HasChanged())
return; return;
_DeletePicture(); _SetPicture(fOriginalPicture);
fPicture = fOriginalPicture;
Invalidate();
} }
void void
PictureView::Update(const entry_ref* ref) PictureView::Update(const entry_ref* ref)
{ {
fOriginalPicture = BTranslationUtils::GetBitmap(ref); // Don't update when user has changed the picture
if (fOriginalPicture != NULL) if (HasChanged())
fPicture = fOriginalPicture; return;
Invalidate(); delete fOriginalPicture;
fOriginalPicture = BTranslationUtils::GetBitmap(ref);
_SetPicture(fOriginalPicture);
} }
@@ -158,9 +158,7 @@ PictureView::MessageReceived(BMessage* message)
if (picture == NULL) if (picture == NULL)
break; break;
_DeletePicture(); _SetPicture(picture);
fPicture = picture;
MakeFocus(true); MakeFocus(true);
break; break;
} }
@@ -171,7 +169,7 @@ PictureView::MessageReceived(BMessage* message)
case B_DELETE: case B_DELETE:
case B_TRASH_TARGET: case B_TRASH_TARGET:
_DeletePicture(); _SetPicture(NULL);
break; break;
case kMsgPopUpMenuClosed: case kMsgPopUpMenuClosed:
@@ -274,7 +272,7 @@ PictureView::KeyDown(const char* bytes, int32 numBytes)
switch (*bytes) { switch (*bytes) {
case B_DELETE: case B_DELETE:
_DeletePicture(); _SetPicture(NULL);
break; break;
default: default:
@@ -411,15 +409,12 @@ PictureView::_HandleDrop(BMessage* message)
void void
PictureView::_DeletePicture() PictureView::_SetPicture(BBitmap* picture)
{ {
if (fPicture == NULL)
return;
if (fPicture != fOriginalPicture) if (fPicture != fOriginalPicture)
delete fPicture; delete fPicture;
fPicture = NULL; fPicture = picture;
Invalidate(); Invalidate();
} }
+1 -1
View File
@@ -44,7 +44,7 @@ private:
void _ShowPopUpMenu(BPoint screen); void _ShowPopUpMenu(BPoint screen);
BBitmap* _CopyPicture(uint8 alpha); BBitmap* _CopyPicture(uint8 alpha);
void _DeletePicture(); void _SetPicture(BBitmap* bitmap);
BBitmap* fPicture; BBitmap* fPicture;
BBitmap* fOriginalPicture; BBitmap* fOriginalPicture;