profilesservices/FileList/Src/CFLDFileListContainer.cpp
author hgs
Thu, 04 Nov 2010 13:38:47 +0800
changeset 68 13e71d907dc3
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
68
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*     A wrapper class, which is part of an example implementation of tone
hgs
parents:
diff changeset
    16
*     selection list. It owns the list box, the model, and the controller,
hgs
parents:
diff changeset
    17
*     and it is used to launch the popup list.
hgs
parents:
diff changeset
    18
*     If you need to use a different list box style or a different file,
hgs
parents:
diff changeset
    19
*     processor replace this class with your own container.
hgs
parents:
diff changeset
    20
*
hgs
parents:
diff changeset
    21
*
hgs
parents:
diff changeset
    22
*/
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// CLASS HEADER
hgs
parents:
diff changeset
    26
#include "CFLDFileListContainer.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// INTERNAL INCLUDES
hgs
parents:
diff changeset
    29
#include "CFLDPopupList.h"
hgs
parents:
diff changeset
    30
#include "CFLDDRMImplementation.h"
hgs
parents:
diff changeset
    31
#include "CFLDBrowserLauncher.h"
hgs
parents:
diff changeset
    32
#include "CFLDSingleGraphicEntryFormatter.h"
hgs
parents:
diff changeset
    33
#include "FLDListBoxTemplate.h"
hgs
parents:
diff changeset
    34
#include "CFLDController.h"
hgs
parents:
diff changeset
    35
#include "CFLDFileListModel.h"
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
// EXTERNAL INCLUDES
hgs
parents:
diff changeset
    38
#include <ConeResLoader.h>
hgs
parents:
diff changeset
    39
#include <StringLoader.h>
hgs
parents:
diff changeset
    40
#include <filelist.rsg>
hgs
parents:
diff changeset
    41
#include <featmgr.h>
hgs
parents:
diff changeset
    42
#include <pathinfo.h>
hgs
parents:
diff changeset
    43
#include <centralrepository.h>
hgs
parents:
diff changeset
    44
#include <ProfileEngineInternalCRKeys.h> // Profiles engine internal Central Repository keys
hgs
parents:
diff changeset
    45
#include <aknlists.h>
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
// CONSTANTS
hgs
parents:
diff changeset
    48
namespace
hgs
parents:
diff changeset
    49
	{
hgs
parents:
diff changeset
    50
	// MIME types
hgs
parents:
diff changeset
    51
	_LIT( KFLDAMRMimeType, "audio/amr" );
hgs
parents:
diff changeset
    52
#ifndef __WMA
hgs
parents:
diff changeset
    53
	_LIT( KFLDAudioWMA, "audio/x-ms-wma" );
hgs
parents:
diff changeset
    54
#endif
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
    _LIT( KFLDResourceFileName, "filelist.rsc" );
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
	// Default delay 1000000 = 1sec
hgs
parents:
diff changeset
    59
	const TInt KDefaultDelay( 1000000 );
hgs
parents:
diff changeset
    60
	}
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    66
// CFLDFileListContainer::NewL
hgs
parents:
diff changeset
    67
// Two-phased constructor.
hgs
parents:
diff changeset
    68
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    69
//
hgs
parents:
diff changeset
    70
EXPORT_C CFLDFileListContainer* CFLDFileListContainer::NewL()
hgs
parents:
diff changeset
    71
    {
hgs
parents:
diff changeset
    72
    CFLDFileListContainer* self = CFLDFileListContainer::NewLC();
hgs
parents:
diff changeset
    73
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
    74
    return self;
hgs
parents:
diff changeset
    75
    }
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    78
// CFLDFileListContainer::NewLC
hgs
parents:
diff changeset
    79
// Two-phased constructor.
hgs
parents:
diff changeset
    80
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    81
//
hgs
parents:
diff changeset
    82
EXPORT_C CFLDFileListContainer* CFLDFileListContainer::NewLC()
hgs
parents:
diff changeset
    83
    {
hgs
parents:
diff changeset
    84
    CFLDFileListContainer* self =
hgs
parents:
diff changeset
    85
        new( ELeave ) CFLDFileListContainer();
hgs
parents:
diff changeset
    86
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
    87
    self->ConstructL( R_FLD_LIST_MODEL, R_FLD_DIRECTORIES );
hgs
parents:
diff changeset
    88
    return self;
hgs
parents:
diff changeset
    89
    }
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    92
// CFLDFileListContainer::NewL
hgs
parents:
diff changeset
    93
// Two-phased constructor.
hgs
parents:
diff changeset
    94
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    95
//
hgs
parents:
diff changeset
    96
EXPORT_C CFLDFileListContainer* CFLDFileListContainer::NewL(
hgs
parents:
diff changeset
    97
    const TInt aResourceId )
hgs
parents:
diff changeset
    98
    {
hgs
parents:
diff changeset
    99
    CFLDFileListContainer* self = CFLDFileListContainer::NewLC(
hgs
parents:
diff changeset
   100
        aResourceId, R_FLD_DIRECTORIES );
hgs
parents:
diff changeset
   101
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
   102
    return self;
hgs
parents:
diff changeset
   103
    }
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   106
// CFLDFileListContainer::NewLC
hgs
parents:
diff changeset
   107
// Two-phased constructor.
hgs
parents:
diff changeset
   108
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   109
//
hgs
parents:
diff changeset
   110
EXPORT_C CFLDFileListContainer* CFLDFileListContainer::NewLC(
hgs
parents:
diff changeset
   111
    const TInt aResourceId )
hgs
parents:
diff changeset
   112
    {
hgs
parents:
diff changeset
   113
    CFLDFileListContainer* self =
hgs
parents:
diff changeset
   114
        new( ELeave ) CFLDFileListContainer();
hgs
parents:
diff changeset
   115
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
   116
    self->ConstructL( aResourceId, R_FLD_DIRECTORIES );
hgs
parents:
diff changeset
   117
    return self;
hgs
parents:
diff changeset
   118
    }
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   121
// CFLDFileListContainer::NewL
hgs
parents:
diff changeset
   122
// Two-phased constructor.
hgs
parents:
diff changeset
   123
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   124
//
hgs
parents:
diff changeset
   125
EXPORT_C CFLDFileListContainer* CFLDFileListContainer::NewL(
hgs
parents:
diff changeset
   126
    const TInt aResourceId, const TInt aDirectoriesResourceId )
hgs
parents:
diff changeset
   127
    {
hgs
parents:
diff changeset
   128
    CFLDFileListContainer* self = CFLDFileListContainer::NewLC(
hgs
parents:
diff changeset
   129
        aResourceId, aDirectoriesResourceId );
hgs
parents:
diff changeset
   130
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
   131
    return self;
hgs
parents:
diff changeset
   132
    }
hgs
parents:
diff changeset
   133
    
hgs
parents:
diff changeset
   134
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   135
// CFLDFileListContainer::NewLC
hgs
parents:
diff changeset
   136
// Two-phased constructor.
hgs
parents:
diff changeset
   137
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   138
//
hgs
parents:
diff changeset
   139
EXPORT_C CFLDFileListContainer* CFLDFileListContainer::NewLC(
hgs
parents:
diff changeset
   140
    const TInt aResourceId, const TInt aDirectoriesResourceId )
hgs
parents:
diff changeset
   141
    {
hgs
parents:
diff changeset
   142
    CFLDFileListContainer* self =
hgs
parents:
diff changeset
   143
        new( ELeave ) CFLDFileListContainer();
hgs
parents:
diff changeset
   144
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
   145
    self->ConstructL( aResourceId, aDirectoriesResourceId );
hgs
parents:
diff changeset
   146
    return self;
hgs
parents:
diff changeset
   147
    }
hgs
parents:
diff changeset
   148
    
hgs
parents:
diff changeset
   149
// Destructor
hgs
parents:
diff changeset
   150
EXPORT_C CFLDFileListContainer::~CFLDFileListContainer()
hgs
parents:
diff changeset
   151
    {
hgs
parents:
diff changeset
   152
    iResourceLoader.Close();
hgs
parents:
diff changeset
   153
    
hgs
parents:
diff changeset
   154
    delete iDRMImplementation;
hgs
parents:
diff changeset
   155
    delete iModel;
hgs
parents:
diff changeset
   156
    delete iController;
hgs
parents:
diff changeset
   157
    FeatureManager::UnInitializeLib();
hgs
parents:
diff changeset
   158
    }
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   161
// CFLDFileListContainer::CFLDFileListContainer
hgs
parents:
diff changeset
   162
// C++ constructor can NOT contain any code, that might leave.
hgs
parents:
diff changeset
   163
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   164
//
hgs
parents:
diff changeset
   165
CFLDFileListContainer::CFLDFileListContainer()
hgs
parents:
diff changeset
   166
	: iResourceLoader( *( CCoeEnv::Static() ) )
hgs
parents:
diff changeset
   167
    {
hgs
parents:
diff changeset
   168
    }
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   171
// CFLDFileListContainer::ConstructL
hgs
parents:
diff changeset
   172
// Symbian 2nd phase constructor can leave.
hgs
parents:
diff changeset
   173
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   174
//
hgs
parents:
diff changeset
   175
void CFLDFileListContainer::ConstructL(
hgs
parents:
diff changeset
   176
 const TInt aResourceId, const TInt aDirectoriesResourceId )
hgs
parents:
diff changeset
   177
    {
hgs
parents:
diff changeset
   178
    // Open Filelist default resource
hgs
parents:
diff changeset
   179
	TFileName* fn = new (ELeave) TFileName
hgs
parents:
diff changeset
   180
		( TParsePtrC( PathInfo::RomRootPath() ).Drive() );
hgs
parents:
diff changeset
   181
	CleanupStack::PushL( fn );
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
	fn->Append( KDC_RESOURCE_FILES_DIR );
hgs
parents:
diff changeset
   184
	fn->Append( KFLDResourceFileName );
hgs
parents:
diff changeset
   185
	iResourceLoader.OpenL( *fn );
hgs
parents:
diff changeset
   186
	CleanupStack::PopAndDestroy( fn );
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
    iModel = CFLDFileListModel::NewL( aResourceId, aDirectoriesResourceId );
hgs
parents:
diff changeset
   189
    CFLDSingleGraphicEntryFormatter* entryFormatter =
hgs
parents:
diff changeset
   190
    	new ( ELeave ) CFLDSingleGraphicEntryFormatter();
hgs
parents:
diff changeset
   191
    iModel->SetEntryFormatter( entryFormatter );
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
	// Add 'download tones' item to model
hgs
parents:
diff changeset
   194
    FeatureManager::InitializeLibL();
hgs
parents:
diff changeset
   195
 	if( FeatureManager::FeatureSupported( KFeatureIdSeamlessLinks ) )
hgs
parents:
diff changeset
   196
        {
hgs
parents:
diff changeset
   197
        // Load 'download tones' text and format it
hgs
parents:
diff changeset
   198
		HBufC* text = StringLoader::LoadLC(
hgs
parents:
diff changeset
   199
			R_FLD_QTN_PROFILES_DOWNLOAD_TONES );
hgs
parents:
diff changeset
   200
		_LIT( KIconIndexAndTab, "1\t" );
hgs
parents:
diff changeset
   201
        HBufC* newText =
hgs
parents:
diff changeset
   202
            text->ReAllocL( text->Length() + KIconIndexAndTab().Length() );
hgs
parents:
diff changeset
   203
        CleanupStack::Pop( text );
hgs
parents:
diff changeset
   204
        CleanupStack::PushL( newText );
hgs
parents:
diff changeset
   205
        TPtr des( newText->Des() );
hgs
parents:
diff changeset
   206
        des.Insert( 0, KIconIndexAndTab );
hgs
parents:
diff changeset
   207
		// Insert formatted 'download tones' text to model
hgs
parents:
diff changeset
   208
        iModel->InsertNullItemL( des, KNullDesC );
hgs
parents:
diff changeset
   209
        CleanupStack::PopAndDestroy( newText );
hgs
parents:
diff changeset
   210
        }
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
	iDRMImplementation = CFLDDRMImplementation::NewL( iModel );
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
	TBool showErrorMsgs( ETrue );
hgs
parents:
diff changeset
   215
    iController = CFLDController::NewL( showErrorMsgs, KDefaultDelay );
hgs
parents:
diff changeset
   216
 	iController->SetFileObserver( iDRMImplementation );
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
	// Following implementation enables disabling recordable ringing tones.
hgs
parents:
diff changeset
   219
	TInt recEnable( 0 );
hgs
parents:
diff changeset
   220
	CRepository* cenrep = CRepository::NewL( KCRUidProfileEngine );
hgs
parents:
diff changeset
   221
    CleanupStack::PushL( cenrep );
hgs
parents:
diff changeset
   222
    User::LeaveIfError( cenrep->Get( KProEngRecordedRingingTones, recEnable ) );
hgs
parents:
diff changeset
   223
    CleanupStack::PopAndDestroy( cenrep );
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
    if( !recEnable )
hgs
parents:
diff changeset
   226
        {
hgs
parents:
diff changeset
   227
        // Recorded tones as ringing tones should be disabled.
hgs
parents:
diff changeset
   228
        // Exclude AMR files.
hgs
parents:
diff changeset
   229
        iModel->AddExclusiveMimeTypeL( KFLDAMRMimeType );
hgs
parents:
diff changeset
   230
        }
hgs
parents:
diff changeset
   231
    }
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   234
// CFLDFileListContainer::SetAutomatedType()
hgs
parents:
diff changeset
   235
// (other items were commented in a header).
hgs
parents:
diff changeset
   236
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   237
//
hgs
parents:
diff changeset
   238
EXPORT_C void CFLDFileListContainer::SetAutomatedType(
hgs
parents:
diff changeset
   239
 CDRMHelper::TDRMHelperAutomatedType aAutomatedType )
hgs
parents:
diff changeset
   240
	{
hgs
parents:
diff changeset
   241
	iDRMImplementation->SetAutomatedType( aAutomatedType );
hgs
parents:
diff changeset
   242
	}
hgs
parents:
diff changeset
   243
hgs
parents:
diff changeset
   244
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   245
// CFLDFileListContainer::LaunchL()
hgs
parents:
diff changeset
   246
// (other items were commented in a header).
hgs
parents:
diff changeset
   247
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   248
//
hgs
parents:
diff changeset
   249
EXPORT_C TBool CFLDFileListContainer::LaunchL( TDes& aFileName, const TDesC& aPopupTitle )
hgs
parents:
diff changeset
   250
    {
hgs
parents:
diff changeset
   251
    // Update the list
hgs
parents:
diff changeset
   252
	iModel->RefreshEntryListL();
hgs
parents:
diff changeset
   253
hgs
parents:
diff changeset
   254
    CEikFormattedCellListBox* listBox = NULL;
hgs
parents:
diff changeset
   255
        listBox = new( ELeave ) FLDListBoxTemplate
hgs
parents:
diff changeset
   256
        	<CAknSingleGraphicBtPopupMenuStyleListBox>( *iController, *iModel );
hgs
parents:
diff changeset
   257
    CleanupStack::PushL( listBox );
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
    // Create the popup list
hgs
parents:
diff changeset
   260
    CFLDPopupList* popup = CFLDPopupList::NewL( listBox,
hgs
parents:
diff changeset
   261
        R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT,
hgs
parents:
diff changeset
   262
        *iDRMImplementation, iController,
hgs
parents:
diff changeset
   263
        *iModel, AknPopupLayouts::EMenuGraphicWindow );
hgs
parents:
diff changeset
   264
    // EMenuGraphicWindow for CAknSingleGraphicBtPopupMenuStyleListBox
hgs
parents:
diff changeset
   265
    CleanupStack::PushL( popup );
hgs
parents:
diff changeset
   266
hgs
parents:
diff changeset
   267
	static_cast<FLDListBoxTemplate
hgs
parents:
diff changeset
   268
		 <CAknSingleGraphicBtPopupMenuStyleListBox> *>( listBox )
hgs
parents:
diff changeset
   269
		 ->SetListBox( popup );
hgs
parents:
diff changeset
   270
hgs
parents:
diff changeset
   271
	// Video player can be fully constructed only when popup list
hgs
parents:
diff changeset
   272
	// is constructed
hgs
parents:
diff changeset
   273
	iController->CompleteConstructionL( popup->PopupListWindow() );
hgs
parents:
diff changeset
   274
hgs
parents:
diff changeset
   275
	// Set popup to Model
hgs
parents:
diff changeset
   276
	iModel->SetPopupList( popup );
hgs
parents:
diff changeset
   277
hgs
parents:
diff changeset
   278
    popup->SetTitleL( aPopupTitle );
hgs
parents:
diff changeset
   279
hgs
parents:
diff changeset
   280
    listBox->ConstructL( popup,
hgs
parents:
diff changeset
   281
        EAknListBoxSelectionList | EAknListBoxLoopScrolling );
hgs
parents:
diff changeset
   282
hgs
parents:
diff changeset
   283
    // Create the scroll indicator
hgs
parents:
diff changeset
   284
    listBox->CreateScrollBarFrameL( ETrue );
hgs
parents:
diff changeset
   285
    listBox->ScrollBarFrame()->SetScrollBarVisibilityL(
hgs
parents:
diff changeset
   286
        CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
hgs
parents:
diff changeset
   287
hgs
parents:
diff changeset
   288
    // Set the listbox to use the the file list model
hgs
parents:
diff changeset
   289
    listBox->Model()->SetItemTextArray( iModel );
hgs
parents:
diff changeset
   290
    listBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
    // Refresh the listbox due to model change
hgs
parents:
diff changeset
   293
    listBox->HandleItemAdditionL();
hgs
parents:
diff changeset
   294
hgs
parents:
diff changeset
   295
	popup->PopulateIconArrayL();
hgs
parents:
diff changeset
   296
hgs
parents:
diff changeset
   297
    // If a filename was given, set focus on it
hgs
parents:
diff changeset
   298
    if ( aFileName != KNullDesC )
hgs
parents:
diff changeset
   299
        {
hgs
parents:
diff changeset
   300
        TInt index = iModel->FindFileL( aFileName );
hgs
parents:
diff changeset
   301
        if ( index != KErrNotFound )
hgs
parents:
diff changeset
   302
            {
hgs
parents:
diff changeset
   303
            listBox->SetCurrentItemIndex( index );
hgs
parents:
diff changeset
   304
            }
hgs
parents:
diff changeset
   305
        }
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
    popup->ListBox()->DisableSingleClick(ETrue);
hgs
parents:
diff changeset
   308
    TBool result = popup->ExecuteLD();
hgs
parents:
diff changeset
   309
	// Note, CAknPopupList must NOT be popped out
hgs
parents:
diff changeset
   310
	// before ExecuteLD (like dialogs do) but after.
hgs
parents:
diff changeset
   311
    CleanupStack::Pop( popup );
hgs
parents:
diff changeset
   312
hgs
parents:
diff changeset
   313
	// Reset popup pointer
hgs
parents:
diff changeset
   314
	iModel->SetPopupList( NULL );
hgs
parents:
diff changeset
   315
hgs
parents:
diff changeset
   316
    if ( result )
hgs
parents:
diff changeset
   317
        {
hgs
parents:
diff changeset
   318
        TInt selectedIndex( listBox->CurrentItemIndex() );
hgs
parents:
diff changeset
   319
hgs
parents:
diff changeset
   320
		// Check if the selected item is 'Download tones' or regular ringingtone
hgs
parents:
diff changeset
   321
		TFileName selectedFileName( KNullDesC );
hgs
parents:
diff changeset
   322
		iModel->GetFileName( selectedFileName, selectedIndex );
hgs
parents:
diff changeset
   323
hgs
parents:
diff changeset
   324
        // If there is such a model that has no 'Download tones' item but
hgs
parents:
diff changeset
   325
        // seamless links are supported, we have to check that selectedFileName
hgs
parents:
diff changeset
   326
        // is really ringingtone (it is not a null item)
hgs
parents:
diff changeset
   327
        if( selectedIndex == 0 &&
hgs
parents:
diff changeset
   328
            FeatureManager::FeatureSupported( KFeatureIdSeamlessLinks ) &&
hgs
parents:
diff changeset
   329
            selectedFileName.Length() == 0 )
hgs
parents:
diff changeset
   330
            {
hgs
parents:
diff changeset
   331
            // User selected the first item "Download tones". Launch browser.
hgs
parents:
diff changeset
   332
            CFLDBrowserLauncher* launcher = CFLDBrowserLauncher::NewLC();
hgs
parents:
diff changeset
   333
            launcher->LaunchBrowserL();
hgs
parents:
diff changeset
   334
            CleanupStack::PopAndDestroy(); // launcher
hgs
parents:
diff changeset
   335
            result = EFalse; // No tone was selected
hgs
parents:
diff changeset
   336
            }
hgs
parents:
diff changeset
   337
        else
hgs
parents:
diff changeset
   338
            {
hgs
parents:
diff changeset
   339
            // Any other choice. Copy selected file name to aFileName.
hgs
parents:
diff changeset
   340
            iModel->GetFileName( aFileName, selectedIndex );
hgs
parents:
diff changeset
   341
            }
hgs
parents:
diff changeset
   342
        }
hgs
parents:
diff changeset
   343
hgs
parents:
diff changeset
   344
    CleanupStack::PopAndDestroy(); // listBox
hgs
parents:
diff changeset
   345
hgs
parents:
diff changeset
   346
    return result;
hgs
parents:
diff changeset
   347
    }
hgs
parents:
diff changeset
   348
hgs
parents:
diff changeset
   349
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   350
// CFLDFileListContainer::InsertNullItemL()
hgs
parents:
diff changeset
   351
// (other items were commented in a header).
hgs
parents:
diff changeset
   352
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   353
//
hgs
parents:
diff changeset
   354
EXPORT_C void CFLDFileListContainer::InsertNullItemL(
hgs
parents:
diff changeset
   355
 const TDesC& aItemText )
hgs
parents:
diff changeset
   356
    {
hgs
parents:
diff changeset
   357
    iModel->InsertNullItemL( aItemText );
hgs
parents:
diff changeset
   358
    }
hgs
parents:
diff changeset
   359
hgs
parents:
diff changeset
   360
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   361
// CFLDFileListContainer::InsertNullItemL()
hgs
parents:
diff changeset
   362
// (other items were commented in a header).
hgs
parents:
diff changeset
   363
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   364
//
hgs
parents:
diff changeset
   365
EXPORT_C void CFLDFileListContainer::InsertNullItemL(
hgs
parents:
diff changeset
   366
 const TDesC& aItemText, const TDesC& aFileName )
hgs
parents:
diff changeset
   367
    {
hgs
parents:
diff changeset
   368
    iModel->InsertNullItemL( aItemText, aFileName );
hgs
parents:
diff changeset
   369
    }
hgs
parents:
diff changeset
   370
hgs
parents:
diff changeset
   371
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   372
// CFLDFileListContainer::InsertEndNullItemL()
hgs
parents:
diff changeset
   373
// (other items were commented in a header).
hgs
parents:
diff changeset
   374
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   375
//
hgs
parents:
diff changeset
   376
EXPORT_C void CFLDFileListContainer::InsertEndNullItemL(
hgs
parents:
diff changeset
   377
 const TDesC& aItemText )
hgs
parents:
diff changeset
   378
    {
hgs
parents:
diff changeset
   379
    iModel->InsertEndNullItemL( aItemText );
hgs
parents:
diff changeset
   380
    }
hgs
parents:
diff changeset
   381
hgs
parents:
diff changeset
   382
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   383
// CFLDFileListContainer::InsertEndNullItemL()
hgs
parents:
diff changeset
   384
// (other items were commented in a header).
hgs
parents:
diff changeset
   385
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   386
//
hgs
parents:
diff changeset
   387
EXPORT_C void CFLDFileListContainer::InsertEndNullItemL(
hgs
parents:
diff changeset
   388
 const TDesC& aItemText, const TDesC& aFileName )
hgs
parents:
diff changeset
   389
    {
hgs
parents:
diff changeset
   390
    iModel->InsertEndNullItemL( aItemText, aFileName );
hgs
parents:
diff changeset
   391
    }
hgs
parents:
diff changeset
   392
hgs
parents:
diff changeset
   393
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   394
// CFLDFileListContainer::SetDelay()
hgs
parents:
diff changeset
   395
// (other items were commented in a header).
hgs
parents:
diff changeset
   396
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   397
//
hgs
parents:
diff changeset
   398
EXPORT_C void CFLDFileListContainer::SetDelay( TTimeIntervalMicroSeconds32 aDelay )
hgs
parents:
diff changeset
   399
    {
hgs
parents:
diff changeset
   400
    iController->SetDelay( aDelay );
hgs
parents:
diff changeset
   401
    }
hgs
parents:
diff changeset
   402
hgs
parents:
diff changeset
   403
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   404
// CFLDFileListContainer::SetVolume()
hgs
parents:
diff changeset
   405
// (other items were commented in a header).
hgs
parents:
diff changeset
   406
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   407
//
hgs
parents:
diff changeset
   408
EXPORT_C void CFLDFileListContainer::SetVolume( TInt aVolume )
hgs
parents:
diff changeset
   409
    {
hgs
parents:
diff changeset
   410
    iController->SetVolume( aVolume );
hgs
parents:
diff changeset
   411
    }
hgs
parents:
diff changeset
   412
hgs
parents:
diff changeset
   413
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   414
// CFLDFileListContainer::SetRingingType()
hgs
parents:
diff changeset
   415
// (other items were commented in a header).
hgs
parents:
diff changeset
   416
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   417
//
hgs
parents:
diff changeset
   418
EXPORT_C void CFLDFileListContainer::SetRingingType( TInt aRingingType )
hgs
parents:
diff changeset
   419
    {
hgs
parents:
diff changeset
   420
    iController->SetRingingType( aRingingType );
hgs
parents:
diff changeset
   421
    }
hgs
parents:
diff changeset
   422
hgs
parents:
diff changeset
   423
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   424
// CFLDFileListContainer::SetVibra()
hgs
parents:
diff changeset
   425
// (other items were commented in a header).
hgs
parents:
diff changeset
   426
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   427
//
hgs
parents:
diff changeset
   428
EXPORT_C void CFLDFileListContainer::SetVibra( TBool aVibra )
hgs
parents:
diff changeset
   429
    {
hgs
parents:
diff changeset
   430
    iController->SetVibra( aVibra );
hgs
parents:
diff changeset
   431
    }
hgs
parents:
diff changeset
   432
hgs
parents:
diff changeset
   433
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   434
// CFLDFileListContainer::Set3dEffects()
hgs
parents:
diff changeset
   435
// (other items were commented in a header).
hgs
parents:
diff changeset
   436
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   437
//    
hgs
parents:
diff changeset
   438
EXPORT_C void CFLDFileListContainer::Set3dEffects( TBool a3dEffects )
hgs
parents:
diff changeset
   439
	{
hgs
parents:
diff changeset
   440
	iController->Set3dEffects( a3dEffects );
hgs
parents:
diff changeset
   441
	}
hgs
parents:
diff changeset
   442
hgs
parents:
diff changeset
   443
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   444
// CFLDFileListContainer::AddExclusiveMimeTypeL()
hgs
parents:
diff changeset
   445
// (other items were commented in a header).
hgs
parents:
diff changeset
   446
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   447
//
hgs
parents:
diff changeset
   448
EXPORT_C void CFLDFileListContainer::AddExclusiveMimeTypeL( const TDesC& aMimeType )
hgs
parents:
diff changeset
   449
	{
hgs
parents:
diff changeset
   450
	iModel->AddExclusiveMimeTypeL( aMimeType );
hgs
parents:
diff changeset
   451
	}
hgs
parents:
diff changeset
   452
hgs
parents:
diff changeset
   453
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   454
// CFLDFileListContainer::AddExclusiveMediaTypeL()
hgs
parents:
diff changeset
   455
// (other items were commented in a header).
hgs
parents:
diff changeset
   456
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   457
//
hgs
parents:
diff changeset
   458
EXPORT_C void CFLDFileListContainer::AddExclusiveMediaTypeL( const TInt32 aMediaType )
hgs
parents:
diff changeset
   459
	{
hgs
parents:
diff changeset
   460
	iModel->AddExclusiveMediaTypeL( aMediaType );
hgs
parents:
diff changeset
   461
	}
hgs
parents:
diff changeset
   462
hgs
parents:
diff changeset
   463
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   464
// CFLDFileListContainer::SetWantedMimeTypesL()
hgs
parents:
diff changeset
   465
// (other items were commented in a header).
hgs
parents:
diff changeset
   466
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   467
//
hgs
parents:
diff changeset
   468
EXPORT_C void CFLDFileListContainer::SetWantedMimeTypesL( const MDesCArray& aMimeTypes )
hgs
parents:
diff changeset
   469
	{
hgs
parents:
diff changeset
   470
	iModel->SetWantedMimeTypesL( aMimeTypes );
hgs
parents:
diff changeset
   471
	}
hgs
parents:
diff changeset
   472
hgs
parents:
diff changeset
   473
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   474
// CFLDFileListContainer::SetWantedMediaTypesL()
hgs
parents:
diff changeset
   475
// (other items were commented in a header).
hgs
parents:
diff changeset
   476
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   477
//
hgs
parents:
diff changeset
   478
EXPORT_C void CFLDFileListContainer::SetWantedMediaTypesL( const TArray<TCLFMediaType>& aMediaTypes )
hgs
parents:
diff changeset
   479
	{
hgs
parents:
diff changeset
   480
	iModel->SetWantedMediaTypesL( aMediaTypes );
hgs
parents:
diff changeset
   481
	}
hgs
parents:
diff changeset
   482
hgs
parents:
diff changeset
   483
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   484
// CFLDFileListContainer::SetWantedMimeTypesL()
hgs
parents:
diff changeset
   485
// (other items were commented in a header).
hgs
parents:
diff changeset
   486
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   487
//
hgs
parents:
diff changeset
   488
EXPORT_C void CFLDFileListContainer::ResetExclusiveMimeTypes()
hgs
parents:
diff changeset
   489
	{
hgs
parents:
diff changeset
   490
	iModel->ResetExclusiveMimeTypes();
hgs
parents:
diff changeset
   491
	}
hgs
parents:
diff changeset
   492
hgs
parents:
diff changeset
   493
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   494
// CFLDFileListContainer::SetWantedMimeTypesL()
hgs
parents:
diff changeset
   495
// (other items were commented in a header).
hgs
parents:
diff changeset
   496
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   497
//
hgs
parents:
diff changeset
   498
EXPORT_C void CFLDFileListContainer::ResetExclusiveMediaTypes()
hgs
parents:
diff changeset
   499
	{
hgs
parents:
diff changeset
   500
	iModel->ResetExclusiveMediaTypes();
hgs
parents:
diff changeset
   501
	}
hgs
parents:
diff changeset
   502
hgs
parents:
diff changeset
   503
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   504
// CFLDFileListContainer::SetMaxFileSize()
hgs
parents:
diff changeset
   505
// (other items were commented in a header).
hgs
parents:
diff changeset
   506
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   507
//
hgs
parents:
diff changeset
   508
EXPORT_C void CFLDFileListContainer::SetMaxFileSize( const TInt aMaxFileSize )
hgs
parents:
diff changeset
   509
    {
hgs
parents:
diff changeset
   510
    iModel->SetMaxFileSize( aMaxFileSize );
hgs
parents:
diff changeset
   511
    }	
hgs
parents:
diff changeset
   512
hgs
parents:
diff changeset
   513
hgs
parents:
diff changeset
   514
//  End of File