svgtviewer/SvgtViewerPlugin/SvgtFileViewDetailsSrc/svgtfileviewdetails.cpp
branchRCL_3
changeset 13 e52958d06c29
parent 10 1882882c7f9c
child 14 20b99a6d6175
--- a/svgtviewer/SvgtViewerPlugin/SvgtFileViewDetailsSrc/svgtfileviewdetails.cpp	Tue May 25 12:28:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,904 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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:  Implementation of the CSvgtFileViewDetailsDialog.
-*
-*/
-
-    
-
-// INCLUDE FILES
-#include "svgtfileviewdetails.h"
-
-#include <aknlists.h>
-#include <bautils.h>
-#include <StringLoader.h>
-#include <e32base.h>
-#include <apmstd.h> // KMaxDataTypeLength
-#include <DRMHelper.h> 
-#include <caf/content.h>
-#include <caf/attribute.h>
-#include <data_caging_path_literals.hrh>
-#include <tz.h>
-#include <tzconverter.h>
-
-#include <svgtfileviewdetails.rsg>
-
-_LIT(KResourceFileName,"svgtfileviewdetails.rsc");
-
-const TInt KSizeStringLengthSix = 6;
-const TInt KSizeStringLengthFive = 5;
-const TInt KSizeStringLengthFour = 4;
-const TInt KSizeStringLengthThree = 3;
-
-const TInt KValBufferLength = 512;
-const TInt KTimeCount = 2;
-const TInt KArrayGranularity = 2; 
-const TInt KDecimalCount = 2;
-
-const TInt KOneDigit1 = 1;
-const TInt KOneDigit5 = 5;
-const TInt KOneDigit9 = 9;
-const TInt KTwoDigit11 = 11;
-const TInt KTwoDigit14 = 14;
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSvgtFileDetails::CSvgtFileDetails
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CSvgtFileDetails::CSvgtFileDetails() 
-    :   iUrl(NULL), iFormat(NULL), 
-        iDRMExpireConstraint( ESVGTNone )   //Initialize with no constraints
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileDetails::~CSvgtFileDetails   
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSvgtFileDetails::~CSvgtFileDetails()
-    {
-    delete iUrl;    
-    delete iFormat; 
-    }
-
-
-// CONSTANTS
-
-
-_LIT(KDataTypeSvgt,"svg"); 
-
-const TInt KFileSizeOneKilobyte = 1024;
-const TInt KThousandNotKilobyte = 1000;
-const TInt KMaxTimeLength = 36;
-
-// For meta data 
-_LIT( KSpace, " ");
-
-// Language specific time format
-const TInt KOneDigit = 10;
-const TInt KTwoDigits = 100;
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::CSvgtFileViewDetailsDialog
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CSvgtFileViewDetailsDialog::CSvgtFileViewDetailsDialog() 
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::ConstructL()
-    {
-    iListBox = new (ELeave) CAknDoublePopupMenuStyleListBox();
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CSvgtFileViewDetailsDialog* CSvgtFileViewDetailsDialog::NewL()
-    {
-    CSvgtFileViewDetailsDialog* self = new( ELeave ) CSvgtFileViewDetailsDialog;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::~CSvgtFileViewDetailsDialog   
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CSvgtFileViewDetailsDialog::~CSvgtFileViewDetailsDialog()
-    {
-    delete iListBox;
-    iEnv->DeleteResourceFile( iResOffset );  //removing the resource file for enviornment
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::ExecuteLD
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CSvgtFileViewDetailsDialog::ExecuteLD( RFile& aFileHandle )     
-    {
-    CleanupStack::PushL( this );
-    CSvgtFileDetails* fileDetails = new (ELeave) CSvgtFileDetails();
-    CleanupStack::PushL( fileDetails );
-
-    AddResourceFileToEnvL();
-
-   // Creates a handle to content handled via CAF
-    CContent *content = CContent::NewLC( aFileHandle ); 
-    content->GetAttribute( EIsProtected, fileDetails->iDrmProtected );
-    CleanupStack::PopAndDestroy( content );
-  
-    if ( fileDetails->iDrmProtected )
-        {
-        // drm data
-        FetchDrmDataL( aFileHandle, fileDetails );        
-        }
-    
-    // recognize file and get format
-    TBuf<KMaxDataTypeLength> format(KDataTypeSvgt);
-    fileDetails->iFormat = format.AllocL();
-    
-    // creation time
-    aFileHandle.Modified(fileDetails->iTime);
-   
-    // Convert from UTC to local time
-    RTz lTz;
-    // Connect to TimeZone Server
-    User::LeaveIfError( lTz.Connect() );
-    CleanupClosePushL( lTz );
-    
-    // Create Util Class
-    CTzConverter* lTzConverterPtr = CTzConverter::NewL( lTz );
-    
-    CleanupStack::PushL( lTzConverterPtr );
-    // Perform conversion to local time
-    User::LeaveIfError( lTzConverterPtr->ConvertToLocalTime( fileDetails->iTime ) );
-
-    CleanupStack::PopAndDestroy( 2 ); // lTzConverterPtr, lTz
-
-    // file size
-    aFileHandle.Size(fileDetails->iSize);
-    
-    // Show File Details Dialog
-    DoLaunchDialogL( fileDetails );
-
-    CleanupStack::PopAndDestroy( fileDetails ); 
-    CleanupStack::PopAndDestroy( this ); 
-    
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::DoLaunchDialog
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::DoLaunchDialogL(const CSvgtFileDetails* aFileDetails )
-    {
-    CAknPopupList* popupList = CAknPopupList::NewL(iListBox,
-            R_AVKON_SOFTKEYS_OK_EMPTY__OK, 
-            AknPopupLayouts::EMenuDoubleWindow);
-    CleanupStack::PushL(popupList);
-    
-    iListBox->ConstructL(popupList, EAknListBoxViewerFlags);
-    iListBox->CreateScrollBarFrameL(ETrue);   
-    iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
-                    CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
-    
-    SetTitleL(popupList);
-    FillListBoxL(aFileDetails);
-
-    CleanupStack::Pop( popupList );
-    popupList->ExecuteLD();
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::SetTitleL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::SetTitleL(CAknPopupList* aPopupList) const
-    {
-    HBufC* title = StringLoader::LoadLC(R_FILE_DETAILS);
-    if( aPopupList )
-       {
-       aPopupList->SetTitleL(*title);   
-       }    
-    CleanupStack::PopAndDestroy( title ); 
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::FillListBoxL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::FillListBoxL(const CSvgtFileDetails* aFileDetails)
-    {
-    CDesCArray* itemArray = 
-            static_cast<CDesCArray*>( iListBox->Model()->ItemTextArray() );
-    
-    if( aFileDetails )
-        {
-        if ( aFileDetails->iDrmProtected )
-            {
-            MakeDrmItemsL(itemArray,aFileDetails);
-            }    
-           
-        MakeUrlItemL(itemArray,aFileDetails);
-        MakeFormatItemL(itemArray,aFileDetails);
-        MakeDateItemL(itemArray,aFileDetails);
-        MakeTimeItemL(itemArray,aFileDetails);
-        MakeSizeItemL(itemArray,aFileDetails);
-        }
-        
-    iListBox->HandleItemAdditionL();
-    iListBox->SetCurrentItemIndex(0);
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::AddItemToListBoxL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::AddItemToListBoxL(const TDesC& aHeading,
-                                             const TDesC& aValue, 
-                                             CDesCArray* aItemArray) const
-    {
-    CDesCArrayFlat* items = new (ELeave) CDesCArrayFlat( KArrayGranularity );
-    CleanupStack::PushL(items);
-    items->AppendL(aHeading); //First string (heading)
-    items->AppendL(aValue);   //Second string (value)
-    HBufC* headingAndValue = 
-            StringLoader::LoadLC( R_FILE_DETAILS_ROW_FORMAT, *items );
-    if( aItemArray )        
-        {
-        aItemArray->AppendL(*headingAndValue);  
-        }    
-
-        CleanupStack::PopAndDestroy( headingAndValue ); // headingAndValue 
-        CleanupStack::PopAndDestroy( items ); // items 
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::MakeUrlItemL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::MakeUrlItemL(CDesCArray* aItemArray,
-                                  const CSvgtFileDetails* aFileDetails) const
-    {
-    
-    if ( aFileDetails && aFileDetails->iUrl )
-        {
-        HBufC* heading = StringLoader::LoadLC(R_FILE_URL_HEADING);
-        AddItemToListBoxL(*heading,*aFileDetails->iUrl,aItemArray);
-        CleanupStack::PopAndDestroy( heading ); 
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::MakeFormatItemL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::MakeFormatItemL(CDesCArray* aItemArray,
-                                     const CSvgtFileDetails* aFileDetails) const
-    {
-    if ( aFileDetails && aFileDetails->iFormat )
-        {
-        HBufC* heading = StringLoader::LoadLC(R_FILE_FORMAT_HEADING);
-        AddItemToListBoxL(*heading,*aFileDetails->iFormat,aItemArray);
-        CleanupStack::PopAndDestroy( heading );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::MakeSizeItemL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::MakeSizeItemL(CDesCArray* aItemArray,
-                                   const  CSvgtFileDetails* aFileDetails) const
-    {
-
-    if ( aFileDetails && aFileDetails->iSize )
-        {   
-        TRealFormat format = TRealFormat(KMaxFileName, KDecimalCount);
-        TBuf<KMaxFileName> sizeString;
-        HBufC* value = NULL;
-        HBufC* heading = StringLoader::LoadLC(R_FILE_SIZE_HEADING);
-        TReal size = aFileDetails->iSize;
-        
-        // Show bytes with 3 digits. If more digits needed, 
-        // show size in kilobytes.
-        if ( size < KThousandNotKilobyte )
-            {
-            sizeString.Num(size,format);
-            switch (sizeString.Length())
-                {
-                case KSizeStringLengthSix:
-                    sizeString = sizeString.Left( KSizeStringLengthThree );
-                    break;
-                case KSizeStringLengthFive:
-                    sizeString = sizeString.Left( KSizeStringLengthFour );
-                    break;
-                default:
-                    break;
-                }
-            value = StringLoader::LoadLC(R_FILE_SIZE_B,sizeString);
-            }
-        else
-            {
-            size = size/KFileSizeOneKilobyte;
-            sizeString.Num(size,format);
-            switch (sizeString.Length())
-                {
-                case KSizeStringLengthSix:
-                    sizeString = sizeString.Left( KSizeStringLengthThree );
-                    break;
-                case KSizeStringLengthFive:
-                    sizeString = sizeString.Left( KSizeStringLengthFour );
-                    break;
-                default:
-                    break;
-                }
-            value = StringLoader::LoadLC(R_FILE_SIZE_KB,sizeString);
-            }
-        TPtr textPtr = value->Des();
-        LanguageSpecificNumberConversion( textPtr );
-        AddItemToListBoxL(*heading,*value,aItemArray);
-        CleanupStack::PopAndDestroy( value ); 
-        CleanupStack::PopAndDestroy( heading ); // heading & value
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::MakeDateItemL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::MakeDateItemL(CDesCArray* aItemArray,
-                                    const CSvgtFileDetails* aFileDetails) const
-    {
-
-    if ( ( aFileDetails ) && ( aFileDetails->iTime > TTime(0) ))
-        {
-        HBufC* heading = StringLoader::LoadLC(R_FILE_DATE_HEADING);
-        HBufC* dateFormatString = 
-                StringLoader::LoadLC( R_QTN_DATE_USUAL_WITH_ZERO );
-        TBuf<KMaxTimeLength> date;
-        aFileDetails->iTime.FormatL(date,*dateFormatString);
-        LanguageSpecificNumberConversion( date );
-        AddItemToListBoxL(*heading,date,aItemArray);
-        CleanupStack::PopAndDestroy( dateFormatString ); 
-        CleanupStack::PopAndDestroy( heading ); // heading & dateFormatString
-        }
-
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::MakeTimeItemL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::MakeTimeItemL(CDesCArray* aItemArray,
-                                  const CSvgtFileDetails* aFileDetails) const
-    {
-    if ( ( aFileDetails ) && ( aFileDetails->iTime > TTime(0)))
-        {
-        HBufC* heading = StringLoader::LoadLC( R_FILE_TIME_HEADING );
-        HBufC* timeFormatString = 
-                StringLoader::LoadLC( R_QTN_TIME_USUAL_WITH_ZERO );
-        TBuf<KMaxTimeLength> time;
-        aFileDetails->iTime.FormatL(time,*timeFormatString);
-        LanguageSpecificNumberConversion( time );
-        AddItemToListBoxL(*heading,time,aItemArray);
-        CleanupStack::PopAndDestroy( timeFormatString ); 
-        CleanupStack::PopAndDestroy( heading ); // heading & timeFormatString
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::MakeDrmItemsL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::MakeDrmItemsL(CDesCArray* aItemArray,
-                                       const CSvgtFileDetails* aFileDetails) const
-    {
-
-    HBufC* rights = StringLoader::LoadLC(R_FILE_DRM_DISPLAY);
-    HBufC* heading = NULL;
-    HBufC* value = NULL;
-    
-    if ( aFileDetails )
-        {
-        switch (aFileDetails->iDRMRightsStatus)
-            {
-            case ESVGTFull:
-                // status
-                heading = StringLoader::LoadLC(R_FILE_DRM_STAT);
-                value = StringLoader::LoadLC(R_FILE_DRM_VALID);
-                AddItemToListBoxL(*heading,*value,aItemArray);
-                CleanupStack::PopAndDestroy( value ); 
-                CleanupStack::PopAndDestroy( heading ); // heading && value
-                // full rights
-                heading = StringLoader::LoadLC(R_FILE_DRM_FULL,*rights);
-                value = StringLoader::LoadLC(R_FILE_DRM_UNLIMITED);
-                AddItemToListBoxL(*heading,*value,aItemArray);
-                CleanupStack::PopAndDestroy( value ); 
-                CleanupStack::PopAndDestroy( heading ); // heading && value
-                break;
-            case ESVGTRestricted:
-            case ESVGTPreview:
-                // status
-                heading = StringLoader::LoadLC(R_FILE_DRM_STAT);
-                value = StringLoader::LoadLC(R_FILE_DRM_VALID);
-                AddItemToListBoxL(*heading,*value,aItemArray);
-                CleanupStack::PopAndDestroy( value ); 
-                CleanupStack::PopAndDestroy( heading ); // heading && value
-                // make rest of the drm items
-                MakeRestrictedDrmItemsL(rights,aItemArray,aFileDetails);          
-                break;
-            case ESVGTMissing:
-                // status
-                heading = StringLoader::LoadLC(R_FILE_DRM_STAT);
-                value = StringLoader::LoadLC(R_FILE_DRM_EXP);
-                AddItemToListBoxL(*heading,*value,aItemArray);
-                CleanupStack::PopAndDestroy( value ); 
-                CleanupStack::PopAndDestroy( heading ); // heading && value
-                break;
-            case ESVGTExpired:
-                // status
-                heading = StringLoader::LoadLC(R_FILE_DRM_STAT);
-                value = StringLoader::LoadLC(R_FILE_DRM_EXP);
-                AddItemToListBoxL(*heading,*value,aItemArray);
-                CleanupStack::PopAndDestroy( value ); 
-                CleanupStack::PopAndDestroy( heading ); // heading && value
-                // make rest of the drm items
-                MakeRestrictedDrmItemsL(rights,aItemArray,aFileDetails);          
-                break;
-            default:
-                break;
-            }
-        }
-    
-    heading = NULL;
-    value = NULL;
-    
-    // sending
-    heading = StringLoader::LoadLC(R_FILE_DRM_CS);
-    if ( aFileDetails && aFileDetails->iDRMForwardLocked )
-        {
-        value = StringLoader::LoadLC(R_FILE_DRM_FORBID);
-        }
-    else
-        {
-        value = StringLoader::LoadLC(R_FILE_DRM_ALLOWED);
-        }
-    AddItemToListBoxL(*heading,*value,aItemArray); 
-    CleanupStack::PopAndDestroy( value ); 
-    CleanupStack::PopAndDestroy( heading ); 
-    CleanupStack::PopAndDestroy( rights ); // heading, value, rights
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::MakeDrmItemsL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::MakeRestrictedDrmItemsL(
-        const HBufC* aRights, CDesCArray* aItemArray, 
-        const CSvgtFileDetails* aFileDetails ) const
-    {
-
-    HBufC* heading = NULL;
-    HBufC* value = NULL;
-    
-    if ( !aRights || !aItemArray )
-        {
-        return;
-        }
-        
-    // count
-    if ( ( aFileDetails ) && ( aFileDetails->iDRMExpireConstraint == ESVGTCount 
-    || aFileDetails->iDRMExpireConstraint == ESVGTCountAndTime ))
-        {
-        heading = StringLoader::LoadLC(R_FILE_DRM_UTL,*aRights);
-        
-        TInt counts = aFileDetails->iDRMCountsLeft;
-        
-        if (counts == 1)
-            {
-            value = StringLoader::LoadLC(R_FILE_DRM_1_COUNT);
-            }
-        else
-            {
-            value = StringLoader::LoadLC(R_FILE_DRM_N_COUNTS,counts);
-            }
-        TPtr textPtr = value->Des();
-        LanguageSpecificNumberConversion( textPtr );
-        AddItemToListBoxL(*heading,*value,aItemArray);
-        CleanupStack::PopAndDestroy( value ); 
-        CleanupStack::PopAndDestroy( heading ); // heading && value
-        }
-
-    if ( ( aFileDetails ) && ( aFileDetails->iDRMExpireConstraint == ESVGTTime ||
-        aFileDetails->iDRMExpireConstraint == ESVGTCountAndTime ||
-        ( aFileDetails->iDRMFileHasInterval && 
-        aFileDetails->iDRMIntervalActive )))
-        {
-        HBufC* dateFormatString = StringLoader::LoadLC( 
-                R_QTN_DATE_USUAL_WITH_ZERO );
-        HBufC* timeFormatString = StringLoader::LoadLC( R_QTN_TIME_USUAL );
-        
-        TTime from = aFileDetails->iDRMValidFrom;
-        TTime until = aFileDetails->iDRMValidUntil;
-
-        // from
-        heading = StringLoader::LoadLC(R_FILE_DRM_VALID_FROM,*aRights);
-        HBufC* datePointer = HBufC::NewLC( KMaxLongDateFormatSpec );
-        TPtr date = datePointer->Des();
-        from.FormatL( date, *dateFormatString );
-        TBuf<KMaxTimeLength> time;
-        from.FormatL( time, *timeFormatString );
-        date.Append( KSpace );
-        date.Append( time );
-        LanguageSpecificNumberConversion( date );
-        AddItemToListBoxL( *heading, date, aItemArray );
-        CleanupStack::PopAndDestroy( datePointer ); 
-        CleanupStack::PopAndDestroy( heading ); // datePointer, heading 
-
-        // until
-        heading = StringLoader::LoadLC(R_FILE_DRM_VALID_TO,*aRights);
-        HBufC* dateToPntr = HBufC::NewLC( KMaxLongDateFormatSpec );
-        TPtr dateTo = dateToPntr->Des();
-        until.FormatL( dateTo, *dateFormatString );
-        TBuf<KMaxTimeLength> timeTo;
-        until.FormatL( timeTo, *timeFormatString );
-        dateTo.Append( KSpace );
-        dateTo.Append( timeTo );
-        LanguageSpecificNumberConversion( dateTo );
-        AddItemToListBoxL( *heading, dateTo, aItemArray );
-
-        // destroying dateFormatString, timeFormatString, heading, dateToPntr 
-        CleanupStack::PopAndDestroy( dateToPntr ); 
-        CleanupStack::PopAndDestroy( heading ); 
-        CleanupStack::PopAndDestroy( timeFormatString ); 
-        CleanupStack::PopAndDestroy( dateFormatString ); 
-        }
-    // interval
-    else 
-        {
-        if ( ( aFileDetails ) && ( aFileDetails->iDRMFileHasInterval && 
-             !aFileDetails->iDRMIntervalActive ))
-            {
-            // times not activated
-            heading = StringLoader::LoadLC(R_FILE_DRM_UTS,*aRights);
-            value  = StringLoader::LoadLC(R_FILE_DRM_NOT_ACT);
-            AddItemToListBoxL(*heading,*value,aItemArray);
-            CleanupStack::PopAndDestroy( value ); // heading && value
-            CleanupStack::PopAndDestroy( heading );
-
-            // query what the current time is
-            TTime currentTime;
-            currentTime.HomeTime();
-            // calculate rights end time
-            TTime endTime = currentTime + aFileDetails->iDRMInterval;
-
-            HBufC* lVal = HBufC::NewLC( KValBufferLength );
-            TPtr valPtr(lVal->Des());
-            
-            TInt count = 0;
-
-            // years
-            TTimeIntervalYears years = endTime.YearsFrom(currentTime);
-            if (years.Int())
-                {
-                AddSinglePartOfTimeL( years.Int(), 
-                                  R_FILE_DRM_NBR_OF_YEARS_ONE,
-                                  R_FILE_DRM_NBR_OF_YEARS_ONE_FINAL,
-                                  R_FILE_DRM_NBR_OF_YEARS_TWO_FOUR,
-                                  R_FILE_DRM_NBR_OF_YEARS_FIVE_ZERO,
-                                  value );
-                count++;
-                valPtr.Append(*value);
-                endTime -= years; 
-                CleanupStack::PopAndDestroy( value ); 
-                }
-            
-            // months
-            TTimeIntervalMonths months = endTime.MonthsFrom(currentTime);
-            if (months.Int())
-                {
-                AddSinglePartOfTimeL( months.Int(), 
-                                  R_FILE_DRM_NBR_OF_MONTHS_ONE,
-                                  0,                                  
-                                  R_FILE_DRM_NBR_OF_MONTHS_TWO_FOUR, 
-                                  R_FILE_DRM_NBR_OF_MONTHS_FIVE_ZERO, 
-                                  value );
-                 if (count)
-                    {
-                    valPtr.Append( KSpace );
-                    }
-
-                count++;
-                valPtr.Append(*value);
-                endTime -= months;
-                CleanupStack::PopAndDestroy( value );
-                }
-       
-            // days
-            TTimeIntervalDays days = endTime.DaysFrom(currentTime);
-            if (days.Int() && count < KTimeCount)
-                {
-                AddSinglePartOfTimeL( days.Int(), 
-                                  R_FILE_DRM_NBR_OF_DAYS_ONE,
-                                  R_FILE_DRM_NBR_OF_DAYS_ONE_FINAL,
-                                  R_FILE_DRM_NBR_OF_DAYS_TWO_FOUR, 
-                                  R_FILE_DRM_NBR_OF_DAYS_FIVE_ZERO, 
-                                  value );
-                if (count)
-                    {
-                    valPtr.Append( KSpace );
-                    }
-
-                valPtr.Append(*value);
-                endTime -= days; 
-                CleanupStack::PopAndDestroy( value ); 
-                count++;
-                }
-       
-            // hours
-            TTimeIntervalHours hours;
-            TInt ret = endTime.HoursFrom(currentTime,hours);
-            if (ret == KErrNone && count < KTimeCount && hours.Int())
-                {
-                AddSinglePartOfTimeL( hours.Int(), 
-                                  R_FILE_DRM_NBR_OF_HOURS_ONE, 
-                                  R_FILE_DRM_NBR_OF_HOURS_ONE_FINAL,
-                                  R_FILE_DRM_NBR_OF_HOURS_TWO_FOUR, 
-                                  R_FILE_DRM_NBR_OF_HOURS_FIVE_ZERO, 
-                                  value );
-                if (count)
-                    {
-                    valPtr.Append( KSpace );
-                    }
-
-                valPtr.Append(*value);
-                endTime -= hours; 
-                CleanupStack::PopAndDestroy( value ); 
-                count++;
-                }
-
-            // mins
-            TTimeIntervalMinutes minutes;
-            ret = endTime.MinutesFrom(currentTime,minutes);
-            if (ret == KErrNone && count < KTimeCount && minutes.Int())
-                {
-                AddSinglePartOfTimeL( minutes.Int(), 
-                                  R_FILE_DRM_NBR_OF_MINS_ONE,
-                                  R_FILE_DRM_NBR_OF_MINS_ONE_FINAL,
-                                  R_FILE_DRM_NBR_OF_MINS_TWO_FOUR, 
-                                  R_FILE_DRM_NBR_OF_MINS_FIVE_ZERO, 
-                                  value );
-                if (count)
-                    {
-                    valPtr.Append( KSpace );
-                    }
-
-                valPtr.Append(*value);
-                endTime -= minutes; 
-                CleanupStack::PopAndDestroy( value );
-                count++;
-                }
-            
-            // seconds
-            TTimeIntervalSeconds seconds;
-            ret = endTime.SecondsFrom(currentTime,seconds);
-            if (ret == KErrNone && count < KTimeCount && seconds.Int())
-                {
-                AddSinglePartOfTimeL( seconds.Int(), 
-                                  R_FILE_DRM_NBR_OF_SECS_ONE, 
-                                  R_FILE_DRM_NBR_OF_SECS_ONE_FINAL,
-                                  R_FILE_DRM_NBR_OF_SECS_TWO_FOUR, 
-                                  R_FILE_DRM_NBR_OF_SECS_FIVE_ZERO, 
-                                  value );
-
-                if (count)
-                    {
-                    valPtr.Append( KSpace );
-                    }
-
-                valPtr.Append(*value);
-                CleanupStack::PopAndDestroy( value ); 
-                count++;
-                }
-           
-            heading = StringLoader::LoadLC(R_FILE_DRM_UDL,*aRights);
-            LanguageSpecificNumberConversion(valPtr);
-            AddItemToListBoxL(*heading,valPtr,aItemArray);
-            CleanupStack::PopAndDestroy( lVal ); 
-            CleanupStack::PopAndDestroy( heading ); 
-            }
-            
-        }
-      
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::LanguageSpecificNumberConversion
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::LanguageSpecificNumberConversion( TDes& aText ) const
-    {
-    if ( AknTextUtils::DigitModeQuery( AknTextUtils::EDigitModeShownToUser ) )
-        {
-        AknTextUtils::DisplayTextLanguageSpecificNumberConversion( aText );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::FetchDrmDataL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::FetchDrmDataL( RFile& aFileHandle, 
-                                          CSvgtFileDetails* aFileDetails ) const
-    {
-   
-    CSVGTDrmHelper* myHelper = CSVGTDrmHelper::NewLC();
-    
-    myHelper->LoadUsageRigthsInfoL(aFileHandle);
-
-    if ( aFileDetails )
-        {
-        myHelper->GetUsageRightsStatus(aFileDetails->iDRMRightsStatus);
-      
-        // sending
-        aFileDetails->iDRMForwardLocked = !myHelper->SendingAllowed();
-            
-        if (aFileDetails->iDRMRightsStatus == ESVGTRestricted ||
-            aFileDetails->iDRMRightsStatus == ESVGTPreview ||
-            aFileDetails->iDRMRightsStatus == ESVGTExpired)
-            {    
-            // counts
-            TInt retCount = myHelper->GetCount(aFileDetails->iDRMCountsLeft);
-
-            if (retCount == KErrNone)
-                {
-                aFileDetails->iDRMExpireConstraint = ESVGTCount;
-                }
-            
-            // time
-            TInt retTime = myHelper->GetStartTime(aFileDetails->iDRMValidFrom); 
-            retTime = myHelper->GetEndTime(aFileDetails->iDRMValidUntil); 
-
-            if (retTime == KErrNone && retCount == KErrNone)
-                {
-                aFileDetails->iDRMExpireConstraint = ESVGTCountAndTime;
-                }
-            else 
-                {
-                if (retTime == KErrNone)
-                    {
-                    aFileDetails->iDRMExpireConstraint = ESVGTTime;
-                    }
-                }
-      
-             // interval    
-            if (myHelper->GetInterval(aFileDetails->iDRMInterval) == KErrNone)
-                {
-                aFileDetails->iDRMFileHasInterval = ETrue;
-                TTime from;
-                if (myHelper->GetIntervalStart(from) == KErrNone)
-                    {
-                    aFileDetails->iDRMIntervalActive = ETrue;
-                    // active from
-                    aFileDetails->iDRMValidFrom = from;
-                    // calculate rights end time
-                    aFileDetails->iDRMValidUntil = 
-                        aFileDetails->iDRMValidFrom + aFileDetails->iDRMInterval;
-                    }
-                else
-                    {
-                    aFileDetails->iDRMIntervalActive = EFalse;
-                    }
-                }
-            else
-                {
-                aFileDetails->iDRMFileHasInterval = EFalse;
-                aFileDetails->iDRMIntervalActive = EFalse;
-                }
-            }        
-        }
-    
-    // cleanup
-    CleanupStack::PopAndDestroy( myHelper );
-    }
-
-// -----------------------------------------------------------------------------
-// CSvgtFileViewDetailsDialog::AddSinglePartOfTimeL
-// -----------------------------------------------------------------------------
-//
-void CSvgtFileViewDetailsDialog::AddSinglePartOfTimeL( TInt aNumOfElements,
-                                                 TInt aResourceIdSingle,
-                                                 TInt aResourceIdOneFinal, 
-                                                 TInt aResourceIdTwoFour,
-                                                 TInt aResourceIdFiveZero, 
-                                                 HBufC*& aStrings ) const
-    {
-    TInt finalOneDigit = aNumOfElements % KOneDigit;
-    TInt finalTwoDigits = aNumOfElements % KTwoDigits;
-
-    if ( aNumOfElements == 1 )
-        {
-        aStrings = StringLoader::LoadLC( aResourceIdSingle);
-        }
-    else if ( finalOneDigit == KOneDigit1 && finalTwoDigits != KTwoDigit11 )
-        {
-        // Used for period of years ending with 1 from 21 (21, 31, 41, etc.)
-        aStrings = StringLoader::LoadLC( aResourceIdOneFinal, aNumOfElements );
-        }
-    else if ( finalOneDigit == 0 || 
-            ( finalOneDigit >= KOneDigit5 && finalOneDigit <= KOneDigit9 ) ||
-            ( finalTwoDigits >= KTwoDigit11 && finalTwoDigits <= KTwoDigit14 ) )
-        {
-        // Used for period of minutes ending from 5 to 0 plus range between 11 
-        // and 14 (5-20, 25-30, 35-40, 45-50, 53-59)
-        aStrings = StringLoader::LoadLC( aResourceIdFiveZero, aNumOfElements );
-        }
-    else
-        {
-        // Used for period of minutes ending from 2 to 4, excluded 12-14 (2-4,
-        // 22-24, 32-34, 42-44, 52-54)        
-        aStrings = StringLoader::LoadLC( aResourceIdTwoFour, aNumOfElements );
-        }     
-    }
-
-void CSvgtFileViewDetailsDialog::AddResourceFileToEnvL() 
-    {
-    TFileName resFileName;
-    Dll::FileName( resFileName ); // get dll path
-    TDriveName drive( TParsePtrC( resFileName ).Drive( ) ); // solve drive
-    resFileName.Zero();
-    resFileName.Append( drive );
-    resFileName.Append( KDC_RESOURCE_FILES_DIR );
-    resFileName.Append( KResourceFileName );
-
-    iEnv = CEikonEnv::Static();
-    BaflUtils::NearestLanguageFile(iEnv->FsSession(), resFileName); //for localization
-    iEnv->AddResourceFileL(resFileName);
-    RResourceFile resFile;
-    CleanupClosePushL(resFile);
-    resFile.OpenL(iEnv->FsSession(), resFileName);
-    resFile.ConfirmSignatureL();
-    iResOffset = resFile.Offset();
-    CleanupStack::PopAndDestroy(&resFile); //resFile
-    }
-
-    
-//  End of File