diff -r 6385c4c93049 -r 8e6fa1719340 browserui/browser/FavouritesInc/BrowserFavouritesIncrementalDelete.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserui/browser/FavouritesInc/BrowserFavouritesIncrementalDelete.h Wed Sep 01 12:31:04 2010 +0100 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Declaration of class CWmlBrowserFavouritesIncrementalDelete. +* +* +*/ + + +#ifndef BROWSER_FAVOURITES_INCREMENTAL_DELETE +#define BROWSER_FAVOURITES_INCREMENTAL_DELETE + +// INCLUDE FILES + +#include "BrowserFavouritesIncrementalOp.h" + +// CLASS DECLARATION + +/** +* Incremental delete operation. One step deletes one bookmark. Before deleting +* a folder, its contents are deleted manually one-by-one. (Using DeleteL of +* Bookmark Engine for a full folder would delete the folder along with its +* contents in one call. This can be too long if the folder contains many items. +* Therefore this operation deletes the folder contents manually before deleting +* the (already emptied) folder, to keep one StepL short.) +*/ +class CBrowserFavouritesIncrementalDelete: + public CBrowserFavouritesIncrementalOp + { + public: // construct / destruct + + /** + * Two phased constructor. Leaves on failure. + * @param aModel Data model. + * @param aUids Uids to delete. Ownership not taken, must remain + * intact during operation. + * @param aNotDeletedUids Uids of items which could not be deleted + * will be appended to this list. Ownership not taken, must remain + * intact during operation. + * @param aPriority Active Object priority. + * @return The constructed incremental delete operation. + */ + static CBrowserFavouritesIncrementalDelete* NewL + ( + CBrowserFavouritesModel& aModel, + CArrayFix& aUids, + CArrayFix& aNotDeletedUids, + TInt aPriority = CActive::EPriorityStandard + ); + + /** + * Destructor. + */ + virtual ~CBrowserFavouritesIncrementalDelete(); + + protected: // construct / destruct + + /** + * Constructor. + * @param aModel Data model. + * @param aUids Uids to delete. Ownership not taken, must remain + * intact during operation. + * @param aNotDeletedUids Uids of items which could not be deleted + * will be appended to this list. Ownership not taken, must remain + * intact during operation. + * @param aPriority Active Object priority. + */ + CBrowserFavouritesIncrementalDelete + ( + CBrowserFavouritesModel& aModel, + CArrayFix& aUids, + CArrayFix& aNotDeletedUids, + TInt aPriority + ); + + /** + * Second phase constructor. + */ + void ConstructL(); + + protected: // from WmlBrowserFavouritesIncrementalOp + + /** + * Perform next step (delete one item). + * @return Number of steps to come (0 if done). + */ + TInt StepL(); + + /** + * Create and prepare the wait note. + */ + void CreateWaitNoteLC(); + + private: // data + + /// Uids to delete. Not owned. + CArrayFix* iUids; + /// Not deleted uids. Not owned. + CArrayFix* iNotDeletedUids; + /// Uids from folder being deleted. Owned. + CArrayFix* iFolderContents; + /// ETrue if deleting folder contents (the folder itself comes next). + TBool iFolderPending; + /// Index of item being deleted. + TInt iIndex; + + }; + +#endif +// End of File