diff -r 0b3699f6c654 -r e36b2f4799c0 contentstorage/cautils/src/cautils.cpp --- a/contentstorage/cautils/src/cautils.cpp Fri Sep 17 08:32:18 2010 +0300 +++ b/contentstorage/cautils/src/cautils.cpp Mon Oct 04 00:38:31 2010 +0300 @@ -15,7 +15,12 @@ * */ +#include +#include + #include "cautils.h" +#include "cadef.h" + _LIT(KHexPrefix, "0x"); // --------------------------------------------------------- @@ -37,3 +42,46 @@ return TLex( string ).Val( aInt, radix ); } +// --------------------------------------------------------- +// MenuUtils::InitTextResolverSymbian +// --------------------------------------------------------- +// +EXPORT_C void MenuUtils::InitTextResolverSymbianL( const TDesC& aFilename ) + { + if( !HbTextResolverSymbian::Init( aFilename, KLocalizationFilepathC ) ) + { + if( !HbTextResolverSymbian::Init( aFilename, KLocalizationFilepathZ ) ) + { + // this should not be called too often + TChar currentDriveLetter; + TDriveList driveList; + RFs fs; + CleanupClosePushL( fs ); + User::LeaveIfError( fs.Connect() ); + User::LeaveIfError( fs.DriveList( driveList ) ); + + RBuf path; + CleanupClosePushL( path ); + path.CreateL( KLocalizationFilepath().Length() + 1 ); + + for( TInt driveNr=EDriveY; driveNr >= EDriveA; driveNr-- ) + { + if( driveList[driveNr] ) + { + User::LeaveIfError( fs.DriveToChar( driveNr, + currentDriveLetter ) ); + path.Append( currentDriveLetter ); + path.Append( KLocalizationFilepath ); + if( HbTextResolverSymbian::Init( aFilename, path ) ) + { + break; + } + } + path.Zero(); + } + CleanupStack::PopAndDestroy( &path ); + CleanupStack::PopAndDestroy( &fs ); + } + } + } +