photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp
branchRCL_3
changeset 32 78ad99c24f08
parent 18 bcb43dc84c44
child 35 420f6808bf21
--- a/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp	Tue May 11 16:13:40 2010 +0300
+++ b/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp	Tue May 25 12:42:31 2010 +0300
@@ -1071,8 +1071,16 @@
 
         //Since uri can be either focused or unfocused item
         //better call ItemRightsValidityCheckL which doesn't modify lastconsumedUri.
-        drmInvalid = !iDrmUtility->ItemRightsValidityCheckL(uri, checkViewRights);
-
+        CreateImageViewerInstanceL();
+        if(iImageViewerInstance->IsPrivate())
+            {
+            drmInvalid = !iDrmUtility->ItemRightsValidityCheckL(iImageViewerInstance->ImageFileHandle(), checkViewRights);
+            }
+        else
+            {
+            drmInvalid = !iDrmUtility->ItemRightsValidityCheckL(uri, checkViewRights);
+            }
+        DeleteImageViewerInstance();
         CGlxMedia* properties = const_cast<CGlxMedia*>(aMedia.Properties());
         if( !drmInvalid )
             {
@@ -1303,3 +1311,27 @@
         }
     return ETrue;
     }
+
+// -----------------------------------------------------------------------------
+// CreateImageViewerInstanceL
+// -----------------------------------------------------------------------------
+//
+void CGlxTextureManagerImpl::CreateImageViewerInstanceL()
+    {
+    TRACER("CGlxTextureManagerImpl::CreateImageViewerInstanceL");
+    iImageViewerInstance = CGlxImageViewerManager::InstanceL();    
+    __ASSERT_ALWAYS(iImageViewerInstance, Panic(EGlxPanicNullPointer));
+    }
+
+// -----------------------------------------------------------------------------
+// DeleteImageViewerInstance
+// -----------------------------------------------------------------------------
+//
+void CGlxTextureManagerImpl::DeleteImageViewerInstance()
+    {
+    TRACER("CGlxTextureManagerImpl::DeleteImageViewerInstance");
+    if ( iImageViewerInstance )
+        {
+        iImageViewerInstance->DeleteInstance();
+        }
+    }