mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp
branchRCL_3
changeset 14 943ff5625028
parent 2 b70d77332e66
child 17 c8156a91d13c
equal deleted inserted replaced
11:13afc0e517bd 14:943ff5625028
   266             RestoreNaviLabelL();
   266             RestoreNaviLabelL();
   267             RestoreTitlePaneL();
   267             RestoreTitlePaneL();
   268             res = ETrue;
   268             res = ETrue;
   269             break;
   269             break;
   270             }
   270             }
       
   271         case EAknSoftkeyBack:
   271         case EAknSoftkeyExit:
   272         case EAknSoftkeyExit:
   272             {
   273             {
   273             RestoreNaviLabelL();
   274             RestoreNaviLabelL();
   274             RestoreTitlePaneL();
   275             RestoreTitlePaneL();
   275             res = ETrue;
   276             res = ETrue;
   631                 {
   632                 {
   632                 // Fetch the composer
   633                 // Fetch the composer
   633                 SetControlTextL( EMPXMetadataEditorDlgCtrlIdComposer,
   634                 SetControlTextL( EMPXMetadataEditorDlgCtrlIdComposer,
   634                     iMedia->ValueText( KMPXMediaMusicComposer ), KNullDesC );
   635                     iMedia->ValueText( KMPXMediaMusicComposer ), KNullDesC );
   635                 }
   636                 }
       
   637 
       
   638             PopulateFileDetailsL();            
   636             DrawNow();
   639             DrawNow();
   637             }
   640             }
   638         else
   641         else
   639             {
   642             {
   640             // if error getting metadata, exit editor
   643             // if error getting metadata, exit editor
   839     iNaviPane = static_cast<CAknNavigationControlContainer*>
   842     iNaviPane = static_cast<CAknNavigationControlContainer*>
   840         ( statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
   843         ( statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
   841 
   844 
   842     // store the latest navi pane
   845     // store the latest navi pane
   843     iNaviDecorator = iNaviPane->Top();
   846     iNaviDecorator = iNaviPane->Top();
   844 
   847     
   845     // set the new navi label
   848     if(iNaviDecorator)
   846     iEmptyNaviDecorator =
   849         {   
       
   850         // set the new navi label
       
   851         iEmptyNaviDecorator =
   847         iNaviPane->CreateNavigationLabelL(KNullDesC);
   852         iNaviPane->CreateNavigationLabelL(KNullDesC);
   848 
   853 
   849     iNaviPane->PushL( *iEmptyNaviDecorator );
   854         iNaviPane->PushL( *iEmptyNaviDecorator );
       
   855         }
   850     }
   856     }
   851 
   857 
   852 // -----------------------------------------------------------------------------
   858 // -----------------------------------------------------------------------------
   853 // CMPXMetadataEditorDialog::RestoreNaviLabelL
   859 // CMPXMetadataEditorDialog::RestoreNaviLabelL
   854 // Restore Navi Label from the member data.
   860 // Restore Navi Label from the member data.
   886             }
   892             }
   887         else
   893         else
   888             {
   894             {
   889             aMenuPane->SetItemDimmed( EMPXCmdSongDetailsChange, ETrue );
   895             aMenuPane->SetItemDimmed( EMPXCmdSongDetailsChange, ETrue );
   890             }
   896             }
       
   897         aMenuPane->SetItemDimmed( EMPXCmdSongDetails, ETrue );
       
   898         
   891         // Dim out the Avkon menu items
   899         // Dim out the Avkon menu items
   892         aMenuPane->SetItemDimmed( EAknFormCmdEdit, ETrue );
   900         aMenuPane->SetItemDimmed( EAknFormCmdEdit, ETrue );
   893         aMenuPane->SetItemDimmed( EAknFormCmdAdd, ETrue );
   901         aMenuPane->SetItemDimmed( EAknFormCmdAdd, ETrue );
   894         aMenuPane->SetItemDimmed( EAknFormCmdSave, ETrue );
   902         aMenuPane->SetItemDimmed( EAknFormCmdSave, ETrue );
   895         aMenuPane->SetItemDimmed( EAknFormCmdLabel, ETrue );
   903         aMenuPane->SetItemDimmed( EAknFormCmdLabel, ETrue );
  2377         {
  2385         {
  2378         resId = R_MPX_CUI_SONG_DETAILS_SOFTKEYS_OPTIONS_CHANGE_DONE;
  2386         resId = R_MPX_CUI_SONG_DETAILS_SOFTKEYS_OPTIONS_CHANGE_DONE;
  2379         }
  2387         }
  2380     else
  2388     else
  2381         {
  2389         {
  2382         resId = R_MPX_CUI_SONG_DETAILS_SOFTKEYS_OPTIONS_EMPTY_DONE;
  2390         resId = R_MPX_CUI_SONG_DETAILS_SOFTKEYS_OPTIONS_EMPTY_BACK;
  2383         }
  2391         }
  2384 
  2392 
  2385     ButtonGroupContainer().SetCommandSetL( resId );
  2393     ButtonGroupContainer().SetCommandSetL( resId );
  2386     ButtonGroupContainer().DrawDeferred();
  2394     ButtonGroupContainer().DrawDeferred();
  2387     }
  2395     }
  2818             }
  2826             }
  2819         }
  2827         }
  2820     return ret;
  2828     return ret;
  2821     }
  2829     }
  2822 
  2830 
       
  2831 
       
  2832 
       
  2833 // -----------------------------------------------------------------------------
       
  2834 // CMPXMetadataEditorDialog::PopulateFileDetailsL
       
  2835 // -----------------------------------------------------------------------------
       
  2836 //
       
  2837 void CMPXMetadataEditorDialog::PopulateFileDetailsL()
       
  2838     {
       
  2839     MPX_FUNC( "CMPXMetadataEditorDialog::PopulateFileDetailsL" );
       
  2840     
       
  2841     ASSERT(iMedia);
       
  2842     TBool drmProtected(iMedia->ValueTObjectL<TBool> (KMPXMediaDrmProtected));
       
  2843     MPX_DEBUG2( "CMPXMetadataEditorDialog::PopulateFileDetailsL drm protected: %d", drmProtected );
       
  2844 
       
  2845     if (drmProtected)
       
  2846         {
       
  2847           //TODO: Pending for UI Spec and localisation
       
  2848         }
       
  2849    
       
  2850     // Get filename
       
  2851     const TDesC& uri = iMedia->ValueText(KMPXMediaGeneralUri);
       
  2852     TParsePtrC parse(uri);
       
  2853 
       
  2854     SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileName, parse.Name(),
       
  2855             KNullDesC);
       
  2856 
       
  2857     // Get mime type
       
  2858     SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileFormat, iMedia->ValueText(
       
  2859             KMPXMediaGeneralMimeType), KNullDesC);
       
  2860 
       
  2861     // Get duration
       
  2862     TInt duration(iMedia->ValueTObjectL<TInt> (KMPXMediaGeneralDuration));
       
  2863     if (duration > 0)
       
  2864         {
       
  2865         // convert milliseconds to seconds
       
  2866         duration = duration / KSecondInMilliseconds;
       
  2867         CMPXCommonUiHelper::TMPXDuratDisplayMode durationMode =
       
  2868         CMPXCommonUiHelper::EMPXDuratAuto;
       
  2869         if (duration > KOneHourInSeconds)
       
  2870             {
       
  2871             durationMode = CMPXCommonUiHelper::EMPXDuratHMS;
       
  2872             }
       
  2873         HBufC* stringBuf = iCommonUiHelper->DisplayableDurationL(duration,
       
  2874                 durationMode);
       
  2875         CleanupStack::PushL(stringBuf);
       
  2876         SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileDuration, *stringBuf,
       
  2877                 KNullDesC);
       
  2878         CleanupStack::PopAndDestroy(stringBuf);
       
  2879         }
       
  2880     else
       
  2881         {
       
  2882         SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileDuration, KNullDesC,
       
  2883                 KNullDesC);
       
  2884         }
       
  2885 
       
  2886     // Get bitrate
       
  2887     TInt bitrate(iMedia->ValueTObjectL<TInt> (KMPXMediaAudioBitrate));
       
  2888     if (bitrate > 0)
       
  2889         {
       
  2890         // convert bitrate to kpbs
       
  2891         bitrate = bitrate / KMPXBitrateFactor;
       
  2892         HBufC* bitrateText = StringLoader::LoadLC(
       
  2893                 R_MPX_CUI_METADATAEDITOR_BITRATE_TXT, bitrate);
       
  2894         SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileBitrate,
       
  2895                 bitrateText->Des(), KNullDesC);
       
  2896         CleanupStack::PopAndDestroy(bitrateText);
       
  2897         }
       
  2898     else
       
  2899         {
       
  2900         SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileBitrate, KNullDesC,
       
  2901                 KNullDesC);
       
  2902         }
       
  2903 
       
  2904     // Get sampling rate
       
  2905     TInt samplingRateNum((TInt) iMedia->ValueTObjectL<TInt> (
       
  2906             KMPXMediaAudioSamplerate));
       
  2907     if (samplingRateNum > 0)
       
  2908         {
       
  2909         HBufC* stringBuf = HBufC::NewLC(KMPXFileDetailsMaxBufferLen);
       
  2910         TPtr stringBufPtr = stringBuf->Des();
       
  2911         stringBufPtr.AppendNum(samplingRateNum);
       
  2912         HBufC* samplingrate = StringLoader::LoadLC(
       
  2913                 R_MPX_CUI_METADATAEDITOR_SAMPLINGRATE_TXT, stringBufPtr);
       
  2914         SetControlTextL(EMPXMetadataEditorDlgCtrlIdSamplingrate,
       
  2915                 samplingrate->Des(), KNullDesC);
       
  2916         CleanupStack::PopAndDestroy(samplingrate);
       
  2917         CleanupStack::PopAndDestroy(stringBuf);
       
  2918         }
       
  2919     else
       
  2920         {
       
  2921         SetControlTextL(EMPXMetadataEditorDlgCtrlIdSamplingrate, KNullDesC,
       
  2922                 KNullDesC);
       
  2923         }
       
  2924 
       
  2925     // Get size, not stored in collection, have to use RFile
       
  2926     //
       
  2927     RFs& fs = CEikonEnv::Static()->FsSession();
       
  2928     RFile file;
       
  2929     TInt sizeNum(0);
       
  2930     TInt err(file.Open(fs, uri, EFileRead | EFileShareReadersOrWriters));
       
  2931     if (err == KErrNone)
       
  2932         {
       
  2933         file.Size(sizeNum);
       
  2934         file.Close();
       
  2935         }
       
  2936 
       
  2937     if (sizeNum > 0)
       
  2938         {
       
  2939         HBufC* stringBuf = iCommonUiHelper->UnitConversionL(sizeNum);
       
  2940         CleanupStack::PushL(stringBuf);
       
  2941         SetControlTextL(EMPXMetadataEditorDlgCtrlIdSize, *stringBuf,
       
  2942                 KNullDesC);
       
  2943         CleanupStack::PopAndDestroy(stringBuf);
       
  2944         }
       
  2945     else
       
  2946         {
       
  2947         SetControlTextL(EMPXMetadataEditorDlgCtrlIdSize, KNullDesC, KNullDesC);
       
  2948         }
       
  2949 
       
  2950     if (iCurrentLibrary == EMPXMetadataEditorDlgPodcast)
       
  2951         {
       
  2952           PopulatePodcastFileDetailsL();
       
  2953         }
       
  2954 // Get modified
       
  2955 if ( iMedia->IsSupported( KMPXMediaGeneralDate ) )
       
  2956     {
       
  2957     TInt64 timeInt( ( TInt64 )iMedia->ValueTObjectL<TInt64>(
       
  2958             KMPXMediaGeneralDate ) );
       
  2959     TTime time( timeInt );
       
  2960     ConvertToLocalTimeL(time);
       
  2961     HBufC* modDateTime = HBufC::NewLC(
       
  2962             KMPXMaxTimeLength + KMPXDurationDisplayResvLen );
       
  2963     HBufC* format = StringLoader::LoadLC(
       
  2964             R_QTN_DATE_USUAL_WITH_ZERO );
       
  2965     TPtr modDatePtr = modDateTime->Des();
       
  2966     MPX_TRAPD( err, time.FormatL( modDatePtr, *format ) );
       
  2967     CleanupStack::PopAndDestroy( format );
       
  2968     if (err != KErrNone)
       
  2969         {
       
  2970         SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastModified,
       
  2971                 KNullDesC, KNullDesC);
       
  2972 
       
  2973         }
       
  2974     else
       
  2975         {
       
  2976         format = StringLoader::LoadLC(
       
  2977                 R_QTN_TIME_USUAL_WITH_ZERO );
       
  2978         HBufC* modTime = HBufC::NewLC(
       
  2979                 format->Length() + KMPXDurationDisplayResvLen );
       
  2980         TPtr modTimePtr = modTime->Des();
       
  2981         MPX_TRAPD( err, time.FormatL( modTimePtr, *format ) );
       
  2982         if ( err != KErrNone )
       
  2983             {
       
  2984             SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastModified,
       
  2985                     KNullDesC, KNullDesC);
       
  2986 
       
  2987             }
       
  2988         else
       
  2989             {
       
  2990             modDatePtr.Append( KMPXSpace );
       
  2991             modDatePtr.Append( modTimePtr );
       
  2992             SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastModified,
       
  2993                     modDatePtr,
       
  2994                     KNullDesC);
       
  2995             }
       
  2996         CleanupStack::PopAndDestroy( modTime );
       
  2997         CleanupStack::PopAndDestroy( format );
       
  2998         }
       
  2999     CleanupStack::PopAndDestroy( modDateTime );
       
  3000     }
       
  3001 else
       
  3002     {
       
  3003     SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastModified,
       
  3004             KNullDesC, KNullDesC);
       
  3005 
       
  3006     }
       
  3007 
       
  3008 // Get filename
       
  3009 SetControlTextL(EMPXMetadataEditorDlgCtrlIdCopyright,
       
  3010         iMedia->ValueText(
       
  3011                 KMPXMediaGeneralCopyright ), KNullDesC);
       
  3012 
       
  3013 // Get URL
       
  3014 SetControlTextL(EMPXMetadataEditorDlgCtrlIdWebaddress,
       
  3015         iMedia->ValueText(
       
  3016                 KMPXMediaMusicURL ), KNullDesC);
       
  3017 
       
  3018 CAknForm::SetInitialCurrentLine();
       
  3019 }
       
  3020 
       
  3021 // -----------------------------------------------------------------------------
       
  3022 // CMPXMetadataEditorDialog::PopulatePodcastFileDetailsL
       
  3023 // -----------------------------------------------------------------------------
       
  3024 //
       
  3025 void CMPXMetadataEditorDialog::PopulatePodcastFileDetailsL()
       
  3026     {
       
  3027       InsertLineL(13,R_MPX_CUI_LAST_PLAYBACK_POSITION,ActivePageId() );
       
  3028                     
       
  3029             TInt lastPbPosition((TInt) iMedia->ValueTObjectL<TInt> (
       
  3030                     KMPXMediaGeneralLastPlaybackPosition));
       
  3031 
       
  3032             if (lastPbPosition > 0)
       
  3033                 {
       
  3034                 // convert milliseconds to seconds
       
  3035                 lastPbPosition = lastPbPosition / KSecondInMilliseconds;
       
  3036                 CMPXCommonUiHelper::TMPXDuratDisplayMode lastPbPositionMode =
       
  3037                 CMPXCommonUiHelper::EMPXDuratAuto;
       
  3038                 if (lastPbPosition > KOneHourInSeconds)
       
  3039                     {
       
  3040                     lastPbPositionMode = CMPXCommonUiHelper::EMPXDuratHMS;
       
  3041                     }
       
  3042                 HBufC* stringBuf = iCommonUiHelper->DisplayableDurationL(
       
  3043                         lastPbPosition, lastPbPositionMode);
       
  3044                 CleanupStack::PushL(stringBuf);
       
  3045                 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPlayedPosition,
       
  3046                         *stringBuf, KNullDesC);
       
  3047                 CleanupStack::PopAndDestroy(stringBuf);
       
  3048                 }
       
  3049             else if (lastPbPosition == 0 && iMedia->IsSupported(
       
  3050                     KMPXMediaGeneralPlayCount) && iMedia->ValueTObjectL<TInt> (
       
  3051                             KMPXMediaGeneralPlayCount) > 0)
       
  3052                 {
       
  3053                 HBufC* stringBuf = StringLoader::LoadLC(
       
  3054                         R_MPX_CUI_METADATAEDITOR_PLAYBACK_COMPLETE);
       
  3055                 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPlayedPosition,
       
  3056                         *stringBuf, KNullDesC);
       
  3057                 CleanupStack::PopAndDestroy(stringBuf);
       
  3058 
       
  3059                 }
       
  3060             else
       
  3061                 {
       
  3062                 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPlayedPosition,
       
  3063                         KNullDesC, KNullDesC);
       
  3064                 }
       
  3065            
       
  3066             InsertLineL(14,R_MPX_CUI_DETAILS_PUBLISHED,ActivePageId() );
       
  3067             
       
  3068             // Get published
       
  3069             if (iMedia->IsSupported(TMPXAttribute(KMPXMediaIdPodcast,
       
  3070                     EMPXMediaPodcastPubDate)))
       
  3071                 {
       
  3072                 TInt64 timeInt(
       
  3073                         (TInt64) iMedia->ValueTObjectL<TInt64> (TMPXAttribute(
       
  3074                                 KMPXMediaIdPodcast, EMPXMediaPodcastPubDate)));
       
  3075                 TTime time(timeInt);
       
  3076                 ConvertToLocalTimeL(time);
       
  3077                 HBufC* modDateTime = HBufC::NewLC(KMPXMaxTimeLength
       
  3078                         + KMPXDurationDisplayResvLen);
       
  3079                 HBufC* format = StringLoader::LoadLC(R_QTN_DATE_USUAL_WITH_ZERO);
       
  3080                 TPtr modDatePtr = modDateTime->Des();
       
  3081                 MPX_TRAPD( err, time.FormatL( modDatePtr, *format ) );
       
  3082                 CleanupStack::PopAndDestroy(format);
       
  3083                 if (err != KErrNone || time == 0)
       
  3084                     {
       
  3085                     SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPublished,
       
  3086                             KNullDesC, KNullDesC);
       
  3087                     }
       
  3088                 else
       
  3089                     {
       
  3090                     format = StringLoader::LoadLC(R_QTN_TIME_USUAL_WITH_ZERO);
       
  3091                     HBufC* modTime = HBufC::NewLC(format->Length()
       
  3092                             + KMPXDurationDisplayResvLen);
       
  3093                     TPtr modTimePtr = modTime->Des();
       
  3094                     MPX_TRAPD( err, time.FormatL( modTimePtr, *format ) );
       
  3095                     if (err != KErrNone)
       
  3096                         {
       
  3097                         SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPublished,
       
  3098                                 KNullDesC, KNullDesC);
       
  3099                         }
       
  3100                     else
       
  3101                         {
       
  3102                         modDatePtr.Append(KMPXSpace);
       
  3103                         modDatePtr.Append(modTimePtr);
       
  3104                         SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPublished,
       
  3105                                 modTimePtr, KNullDesC);
       
  3106                         }
       
  3107                     CleanupStack::PopAndDestroy(modTime);
       
  3108                     CleanupStack::PopAndDestroy(format);
       
  3109                     }
       
  3110                 CleanupStack::PopAndDestroy(modDateTime);
       
  3111                 }
       
  3112             else
       
  3113                 {
       
  3114                 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPublished,
       
  3115                         KNullDesC, KNullDesC);
       
  3116                 }
       
  3117       }
       
  3118 
  2823 // End of File
  3119 // End of File