uifw/EikStd/coctlsrc/smileymanager.cpp
branchRCL_3
changeset 55 aecbbf00d063
parent 38 c52421ed5f07
child 56 d48ab3b357f1
--- 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();
         }