diff -r 8bda91a87a00 -r 8ee96d21d9bf profilesservices/MediaFileList/Src/mediafiledialogutils.cpp --- a/profilesservices/MediaFileList/Src/mediafiledialogutils.cpp Thu Aug 19 10:12:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1132 +0,0 @@ -/* -* Copyright (c) 2007 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: Basic functionality of MediaFileList. -* -*/ - - - -// INCLUDE FILES - -#include "mediafiledialogutils.h" - - -#include // bafl.lib -#include -#include -#include - -#include // CAknNavigationDecorator -#include // CAknNaviLabel -#include // CAknTitlePane -#include -#include -#include // AknsUtils - -// for CWebBrowserLauncher -#include -#include -#include - - -#include -#include // KDC_APP_RESOURCE_DIR - - - - -/****************************************************************************** - * class TMFDialogUtil - ******************************************************************************/ - - -// ----------------------------------------------------------------------------- -// TMFDialogUtil::StrCopy -// -// ----------------------------------------------------------------------------- -// -void TMFDialogUtil::StrCopy( TDes& aTarget, const TDesC& aSource ) - { - TInt len = aTarget.MaxLength(); - if( len < aSource.Length() ) - { - aTarget.Copy( aSource.Left(len) ); - return; - } - aTarget.Copy( aSource ); - } - - -// ----------------------------------------------------------------------------- -// TMFDialogUtil::Panic -// -// ----------------------------------------------------------------------------- -// -void TMFDialogUtil::Panic( TInt aReason ) - { - _LIT( KPanicCategory, "TMFDialogUtil" ); - - User::Panic( KPanicCategory, aReason ); - } - - -//------------------------------------------------------------------------------ -// TMFDialogUtil::ShowInformationNoteL -// -//------------------------------------------------------------------------------ -// -void TMFDialogUtil::ShowInformationNoteL( TInt aResource ) - { - HBufC* hBuf = StringLoader::LoadLC( aResource ); - ShowInformationNoteL( hBuf->Des() ); - CleanupStack::PopAndDestroy( hBuf ); - } - - -//------------------------------------------------------------------------------ -// TMFDialogUtil::ShowInformationNoteL -// -//------------------------------------------------------------------------------ -// -void TMFDialogUtil::ShowInformationNoteL( const TDesC& aText ) - { - CAknInformationNote* queryDialog = new (ELeave) CAknInformationNote( ETrue ); - queryDialog->ExecuteLD( aText ); - } - - -//------------------------------------------------------------------------------ -// TMFDialogUtil::ShowInformationQueryL -// -//------------------------------------------------------------------------------ -// -void TMFDialogUtil::ShowInformationQueryL( const TDesC& aText ) - { - CAknQueryDialog* queryDialog = new (ELeave) CAknQueryDialog; - queryDialog->ExecuteLD( R_INFORMATION_QUERY, aText ); - } - - -//------------------------------------------------------------------------------ -// TMFDialogUtil::ShowInformationQueryL -// -//------------------------------------------------------------------------------ -// -void TMFDialogUtil::ShowInformationQueryL( TInt aResource ) - { - HBufC* hBuf = StringLoader::LoadLC( aResource ); - ShowInformationQueryL( hBuf->Des() ); - CleanupStack::PopAndDestroy( hBuf ); - } - -//------------------------------------------------------------------------------ -// TMFDialogUtil::ShowErrorNoteL -// -//------------------------------------------------------------------------------ -// -void TMFDialogUtil::ShowErrorNoteL( TInt aResource ) - { - HBufC* hBuf = StringLoader::LoadLC( aResource ); - ShowErrorNoteL( hBuf->Des() ); - CleanupStack::PopAndDestroy( hBuf ); - } - - -//------------------------------------------------------------------------------ -// TMFDialogUtil::ShowErrorNoteL -// -//------------------------------------------------------------------------------ -// -void TMFDialogUtil::ShowErrorNoteL( const TDesC& aText ) - { - CAknErrorNote* errorNote = new (ELeave) CAknErrorNote(ETrue); - errorNote->ExecuteLD( aText ); - } - - -//------------------------------------------------------------------------------ -// TMFDialogUtil::ShowErrorNoteL -// -//------------------------------------------------------------------------------ -// -void TMFDialogUtil::ShowErrorNoteL( const TDesC& aText, TInt aError ) - { - _LIT( KFormat, "%S (%d)" ); - - TInt len = aText.Length(); - HBufC* hBuf = HBufC::NewLC( len + KBufSize64 ); - - TPtr ptr = hBuf->Des(); - ptr.Format( KFormat, &aText, aError); - - ShowErrorNoteL( ptr ); - - CleanupStack::PopAndDestroy( hBuf ); - } - -//------------------------------------------------------------------------------ -// ShowNumberQueryL -// -//------------------------------------------------------------------------------ -// -TBool TMFDialogUtil::ShowNumberQueryL( TInt& aNumber, const TDesC& aTitle ) - { - CAknNumberQueryDialog* queryDialog = CAknNumberQueryDialog::NewL(aNumber); - - if ( aTitle.Length() > 1 ) - { - CleanupStack::PushL( queryDialog ); - queryDialog->SetPromptL( aTitle ); - CleanupStack::Pop( queryDialog ); - } - - return queryDialog->ExecuteLD( R_NUMBER_QUERY ); - } - - -// ----------------------------------------------------------------------------- -// TMFDialogUtil::ShowListQueryL -// -// ----------------------------------------------------------------------------- -TBool TMFDialogUtil::ShowListQueryL( const TDesC& aTitle, CDesCArray* aList, - TInt* aSelectedIndex ) - { - CAknListQueryDialog* query = new (ELeave) CAknListQueryDialog( aSelectedIndex ); - CleanupStack::PushL( query ); - - query->PrepareLC( R_LIST_QUERY ); - query->SetItemTextArray( aList ); - query->SetOwnershipType( ELbmDoesNotOwnItemArray ); - CAknPopupHeadingPane* headingPane = query->QueryHeading(); - headingPane->SetTextL( aTitle ); - - CleanupStack::Pop( query ); - - return query->RunLD(); - } - - -// ----------------------------------------------------------------------------- -// TMFDialogUtil::AddResFileL -// -// ----------------------------------------------------------------------------- -// -TInt TMFDialogUtil::AddResFileL() - { - _LIT( KDriveZ, "z:" ); - _LIT( KResFileName, "mediafilelist.rsc" ); - - TFileName fileName; - fileName.Append( KDriveZ ); - fileName.Append( KDC_RESOURCE_FILES_DIR ); - fileName.Append( KResFileName ); - - CEikonEnv* env = CEikonEnv::Static(); - BaflUtils::NearestLanguageFile( env->FsSession(), fileName ); - - return env->AddResourceFileL( fileName ); - } - - -// ---------------------------------------------------------------------------- -// TMFDialogUtil::SetIconFileNameL -// -// ---------------------------------------------------------------------------- -// -void TMFDialogUtil::SetIconFileNameL( const TDesC& aName, TDes& aFullName ) - { - _LIT( KDriveZ, "z:" ); - - aFullName = KNullDesC; - - aFullName.Append( KDriveZ ); - aFullName.Append( KDC_APP_RESOURCE_DIR ); - aFullName.Append( aName ); - } - - -// ----------------------------------------------------------------------------- -// TMFDialogUtil::CreateImageL -// -// ----------------------------------------------------------------------------- -// -CEikImage* TMFDialogUtil::CreateImageLC( TAknsItemID aId, const TDesC& aFileName, - TInt aFileBitmapId, TInt aFileMaskId ) - { - CFbsBitmap* bitmap1 = NULL; - CFbsBitmap* bitmap2 = NULL; - - CEikImage* image = new (ELeave) CEikImage; - CleanupStack::PushL( image ); - - AknsUtils::CreateIconLC( AknsUtils::SkinInstance(), aId, bitmap1, bitmap2, - aFileName, aFileBitmapId, aFileMaskId ); - image->SetPicture( bitmap1, bitmap2 ); - CleanupStack::Pop(2); // bitmap1 bitmap2 - - return image; - } - -// ------------------------------------------------------------------------------- -// TMFDialogUtil::IsEmpty -// -// Function returns ETrue if string only contains white space or has -// no characters. -// ------------------------------------------------------------------------------- -// -TBool TMFDialogUtil::IsEmpty( const TDesC& aText ) - { - TInt len = aText.Length(); - - for ( TInt i=0; iConstructL(); - CleanupStack::Pop( self ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// Destructor -// -// ----------------------------------------------------------------------------- -// -CMFActiveCaller::~CMFActiveCaller() - { - Cancel(); - iTimer.Close(); - } - - -// ----------------------------------------------------------------------------- -// CMFActiveCaller::CMFActiveCaller -// -// ----------------------------------------------------------------------------- -// -CMFActiveCaller::CMFActiveCaller(MMFActiveCallerObserver* aObserver) : CActive(CActive::EPriorityStandard) - { - iObserver = aObserver; - } - - -// ----------------------------------------------------------------------------- -// CMFActiveCaller::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CMFActiveCaller::ConstructL() - { - User::LeaveIfError( iTimer.CreateLocal() ); - CActiveScheduler::Add( this ); - } - - -// ----------------------------------------------------------------------------- -// CMFActiveCaller::DoCancel -// -// ----------------------------------------------------------------------------- -// -void CMFActiveCaller::DoCancel() - { - iTimer.Cancel(); - } - - -// ----------------------------------------------------------------------------- -// CMFActiveCaller::RunL -// -// ----------------------------------------------------------------------------- -// -void CMFActiveCaller::RunL() - { - TRAP_IGNORE( iObserver->HandleActiveCallL( iCallId ) ); - } - - -// ----------------------------------------------------------------------------- -// CMFActiveCaller::Request -// -// This function calls this class RunL. -// ----------------------------------------------------------------------------- -// -void CMFActiveCaller::Request() - { - Cancel(); - SetActive(); - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CMFActiveCaller::Start -// -// ----------------------------------------------------------------------------- -// -void CMFActiveCaller::Start( TInt aCallId, TInt aMilliseconds ) - { - const TInt KThousand = 1000; - Cancel(); - - iCallId = aCallId; - - if ( aMilliseconds <= 0 ) - { - Request(); // no delay - complete asap - } - else - { - iTimer.After( iStatus, aMilliseconds*KThousand ); - SetActive(); - } - } - - -// ----------------------------------------------------------------------------- -// CMFActiveCaller::Stop -// -// ----------------------------------------------------------------------------- -// -void CMFActiveCaller::Stop() - { - Cancel(); - } - - - - -/******************************************************************************* - * class CNaviPaneHandler - *******************************************************************************/ - - -// ----------------------------------------------------------------------------- -// Destructor -// -// ----------------------------------------------------------------------------- -// -CNaviPaneHandler::~CNaviPaneHandler() - { - if ( iNaviDecorator ) - { - if ( iNaviPane && iNavidecoratorPushed ) - { - iNaviPane->Pop( iNaviDecorator ); - } - - delete iNaviDecorator; - } - - if ( iNaviPane && iNavipanePushed ) - { - iNaviPane->Pop(); // restore previous navi pane - } - } - - -// ----------------------------------------------------------------------------- -// CNaviPaneHandler::CNaviPaneHandler -// -// ----------------------------------------------------------------------------- -// -CNaviPaneHandler::CNaviPaneHandler( CEikStatusPane* aStatusPane ) : iStatusPane( aStatusPane ) - { - iNavidecoratorPushed = EFalse; - iNavipanePushed = EFalse; - - if ( iStatusPane ) - { - TRAP_IGNORE( iNaviPane = (CAknNavigationControlContainer*)iStatusPane->ControlL(TUid::Uid(EEikStatusPaneUidNavi)) ); - } - } - - -// ---------------------------------------------------------------------------- -// CNaviPaneHandler::SetNaviPaneTitleL -// -// ---------------------------------------------------------------------------- -// -void CNaviPaneHandler::SetNaviPaneTitleL(const TDesC& aTitle) - { - if ( !iStatusPane || !iNaviPane ) - { - return; - } - - if ( iNaviDecorator ) - { - CAknNaviLabel* naviLabel = static_cast(iNaviDecorator->DecoratedControl()); - if ( naviLabel ) - { - naviLabel->SetTextL( aTitle ); - iNaviDecorator->DrawDeferred(); - } - } - else - { - iNaviDecorator = iNaviPane->CreateNavigationLabelL( aTitle ) ; - iNaviPane->PushL( *iNaviDecorator ); // activate navi label in navi pane - iNavidecoratorPushed = ETrue; - } - } - - -// ---------------------------------------------------------------------------- -// CNaviPaneHandler::StoreNavipaneL -// -// ---------------------------------------------------------------------------- -// -void CNaviPaneHandler::StoreNavipaneL() - { - if ( !iNaviPane || !iStatusPane || iNavipanePushed ) - { - return; - } - - if ( iStatusPane->PaneCapabilities(TUid::Uid(EEikStatusPaneUidTitle)).IsPresent() ) - { - iNaviPane->PushDefaultL(); - iNavipanePushed = ETrue; - } - } - - - - -/******************************************************************************* - * class CStatusPaneHandler - *******************************************************************************/ - -// ----------------------------------------------------------------------------- -// CStatusPaneHandler::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CStatusPaneHandler* CStatusPaneHandler::NewL( CAknAppUi* aAppUi ) - { - CStatusPaneHandler* self = new (ELeave) CStatusPaneHandler( aAppUi ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// ----------------------------------------------------------------------------- -// Destructor -// -// ----------------------------------------------------------------------------- -// -CStatusPaneHandler::~CStatusPaneHandler() - { - TRAP_IGNORE( RestoreOriginalTitleL() ); - - delete iNaviPaneHandler; - } - - -// ----------------------------------------------------------------------------- -// CStatusPaneHandler::ConstructL -// -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CStatusPaneHandler::ConstructL() - { - iNaviPaneHandler = new (ELeave) CNaviPaneHandler( iAppUi->StatusPane() ); - } - - -// ----------------------------------------------------------------------------- -// CStatusPaneHandler::CStatusPaneHandler -// -// ----------------------------------------------------------------------------- -// -CStatusPaneHandler::CStatusPaneHandler( CAknAppUi* aAppUi ) : iAppUi(aAppUi ) - { - __ASSERT_ALWAYS( iAppUi, TMFDialogUtil::Panic( KErrGeneral ) ); - - iOriginalTitleStored = EFalse; - iOriginalTitle = KNullDesC; - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::GetTitleL -// -// ---------------------------------------------------------------------------- -// -TBool CStatusPaneHandler::GetTitleL( CAknAppUi* aAppUi, TDes& aTitle ) - { - aTitle = KNullDesC; - - CEikStatusPane* statusPane = aAppUi->StatusPane(); - if (statusPane && statusPane->PaneCapabilities( TUid::Uid( EEikStatusPaneUidTitle ) ).IsPresent() ) - { - CAknTitlePane* titlePane = static_cast - ( statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); - if ( titlePane->Text() ) - { - TMFDialogUtil::StrCopy( aTitle, *titlePane->Text() ); - return ETrue; - } - } - - return EFalse; - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::SetTitleL -// -// ---------------------------------------------------------------------------- -// -TBool CStatusPaneHandler::SetTitleL( CAknAppUi* aAppUi, const TDesC& aTitle ) - { - CEikStatusPane* statusPane = aAppUi->StatusPane(); - if ( statusPane && statusPane->PaneCapabilities( TUid::Uid( EEikStatusPaneUidTitle ) ).IsPresent() ) - { - CAknTitlePane* titlePane = static_cast - ( statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ); - if ( titlePane->Text() ) - { - titlePane->SetTextL( aTitle ); - return ETrue; - } - } - return EFalse; - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::SetNaviPaneTitleL -// -// ---------------------------------------------------------------------------- -// -void CStatusPaneHandler::SetNaviPaneTitleL( const TDesC& aTitle ) - { - iNaviPaneHandler->SetNaviPaneTitleL( aTitle ); - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::SetNaviPaneTitle -// -// ---------------------------------------------------------------------------- -// -void CStatusPaneHandler::SetNaviPaneTitle( const TDesC& aTitle ) - { - TRAP_IGNORE( iNaviPaneHandler->SetNaviPaneTitleL( aTitle ) ); - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::SetNaviPaneTitleL -// -// ---------------------------------------------------------------------------- -// -void CStatusPaneHandler::SetNaviPaneTitleL( TInt aResource ) - { - HBufC* hBuf = StringLoader::LoadLC( aResource) ; - SetNaviPaneTitleL( hBuf->Des() ); - CleanupStack::PopAndDestroy( hBuf ); - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::StoreNavipaneL -// -// ---------------------------------------------------------------------------- -// -void CStatusPaneHandler::StoreNavipaneL() - { - iNaviPaneHandler->StoreNavipaneL(); - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::StoreOriginalTitleL -// -// ---------------------------------------------------------------------------- -// -void CStatusPaneHandler::StoreOriginalTitleL() - { - TBool ret = GetTitleL( iAppUi, iOriginalTitle ); - - if ( ret ) - { - iOriginalTitleStored = ETrue; - } - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::RestoreOriginalTitleL -// -// ---------------------------------------------------------------------------- -// -void CStatusPaneHandler::RestoreOriginalTitleL() - { - if ( iOriginalTitleStored ) - { - SetTitleL( iAppUi, iOriginalTitle ); - } - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::SetTitleL -// -// ---------------------------------------------------------------------------- -// -void CStatusPaneHandler::SetTitleL( const TDesC& aText ) - { - if ( iOriginalTitleStored ) - { - SetTitleL( iAppUi, aText ); - } - } - - -// ---------------------------------------------------------------------------- -// CStatusPaneHandler::SetTitleL -// -// ---------------------------------------------------------------------------- -// -void CStatusPaneHandler::SetTitleL( TInt aResourceId ) - { - HBufC* hBuf = StringLoader::LoadLC( aResourceId ); - SetTitleL( hBuf->Des() ); - CleanupStack::PopAndDestroy( hBuf ); - } - - - -/****************************************************************************** - * class CDriveUtil - ******************************************************************************/ - - -// ----------------------------------------------------------------------------- -// CDriveUtil::NewL -// -// ----------------------------------------------------------------------------- -// -CDriveUtil* CDriveUtil::NewL() - { - CDriveUtil* self = new (ELeave) CDriveUtil(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// Destructor -// -// ----------------------------------------------------------------------------- -// -CDriveUtil::~CDriveUtil() - { - iFsSession.Close(); - } - - -// ----------------------------------------------------------------------------- -// CDriveUtil::CDriveUtil -// -// ----------------------------------------------------------------------------- -// -CDriveUtil::CDriveUtil() - { - } - - -// ----------------------------------------------------------------------------- -// CDriveUtil::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CDriveUtil::ConstructL() - { - User::LeaveIfError( iFsSession.Connect() ); - } - - -// ----------------------------------------------------------------------------- -// CDriveUtil::IsRom -// -// ----------------------------------------------------------------------------- -// -TBool CDriveUtil::IsRom( const TDesC& aFullPath ) - { - const TUint KMassStorageBits = DriveInfo::EDriveRom; - - TDriveUnit drive( aFullPath ); - TUint driveStatus( 0 ); - - TInt err = DriveInfo::GetDriveStatus( iFsSession, drive, driveStatus ); - if ( err != KErrNone ) - { - return EFalse; - } - - if ( (driveStatus & KMassStorageBits) == KMassStorageBits ) - { - return ETrue; - } - - return EFalse; - } - - -// ----------------------------------------------------------------------------- -// CDriveUtil::IsMassStorage -// -// ----------------------------------------------------------------------------- -// -TBool CDriveUtil::IsMassStorage( const TDesC& aFullPath ) - { - const TUint KMassStorageBits = DriveInfo::EDriveInternal | - DriveInfo::EDriveExternallyMountable; - - TDriveUnit drive( aFullPath ); - TUint driveStatus( 0 ); - - TInt err = DriveInfo::GetDriveStatus( iFsSession, drive, driveStatus ); - if ( err != KErrNone ) - { - return EFalse; - } - - if ( (driveStatus & KMassStorageBits) == KMassStorageBits ) - { - return ETrue; - } - - return EFalse; - } - - -// ----------------------------------------------------------------------------- -// CDriveUtil::IsMemoryCard -// -// ----------------------------------------------------------------------------- -// -TBool CDriveUtil::IsMemoryCard( const TDesC& aFullPath ) - { - const TUint KMemoryCardBits = DriveInfo::EDriveRemovable | - DriveInfo::EDriveExternallyMountable; - - TDriveUnit drive( aFullPath ); - TUint driveStatus( 0 ); - - TInt err = DriveInfo::GetDriveStatus( iFsSession, drive, driveStatus ); - if ( err != KErrNone ) - { - return EFalse; - } - - if ( (driveStatus & KMemoryCardBits) == KMemoryCardBits ) - { - return ETrue; - } - - return EFalse; - } - - - -/****************************************************************************** - * class CMimeTypeList - ******************************************************************************/ - - - -// ----------------------------------------------------------------------------- -// CMimeTypeList::NewL -// -// ----------------------------------------------------------------------------- -// -CMimeTypeList* CMimeTypeList::NewL() - { - CMimeTypeList* object = new (ELeave) CMimeTypeList; - return object; - } - -// ----------------------------------------------------------------------------- -// CMimeTypeList::CMimeTypeList -// -// ----------------------------------------------------------------------------- -// -CMimeTypeList::CMimeTypeList() - { - } - -// ----------------------------------------------------------------------------- -// CMimeTypeList::~CMimeTypeList -// -// ----------------------------------------------------------------------------- -// -CMimeTypeList::~CMimeTypeList() - { - iList.Close(); - } - - -// ----------------------------------------------------------------------------- -// CMimeTypeList::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CMimeTypeList::ConstructL() - { - } - - - -// ----------------------------------------------------------------------------- -// CMimeTypeList::ResetL -// -// ----------------------------------------------------------------------------- -// -void CMimeTypeList::ResetL() - { - iList.Reset(); - } - - -// ----------------------------------------------------------------------------- -// CMimeTypeList::Count -// -// ----------------------------------------------------------------------------- -// -TInt CMimeTypeList::Count() - { - return iList.Count(); - } - - -// ----------------------------------------------------------------------------- -// CMimeTypeList::Compare -// -// ----------------------------------------------------------------------------- -// -TInt CMimeTypeList::Compare(const TFileName& aFirst, const TFileName& aSecond) - { - return aFirst.Compare( aSecond ); - } - - -// ----------------------------------------------------------------------------- -// CMimeTypeList::AddMimeTypeL -// -// ----------------------------------------------------------------------------- -// -void CMimeTypeList::AddMimeTypeL( const TDesC& aText ) - { - if ( aText.Length() > KMaxFileName || aText.Length() == 0 ) - { - User::Leave( KErrArgument ); - } - - TLinearOrder sortFunction( Compare ); - - TInt err = iList.InsertInOrder( aText, sortFunction ); - - if ( err != KErrNone && err != KErrAlreadyExists ) - { - User::Leave( err ); - } - } - - -// ----------------------------------------------------------------------------- -// CMimeTypeList::FindMimeTypeL -// -// ----------------------------------------------------------------------------- -// -TBool CMimeTypeList::FindMimeTypeL( const TDesC& aText ) - { - TInt count = Count(); - - for ( TInt i=0; i= 0 && aIndex < count, TMFDialogUtil::Panic( KErrGeneral ) ); - - return iList[aIndex]; - } - - - - -/****************************************************************************** - * class CWebBrowserLauncher - ******************************************************************************/ - - -// ----------------------------------------------------------------------------- -// CWebBrowserLauncher::CWebBrowserLauncher -// -// ----------------------------------------------------------------------------- -// -CWebBrowserLauncher::CWebBrowserLauncher() - { - } - -// ----------------------------------------------------------------------------- -// CWebBrowserLauncher::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CWebBrowserLauncher::ConstructL() - { - iBrowserLauncher = CBrowserLauncher::NewL(); - iDocumentHandler = CDocumentHandler::NewL( CEikonEnv::Static()->Process() ); - } - -// ----------------------------------------------------------------------------- -// CWebBrowserLauncher::NewLC -// -// ----------------------------------------------------------------------------- -// -CWebBrowserLauncher* CWebBrowserLauncher::NewLC() - { - CWebBrowserLauncher* self = new( ELeave ) CWebBrowserLauncher(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - - -// ----------------------------------------------------------------------------- -// CWebBrowserLauncher::~CWebBrowserLauncher -// -// ----------------------------------------------------------------------------- -// -CWebBrowserLauncher::~CWebBrowserLauncher() - { - delete iDocumentHandler; - delete iBrowserLauncher; - } - - -// ----------------------------------------------------------------------------- -// CWebBrowserLauncher::HandleContentL -// -// ----------------------------------------------------------------------------- -// -TBool CWebBrowserLauncher::HandleContentL( const TDesC& aFileName, - const CAiwGenericParamList& aParamList, - TBool& aContinue ) - { - TBool isSaved = EFalse; - - if ( aParamList.Count() > 0 ) - { - TInt index = 0; - aParamList.FindFirst( index, EGenericParamFileSaved ); - - if( index != KErrNotFound ) - { - isSaved = ( aParamList[ index ].Value().AsTInt32() ); - } - } - - // Tone is NOT yet saved by a browser, save it by using DocHandler - if( !isSaved ) - { - //Let documenthandler to find out the datatype - TDataType nullType; - iDocumentHandler->CopyL( aFileName, KNullDesC, nullType, NULL ); - } - - aContinue = ETrue; - - return ETrue; - } - - -// ----------------------------------------------------------------------------- -// CWebBrowserLauncher::HandleContentL -// -// ----------------------------------------------------------------------------- -// -TAny* CWebBrowserLauncher::DownloadedContentHandlerReserved1( TAny* /*aAnyParam*/ ) - { - return NULL; - } - -// ----------------------------------------------------------------------------- -// CWebBrowserLauncher::LaunchBrowserL -// -// ----------------------------------------------------------------------------- -// -void CWebBrowserLauncher::LaunchBrowserL() - { - iBrowserLauncher->LaunchBrowserSyncEmbeddedL( KFavouritesAudioContextId ); - } - - - -// End of File