mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp
branchRCL_3
changeset 17 c8156a91d13c
parent 14 943ff5625028
child 18 c54d95799c80
--- a/mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp	Mon Mar 15 12:40:11 2010 +0200
+++ b/mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp	Wed Mar 31 21:26:33 2010 +0300
@@ -74,6 +74,8 @@
 #include "mpxmetadataeditordialog.hrh"
 #include "mpxmetadataeditordialog.hlp.hrh"
 #include "mpxlog.h"
+#include <drmuihandling.h>
+
 
 // CONSTANTS
 const TInt KMPXFileDetailsMaxTitleLen = 32;
@@ -233,6 +235,10 @@
         {
         iEikonEnv->DeleteResourceFile( iDrmResourceOffset );
         }
+    if(iDrmUiHandler)
+        {
+        delete iDrmUiHandler;
+        }
     }
 
 // ----------------------------------------------------------------------------
@@ -513,6 +519,9 @@
     repository->Get( KMPXMPLocalVariation, val );
     iDisablePodcasting = val&KMPXDisablePodcastingOption ? ETrue : EFalse;
     delete repository;
+    
+    //DRM information popup
+    iDrmUiHandler = DRM::CDrmUiHandling::NewL();
     }
 
 // -----------------------------------------------------------------------------
@@ -2409,18 +2418,16 @@
 
     if ( aType == EEventKey )
         {
-        switch ( aKeyEvent.iScanCode )
+        if (aKeyEvent.iScanCode && (aKeyEvent.iScanCode == EStdKeyUpArrow
+                || aKeyEvent.iScanCode == EStdKeyDownArrow))
             {
-            case EStdKeyUpArrow:
-            case EStdKeyDownArrow:
-                {
-                UpdateSoftkeyL();
-                break;
-                }
-            default:
-                {
-                break;
-                }
+            UpdateSoftkeyL();
+            }
+
+        else if ((aKeyEvent.iCode == EKeyOK || aKeyEvent.iCode == EKeyEnter)
+                && (IdOfFocusControl() == EMPXMetadataEditorDlgCtrlIdDRMDetail))
+            {
+            LaunchDrmInfoL();
             }
         }
 
@@ -2844,7 +2851,11 @@
 
     if (drmProtected)
         {
-          //TODO: Pending for UI Spec and localisation
+        HBufC* detail = StringLoader::LoadLC( R_MPX_CUI_LICENCE_DET_LINK );
+        InsertLineL(9,R_MPX_CUI_LICENCE_INFO,ActivePageId() );
+        SetControlTextL(EMPXMetadataEditorDlgCtrlIdDRMDetail, detail->Des(),
+                KNullDesC);
+        CleanupStack::PopAndDestroy( detail );	
         }
    
     // Get filename
@@ -3116,4 +3127,24 @@
                 }
       }
 
+// -----------------------------------------------------------------------------
+// CMPXMetadataEditorDialog::LaunchDrmInfoL
+// -----------------------------------------------------------------------------
+//
+void CMPXMetadataEditorDialog::LaunchDrmInfoL()
+
+    {
+    MPX_FUNC( "CMPXMetadataEditorDialog::LaunchDrmInfoL" );
+    const TDesC& aFileName = iMedia->ValueText(KMPXMediaGeneralUri);
+    RFs fs;
+    User::LeaveIfError( fs.Connect() );
+    CleanupClosePushL( fs );
+    RFile64 drmFile;
+    User::LeaveIfError( drmFile.Open( 
+            fs, aFileName, EFileRead | EFileShareReadersOrWriters ) );
+    CleanupClosePushL( drmFile );
+    iDrmUiHandler->ShowDetailsViewL( drmFile );
+    CleanupStack::PopAndDestroy( &drmFile );
+    CleanupStack::PopAndDestroy( &fs );
+    }
 // End of File