void CFileSelectionSettingItem::EditItemL(TBool /*aCalledFromMenu*/)
{
    // Select drive
    CAknMemorySelectionDialogMultiDrive* memSelectionDialog = CAknMemorySelectionDialogMultiDrive::NewL
            (ECFDDialogTypeNormal, /*aShowUnavailableDrives*/EFalse);
    CleanupStack::PushL(memSelectionDialog);

    TDriveNumber mem;
    TFileName memRootPath;

    TInt ret = memSelectionDialog->ExecuteL(mem, &iOwnedFileName, NULL);
    CleanupStack::PopAndDestroy(memSelectionDialog);
    if (!ret) return;

    // Select file on the selected drive
    CAknFileSelectionDialog* fileSelectionDialog =
        CAknFileSelectionDialog::NewL(iDialogType);
    CleanupStack::PushL(fileSelectionDialog);

    fileSelectionDialog->SetTitleL(_L("Download files to"));
    fileSelectionDialog->SetLeftSoftkeyFileL(_L("Select"));

    // launch file select dialog
    TBool result = fileSelectionDialog->ExecuteL(iOwnedFileName);
    CleanupStack::PopAndDestroy(fileSelectionDialog);

    if (result)
        iFileName = iOwnedFileName;
}
// ---------------------------------------------------------------------------
// CAknMemorySelectionDialogMultiDrive::NewL
// ---------------------------------------------------------------------------
//
EXPORT_C CAknMemorySelectionDialogMultiDrive*
    CAknMemorySelectionDialogMultiDrive::NewL(
        TCommonDialogType aDialogType,
        TInt aResourceId,
        TBool aShowUnavailableDrives )
    {
    if( aDialogType == ECFDDialogTypeDefaultSetting )
        {
    	User::Leave( KErrNotSupported );
        }
    CAknMemorySelectionDialogMultiDrive* self =
        new( ELeave ) CAknMemorySelectionDialogMultiDrive( aDialogType );
    CleanupStack::PushL( self );
    self->ConstructFromResourceL( aResourceId, aShowUnavailableDrives );
    CleanupStack::Pop(); // self
    return self;
    }
// ---------------------------------------------------------------------------
// CAknMemorySelectionDialogMultiDrive::RunL
// ---------------------------------------------------------------------------
//
TBool CAknMemorySelectionDialogMultiDrive::RunL(
    TInt aResourceId,
    TDriveNumber& aSelectedDrive,
    TDes* aRootPath,
    TDes* aDefaultFolder,
    const TDesC& aTitle
    )
    {
    CAknMemorySelectionDialogMultiDrive* self =
        CAknMemorySelectionDialogMultiDrive::NewL(
            ECFDDialogTypeNormal, aResourceId, ETrue );
    CleanupStack::PushL( self );

    self->SetTitleL( aTitle );

    TBool returnValue(
        self->ExecuteL( aSelectedDrive, aRootPath, aDefaultFolder ) );

    CleanupStack::PopAndDestroy();
    return returnValue;
    }