diff -r 000000000000 -r 4e91876724a2 photosgallery/collectionframework/thumbnailcreator/src/glxtndeletethumbnailstask.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/collectionframework/thumbnailcreator/src/glxtndeletethumbnailstask.cpp Thu Dec 17 08:45:44 2009 +0200 @@ -0,0 +1,147 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Implementation of CGlxtnDeleteThumbnailsTask +* +*/ + + + + +/** + * @internal reviewed 31/07/2007 by Simon Brooks + */ + +// INCLUDE FILES + +#include "glxtndeletethumbnailstask.h" + +#include +#include "glxtnfileinfo.h" +#include "mglxtnstorage.h" +#include "mglxtnthumbnailcreatorclient.h" +#include + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// C++ default constructor can NOT contain any code, that might leave. +// ----------------------------------------------------------------------------- +// +CGlxtnDeleteThumbnailsTask::CGlxtnDeleteThumbnailsTask( + const TGlxMediaId& aItemId, MGlxtnThumbnailCreatorClient& aClient) : + CGlxtnClientTask(KGlxtnTaskIdDeleteThumbnails, aItemId, aClient) + { + TRACER("CGlxtnDeleteThumbnailsTask::CGlxtnDeleteThumbnailsTask()"); + GLX_ASSERT_ALWAYS( Storage(), Panic( EGlxPanicIllegalArgument ), + "CGlxtnDeleteThumbnailsTask created without storage" ); + } + +// ----------------------------------------------------------------------------- +// ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CGlxtnDeleteThumbnailsTask::ConstructL() + { + TRACER("void CGlxtnDeleteThumbnailsTask::ConstructL()"); + } + +// ----------------------------------------------------------------------------- +// NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CGlxtnDeleteThumbnailsTask* CGlxtnDeleteThumbnailsTask::NewL( + const TGlxMediaId& aItemId, MGlxtnThumbnailCreatorClient& aClient) + { + TRACER("CGlxtnDeleteThumbnailsTask::NewL()"); + CGlxtnDeleteThumbnailsTask* self = new (ELeave) CGlxtnDeleteThumbnailsTask( + aItemId, aClient); + + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop( self ); + + return self; + } + +// Destructor +CGlxtnDeleteThumbnailsTask::~CGlxtnDeleteThumbnailsTask() + { + TRACER("Destructor CGlxtnDeleteThumbnailsTask::~CGlxtnDeleteThumbnailsTask()"); + delete iInfo; + } + +// ----------------------------------------------------------------------------- +// DoStartL +// ----------------------------------------------------------------------------- +// +TBool CGlxtnDeleteThumbnailsTask::DoStartL(TRequestStatus& aStatus) + { + TRACER("CGlxtnDeleteThumbnailsTask::DoStartL()"); + iInfo = new (ELeave) CGlxtnFileInfo; + Client().FetchFileInfoL(iInfo, ItemId(), &aStatus); + + return ETrue; + } + +// ----------------------------------------------------------------------------- +// DoCancel +// ----------------------------------------------------------------------------- +// +void CGlxtnDeleteThumbnailsTask::DoCancel() + { + TRACER("CGlxtnDeleteThumbnailsTask::DoCancel()"); + Storage()->StorageCancel(); + } + +// ----------------------------------------------------------------------------- +// DoRunL +// ----------------------------------------------------------------------------- +// +TBool CGlxtnDeleteThumbnailsTask::DoRunL(TRequestStatus& aStatus) + { + TRACER("CGlxtnDeleteThumbnailsTask::DoRunL()"); + User::LeaveIfError(aStatus.Int()); + + TBool active = EFalse; + + if ( iDeleting ) + { + Client().ThumbnailDeletionComplete(ItemId(), KErrNone); + } + else + { + User::LeaveIfNull(iInfo); + Storage()->DeleteThumbnailsL(ItemId(), *iInfo, &aStatus); + iDeleting = ETrue; + active = ETrue; + } + + return active; + } + +// ----------------------------------------------------------------------------- +// DoRunError +// ----------------------------------------------------------------------------- +// +TBool CGlxtnDeleteThumbnailsTask::DoRunError(TInt aError) + { + TRACER("CGlxtnDeleteThumbnailsTask::DoRunError()"); + Client().ThumbnailDeletionComplete(ItemId(), aError); + + return EFalse; + } + +// End of File