--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/hgmyvideos/inc/vcxhgmyvideosvideocopier.h Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2008 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: Class for handling move/copy related notes and operations.*
+*/
+
+
+
+
+#ifndef VCXHGMYVIDEOSVIDEOCOPIER_H
+#define VCXHGMYVIDEOSVIDEOCOPIER_H
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <AknProgressDialog.h>
+
+// FORWARD DECLARATIONS
+class CVcxHgMyVideosVideoListImpl;
+class CVcxHgMyVideosVideoModelHandler;
+class CVcxHgMyVideosModel;
+class CAknWaitDialog;
+
+/**
+ * Class for handling move/copy related notes and operations.
+ *
+ * @lib vcxhgmyvideos.lib
+ */
+NONSHARABLE_CLASS( CVcxHgMyVideosVideoCopier ) : public CBase,
+ public MProgressDialogCallback
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aVideoList Video list implementation.
+ * @param aVideoModel Video model handler.
+ * @param aModel Component's model.
+ */
+ static CVcxHgMyVideosVideoCopier* NewL( CVcxHgMyVideosVideoListImpl& aVideoList,
+ CVcxHgMyVideosVideoModelHandler& aVideoModel,
+ CVcxHgMyVideosModel& aModel );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CVcxHgMyVideosVideoCopier();
+
+ /**
+ * Cheks status of currently selected items and UI list. Returns
+ * flags that tell which move/copy realted menu items can be shown.
+ *
+ * @param aOperationTargets List of operation targets on UI.
+ * @param aShowMoveAndCopySubmenu On return, ETrue if move/copy submenu can be shown.
+ * @param aShowCopy On return, ETrue if copy menu item can be shown.
+ * @param aShowMove On return, ETrue if move menu item can be shown.
+ */
+ void ShowMenuItemsL(
+ const RArray<TInt>& aOperationTargets,
+ TBool& aShowMoveAndCopySubmenu,
+ TBool& aShowCopy,
+ TBool& aShowMove );
+
+ /**
+ * Moves or copies videos. Also shows memory selection dialog and
+ * move/copy wait note.
+ *
+ * @param aOperationTargets List of operation targets on UI.
+ * @param aCopy ETrue for copy operation, EFalse for move.
+ */
+ void MoveOrCopyL(
+ const RArray<TInt>& aOperationTargets,
+ TBool aCopy );
+
+ /**
+ * Called by video list impl when move or copy command is completed.
+ *
+ * @param aFailedCount Count of items that could not be moved/copied.
+ * @param aFailedName Name of video where move/copy failed, if there was only one.
+ */
+ void VideoMoveOrCopyCompletedL( TInt aFailedCount, const TDesC& aFailedName );
+
+ public: // From MProgressDialogCallback
+
+ /**
+ * Called when (move/copy) wait dialog is dismissed.
+ *
+ * @aButtonId Button with which dialog was dismissed.
+ */
+ void DialogDismissedL( TInt aButtonId );
+
+ protected:
+
+ CVcxHgMyVideosVideoCopier( CVcxHgMyVideosVideoListImpl& aVideoList,
+ CVcxHgMyVideosVideoModelHandler& aVideoModel,
+ CVcxHgMyVideosModel& aModel );
+
+ void ConstructL();
+
+ /**
+ * Queries user for target drive.
+ *
+ * @param aCopy ETrue for copy operation, EFalse for move.
+ * @param aTargetDrive On return, target drive.
+ * @return ETrue if user accepted target.
+ */
+ TBool QueryTargetDriveL( TBool aCopy, TInt& aTargetDrive );
+
+ /**
+ * Opens the move/copy wait note.
+ *
+ * @param aOperationTargets Operation targets.
+ * @param aCopy ETrue for copy operation, EFalse for move.
+ */
+ void OpenMoveCopyWaitNoteL( const RArray<TInt>& aOperationTargets,
+ TBool aCopy );
+
+ /**
+ * Closes the move/copy wait note.
+ */
+ void CloseMoveCopyWaitNote();
+
+ protected: // data
+
+ /**
+ * Reference to video list implementation.
+ * Not own.
+ */
+ CVcxHgMyVideosVideoListImpl& iVideoList;
+
+ /**
+ * Reference to video model handler.
+ * Not own.
+ */
+ CVcxHgMyVideosVideoModelHandler& iVideoModel;
+
+ /**
+ * Reference to component's model.
+ * Not own.
+ */
+ CVcxHgMyVideosModel& iModel;
+
+ /**
+ * Move/copy wait dialog.
+ * Own.
+ */
+ CAknWaitDialog* iMoveCopyWaitDialog;
+
+ /**
+ * Flag telling if latest operation was copy (ETrue) or move (EFalse).
+ */
+ TBool iCopy;
+ };
+
+#endif // VCXHGMYVIDEOSVIDEOCOPIER_H