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::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;
    }