meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp
branchRCL_3
changeset 80 726fba06891a
parent 64 3533d4323edc
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp	Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp	Wed Oct 13 14:11:15 2010 +0300
@@ -118,12 +118,15 @@
     iFieldIcon = CMRImage::NewL(
             NMRBitmapManager::EMRBitmapOccasion,
             this );
-    
+	iPriorityIcon = CMRImage::NewL(
+			NMRBitmapManager::EMRBitmapLockField,
+			this );
     iRichTextViewer = CESMRRichTextViewer::NewL( this );
     CESMRField::ConstructL( iRichTextViewer ); // ownership transferred
     iRichTextViewer->SetEdwinSizeObserver( this );
     iRichTextViewer->SetParent( this );
     iRichTextViewer->SetLinkObserver( this );
+    iCurrentPriority = EFSCalenMRPriorityNormal;
     }
 
 // ---------------------------------------------------------------------------
@@ -199,17 +202,29 @@
     	{
     	if( entry.PriorityL() == EFSCalenMRPriorityHigh )
     		{
+			if( iPriorityIcon )
+				{
+				delete iPriorityIcon;
+				iPriorityIcon = NULL;			
+				}
     		iPriorityIcon = CMRImage::NewL(
     				NMRBitmapManager::EMRBitmapPriorityHigh,
     				this,
     				ETrue );
+    		iCurrentPriority = EFSCalenMRPriorityHigh;
     		}
     	if( entry.PriorityL() == EFSCalenMRPriorityLow )
     		{
+			if( iPriorityIcon )
+				{
+				delete iPriorityIcon;
+				iPriorityIcon = NULL;			
+				}
     		iPriorityIcon = CMRImage::NewL(
     				NMRBitmapManager::EMRBitmapPriorityLow,
     				this,
     				ETrue );
+    		iCurrentPriority = EFSCalenMRPriorityLow;
     		}
     	}
 
@@ -425,12 +440,15 @@
 
 	CESMRField::LockL();
 
-	delete iPriorityIcon;
-	iPriorityIcon = NULL;
-	iPriorityIcon = CMRImage::NewL(
-	        NMRBitmapManager::EMRBitmapLockField,
-	        this,
-	        ETrue );
+	if( !iPriorityIcon )
+		{
+		delete iPriorityIcon;
+		iPriorityIcon = NULL;
+		iPriorityIcon = CMRImage::NewL(
+				NMRBitmapManager::EMRBitmapLockField,
+				this,
+				ETrue );
+		}
 	}
 
 // ---------------------------------------------------------------------------
@@ -483,12 +501,12 @@
         ++count;
         }
 
-    if ( iRichTextViewer )
+    if ( iPriorityIcon )
         {
         ++count;
         }
 
-    if ( iPriorityIcon )
+    if ( iRichTextViewer )
         {
         ++count;
         }
@@ -508,9 +526,9 @@
         case 0:
             return iFieldIcon;
         case 1:
-            return iRichTextViewer;
+            return iPriorityIcon;
         case 2:
-            return iPriorityIcon;
+            return iRichTextViewer;
 
         default:
             return NULL;
@@ -541,7 +559,7 @@
         }
 
     // Layouting priority icon
-    if( iPriorityIcon )
+    if( iPriorityIcon && (  IsLocked() || iCurrentPriority != EFSCalenMRPriorityNormal ) )
         {
         TAknWindowComponentLayout iconLayout(
                 NMRLayoutManager::GetWindowComponentLayout(
@@ -551,7 +569,7 @@
 
     TAknLayoutText viewerLayoutText;
 
-    if( iPriorityIcon )
+    if( iPriorityIcon && (  IsLocked() || iCurrentPriority != EFSCalenMRPriorityNormal ) )
         {
         viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
                     NMRLayoutManager::EMRTextLayoutSingleRowEditorText );