--- a/uifw/EikStd/coctlsrc/smileymanager.cpp Thu Aug 19 10:11:06 2010 +0300
+++ b/uifw/EikStd/coctlsrc/smileymanager.cpp Tue Aug 31 15:28:30 2010 +0300
@@ -115,33 +115,18 @@
{
TInt smileyLength( iModel->SmileyStringLength( index ) );
TInt docPos( aStart + i );
-
- if( iModel->IsSmileyBySemanticAnalysis( aText.Left( docPos + smileyLength ),
- smileyLength ) )
+ CSmileyIcon* icon( iIconRecord->SmileyIconAtPos( docPos ) );
+ if ( !icon || ( icon && !icon->IsDisabled() ) )
{
- TText smileyCode( iModel->SmileyCode( index ) );
- CSmileyIcon* icon( iIconRecord->SmileyIconAtPos( docPos ) );
- // If icon is existed but smiley codes are different, it means smiely
- // string has been changed and editor doesn't know it, so delete old icon
- // and create a new one. Otherwise, nothing needs to do since the icon is
- // already existed.
- if ( icon && icon->Code() != smileyCode )
+ if ( !icon )
{
- iIconRecord->DeleteIconAtPos( docPos );
- icon = NULL;
+ TText smileyCode( iModel->SmileyCode( index ) );
+ AddSmileyToRecordL( aText.Mid( i, smileyLength ), docPos,
+ smileyCode );
}
- if ( !icon || ( icon && !icon->IsDisabled() ) )
- {
- if ( !icon )
- {
- AddSmileyToRecordL( aText.Mid( i, smileyLength ), docPos,
- smileyCode );
- }
- iModel->ReplaceTextWithCodes( aText, i, index );
- ret = ETrue;
- }
+ iModel->ReplaceTextWithCodes( aText, i, index );
+ ret = ETrue;
}
-
i += smileyLength;
}
else
@@ -194,14 +179,11 @@
if ( image && aRect.Size() != image->BitmapSize() )
{
image->SetBitmapSize( aRect.Size() );
- for ( TInt i( 0 ); i < image->RefArrayCount(); i++ )
+ if ( icon->IsPlayFinished() )
{
- if ( image->RefIcon( i )->IsPlayFinished() )
- {
- image->RefIcon( i )->PlayOneTime();
- }
+ icon->PlayOneTime();
+ iDrawer->CreateImageL( image );
}
- iDrawer->CreateImageL( image );
}
else if ( !image )
{
@@ -280,7 +262,7 @@
TText CSmileyManager::SmileyCodeByPos( TInt aDocPos )
{
CSmileyIcon* icon( iIconRecord->SmileyIconAtPos( aDocPos ) );
- if ( icon && !icon->IsDisabled() )
+ if ( icon )
{
return icon->Code();
}
@@ -288,13 +270,22 @@
}
// ---------------------------------------------------------------------------
+// CSmileyManager::SetVisibleRange
+// ---------------------------------------------------------------------------
+//
+void CSmileyManager::SetVisibleRange( TInt aDocPos, TInt aLength )
+ {
+ iDrawer->SetVisibleRange( aDocPos, aLength );
+ }
+
+// ---------------------------------------------------------------------------
// CSmileyManager::TextBlockLength
// ---------------------------------------------------------------------------
//
TInt CSmileyManager::SmileyLength( TInt aDocPos )
{
CSmileyIcon* icon( iIconRecord->SmileyIconAtPos( aDocPos ) );
- if ( icon && !icon->IsDisabled() )
+ if ( icon )
{
return icon->SmileyLength();
}