photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp
branchRCL_3
changeset 11 71da52165949
parent 3 9a9c174934f5
child 12 ce1c7ad1f18b
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp	Fri Feb 19 22:51:01 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp	Fri Mar 12 15:42:44 2010 +0200
@@ -21,7 +21,6 @@
 //  CLASS HEADER
 #include "glxcommandhandlersend.h"
 
-
 //  EXTERNAL INCLUDES
 #include <utf.h>							// for CnvUtfConverter
 #include <sendui.h>							// for CSendui
@@ -47,6 +46,7 @@
 #include <glxfetchcontextremover.h>         // for TGlxFetchContextRemover 
 #include <glxresourceutilities.h>           // for CGlxResourceUtilities
 #include <glxicons.mbg>
+#include <glximageviewermanager.h>          // for CGlxImageViewerManager
 
 // LOCAL FUNCTIONS AND CONSTANTS
 namespace
@@ -243,17 +243,17 @@
 	// retrieve the file name and path
 	CGlxDefaultAttributeContext* attributeContext = 
 										CGlxDefaultAttributeContext::NewL();
-    CleanupStack::PushL(attributeContext);
-    attributeContext->AddAttributeL(TMPXAttribute(KMPXMediaGeneralUri));
-    mediaList.AddContextL(attributeContext, KGlxFetchContextPriorityBlocking);
+    CleanupStack::PushL( attributeContext );
+    attributeContext->AddAttributeL( TMPXAttribute( KMPXMediaGeneralUri ) );
+    mediaList.AddContextL( attributeContext, KGlxFetchContextPriorityBlocking );
     
     // TGlxContextRemover will remove the context when it goes out of scope
     // Used here to avoid a trap and still have safe cleanup   
-    TGlxFetchContextRemover contextRemover (attributeContext, mediaList);
+    TGlxFetchContextRemover contextRemover( attributeContext, mediaList );
     CleanupClosePushL( contextRemover );
     
-	User::LeaveIfError(GlxAttributeRetriever::RetrieveL(*attributeContext, 
-															mediaList, ETrue));															
+	User::LeaveIfError(GlxAttributeRetriever::RetrieveL(*attributeContext,
+            mediaList, ETrue));
 	// context off the list
     CleanupStack::PopAndDestroy( &contextRemover );														
 
@@ -263,31 +263,42 @@
 	// extract the filename from selected items in the media list and add it 
 	// to the messageData to be returned
     TGlxSelectionIterator iterator;
-    iterator.SetToFirst(&mediaList);
+    iterator.SetToFirst( &mediaList );
 	TInt index = KErrNotFound;
 
-	while ((index = iterator++) != KErrNotFound)
+	while ( (index = iterator++) != KErrNotFound )
 		{
-		// does not return ownership.
-	   	const CGlxMedia* media = mediaList.Item(index).Properties();
-	   	if(media)
-	   		{
-	   		if(media->IsSupported(KMPXMediaGeneralUri) && IsValidTypeL(*media))
-	    		{
-	    		messageData->AppendAttachmentL(
-	    								media->ValueText(KMPXMediaGeneralUri));
-	   			}
-	   		}
-	   	else
-	   		{
-		    User::Leave(KErrNotReady);
-		    }	
-		}
+        // does not return ownership.
+        const CGlxMedia* media = mediaList.Item( index ).Properties();
+        if (media)
+            {
+            if ( media->IsSupported( KMPXMediaGeneralUri ) && 
+                    IsValidTypeL( *media ) )
+                {
+                CGlxImageViewerManager* viewerInst =
+                        CGlxImageViewerManager::InstanceL();
+                if ( viewerInst && viewerInst->IsPrivate() )
+                    {
+                    messageData->AppendAttachmentHandleL( 
+                            viewerInst->ImageFileHandle() );
+                    }
+                else
+                    {
+                    messageData->AppendAttachmentL( 
+                            media->ValueText( KMPXMediaGeneralUri ) );
+                    }
+                viewerInst->DeleteInstance();
+                }
+            }
+        else
+            {
+            User::Leave( KErrNotReady );
+            }
+        }
 
-	CleanupStack::PopAndDestroy(attributeContext);
+	CleanupStack::PopAndDestroy( attributeContext );
 	return messageData;
-	}// contextRemover goes out of scope and removes the context from media list
-
+	}
 
 // ----------------------------------------------------------------------------
 // IsValidTypeL