Revision: 201017 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 11 May 2010 15:57:15 +0300
branchRCL_3
changeset 16 b5fbb9b25d57
parent 14 b13141f05c3d
child 17 67369d1b217f
Revision: 201017 Kit: 201019
emailservices/emailclientapi/src/emailfolder.cpp
emailservices/emailclientapi/src/emailmailbox.cpp
emailservices/emailclientapi/src/emailmessage.cpp
emailservices/emailclientapi/src/emailmessagesearch.cpp
emailservices/emailframework/commonlib/src/CFSMailBox.cpp
emailservices/emailframework/commonlib/src/CFSMailMessagePart.cpp
emailservices/emailframework/data/fsmailbrandmanager.rss
emailservices/emailframework/src/CFSMailClient.cpp
emailservices/emailserver/cmailhandlerplugin/inc/cmailcpssettings.h
emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp
emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp
emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF
emailservices/emailstore/base_plugin/EABI/basepluginU.DEF
emailservices/emailstore/base_plugin/group/BasePlugin.mmp
emailservices/emailstore/base_plugin/inc/BasePlugin.h
emailservices/emailstore/base_plugin/inc/NestedAO.h
emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h
emailservices/emailstore/base_plugin/inc/baseplugindelayedops.h
emailservices/emailstore/base_plugin/inc/baseplugindelayedopsprivate.h
emailservices/emailstore/base_plugin/src/BasePlugin.cpp
emailservices/emailstore/base_plugin/src/NestedAO.cpp
emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp
emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp
emailuis/emailui/data/FreestyleEmailUi.rss
emailuis/emailui/data/html/header.js
emailuis/emailui/inc/FreestyleEmailUiContactHandler.h
emailuis/emailui/inc/FreestyleEmailUiHtmlViewerContainer.h
emailuis/emailui/inc/FreestyleEmailUiHtmlViewerView.h
emailuis/emailui/inc/FreestyleEmailUiLauncherGridVisualiser.h
emailuis/emailui/inc/FreestyleEmailUiLayoutData.h
emailuis/emailui/inc/FreestyleEmailUiLayoutHandler.h
emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h
emailuis/emailui/inc/FreestyleEmailUiViewBase.h
emailuis/emailui/inc/FreestyleMessageHeaderHTML.h
emailuis/emailui/inc/ncsaddressinputfield.h
emailuis/emailui/inc/ncscomposeviewcontainer.h
emailuis/emailui/inc/ncseditor.h
emailuis/emailui/inc/ncspopuplistbox.h
emailuis/emailui/inc/ncssubjectfield.h
emailuis/emailui/src/FreestyleEmailDownloadInformationMediator.cpp
emailuis/emailui/src/FreestyleEmailUiAppui.cpp
emailuis/emailui/src/FreestyleEmailUiContactHandler.cpp
emailuis/emailui/src/FreestyleEmailUiFolderListVisualiser.cpp
emailuis/emailui/src/FreestyleEmailUiGlobalSettingsListView.cpp
emailuis/emailui/src/FreestyleEmailUiHtmlViewerContainer.cpp
emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp
emailuis/emailui/src/FreestyleEmailUiLauncherGridVisualiser.cpp
emailuis/emailui/src/FreestyleEmailUiLayoutHandler.cpp
emailuis/emailui/src/FreestyleEmailUiMailListVisualiser.cpp
emailuis/emailui/src/FreestyleEmailUiUtilities.cpp
emailuis/emailui/src/FreestyleEmailUiViewBase.cpp
emailuis/emailui/src/FreestyleMessageHeaderHTML.cpp
emailuis/emailui/src/OverlayControl.cpp
emailuis/emailui/src/ncsaddressinputfield.cpp
emailuis/emailui/src/ncscomposeview.cpp
emailuis/emailui/src/ncscomposeviewcontainer.cpp
emailuis/emailui/src/ncseditor.cpp
emailuis/emailui/src/ncseditorcustomdraw.cpp
emailuis/emailui/src/ncsheadercontainer.cpp
emailuis/emailui/src/ncspopuplistbox.cpp
emailuis/emailui/src/ncssubjectfield.cpp
emailuis/uicomponents/src/fstreevisualizerbase.cpp
ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h
ipsservices/ipssosplugin/src/ipsplgeventhandler.cpp
ipsservices/ipssosplugin/src/ipsplgimap4plugin.cpp
ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp
ipsservices/ipssossettings/bwins/ipssossettingsu.def
ipsservices/ipssossettings/eabi/IPSSOSSETTINGSU.DEF
ipsservices/ipssossettings/inc/ipssetdataapi.h
ipsservices/ipssossettings/inc/ipssetuiitemaccesspoint.h
ipsservices/ipssossettings/inc/ipssetutilsconsts.h
ipsservices/ipssossettings/src/ipssetdataapi.cpp
ipsservices/ipssossettings/src/ipssetgwizardadapter.cpp
meetingrequest/mragnversit2/inc/esmrcleanuppointerarray.inl
meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcplugincreatenewmrcmd.h
meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginnewcaleventcommand.h
meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginopenmrviewercmd.h
meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincmdhandler.cpp
meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincreatenewmrcmd.cpp
meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginnewcaleventcommand.cpp
meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginopenmrviewercmd.cpp
meetingrequest/mrbcplugin/group/mrbcplugin.mmp
meetingrequest/mrbcplugin/src/cmrbcplugin.cpp
meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.h
meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.inl
meetingrequest/mrcalremoteattachment/api/inc/mcalremoteattachmentinfo.h
meetingrequest/mrcalremoteattachment/remoteattachment/inc/ccalremoteattachmentinfo.h
meetingrequest/mrcasplugin/inc/cesmrcaspluginimpl.h
meetingrequest/mrcasplugin/inc/cesmrcaspluginuilauncher.h
meetingrequest/mrcasplugin/src/cesmrcascontactaction.cpp
meetingrequest/mrcasplugin/src/cesmrcasplugincontactretriever.cpp
meetingrequest/mrcasplugin/src/cesmrcaspluginimpl.cpp
meetingrequest/mrcasplugin/src/cesmrcaspluginuilauncher.cpp
meetingrequest/mrcmailremoteattachmentplugin/group/mrcmailremoteattachmentplugin.mmp
meetingrequest/mrcommon/inc/esmrentryhelper.h
meetingrequest/mrcommon/src/esmrentryhelper.cpp
meetingrequest/mrcommon/src/esmrhelper.cpp
meetingrequest/mrcommon/src/nmrglobalfeaturesettings.cpp
meetingrequest/mrdb/inc/cesmrentrycmditeratorao.h
meetingrequest/mrdb/src/cesmrcaldbmgr.cpp
meetingrequest/mrgui/data/esmrgui.rss
meetingrequest/mrgui/data/mrguiattachmentresources.rss
meetingrequest/mrgui/group/esmrgui.mmp
meetingrequest/mrgui/inc/cesmraddressinfohandler.h
meetingrequest/mrgui/inc/cesmreditordialog.h
meetingrequest/mrgui/inc/cesmrresponsedialog.h
meetingrequest/mrgui/inc/cesmrtrackingviewdialog.h
meetingrequest/mrgui/inc/cesmrview.h
meetingrequest/mrgui/inc/cesmrviewerdialog.h
meetingrequest/mrgui/inc/cmrlistpane.h
meetingrequest/mrgui/loc/mrui.loc
meetingrequest/mrgui/mrfieldbuildercommon/bwins/esmrfieldbuildercommonu.def
meetingrequest/mrgui/mrfieldbuildercommon/eabi/esmrfieldbuildercommonu.def
meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrfield.h
meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrrichtextviewer.h
meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentprogressinfo.h
meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentui.h
meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrfield.cpp
meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrrichtextviewer.cpp
meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentprogressinfo.cpp
meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentui.cpp
meetingrequest/mrgui/mrfieldbuildercommon/src/cmrbackground.cpp
meetingrequest/mrgui/mrfieldbuildercommon/src/cmrgrid.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrsubjectfield.h
meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdescriptionfield.h
meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdetailedsubjectfield.h
meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerlocationfield.h
meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmralarmonofffield.h
meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmropenattachmentcommand.h
meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrremoveattachmentcommand.h
meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrsaveandopenattachmentcommand.h
meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrviewerattachmentfield.h
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmralarmfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrcheckbox.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdatefield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdescriptionfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrlocationfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriority.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriorityfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrrepeatuntil.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsingletimefield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsubjectfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsyncfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrtextitem.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmtimefield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdescriptionfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerlocationfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerpriorityfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencedatefield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencefield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstartdatefield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstopdatefield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewersyncfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewertimefield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmralarmonofffield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentcommandhandler.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentsfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrmulticalenfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmropenattachmentcommand.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveandopenattachmentcommand.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveattachmentcommand.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrtimecontainer.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrunifiededitorfield.cpp
meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrviewerattachmentfield.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsitem.h
meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclslistshandler.h
meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsmatchobserver.h
meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrncseditor.h
meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerattendeesfield.h
meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerfromfield.h
meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/resmrpluginextensionstatic.h
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrattendeefield.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsitem.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclslistshandler.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsmatchobserver.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrconflictpopup.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrinputmodeobserver.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncsaifeditor.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncseditor.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncspopuplistbox.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrresponsefield.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackingfieldlabel.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackstatus.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerattendeesfield.cpp
meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerfromfield.cpp
meetingrequest/mrgui/mrlocationplugin/inc/cesmrlocationpluginimpl.h
meetingrequest/mrgui/mrlocationplugin/src/cesmrlocationpluginimpl.cpp
meetingrequest/mrgui/src/cesmraddressinfohandler.cpp
meetingrequest/mrgui/src/cesmrdynamicitemselectionlist.cpp
meetingrequest/mrgui/src/cesmreditordialog.cpp
meetingrequest/mrgui/src/cesmrlocationpluginhandler.cpp
meetingrequest/mrgui/src/cesmrmeetingtimevalidator.cpp
meetingrequest/mrgui/src/cesmrresponsedialog.cpp
meetingrequest/mrgui/src/cesmrtitlepane.cpp
meetingrequest/mrgui/src/cesmrtrackingview.cpp
meetingrequest/mrgui/src/cesmrtrackingviewdialog.cpp
meetingrequest/mrgui/src/cesmruifactory.cpp
meetingrequest/mrgui/src/cesmrview.cpp
meetingrequest/mrgui/src/cesmrviewerdialog.cpp
meetingrequest/mrgui/src/cmrattachmentindicator.cpp
meetingrequest/mrgui/src/cmrfieldcontainer.cpp
meetingrequest/mrgui/src/cmrlistpane.cpp
meetingrequest/mrgui/src/cmrnaviarrow.cpp
meetingrequest/mrgui/src/cmrresponsedialogview.cpp
meetingrequest/mrgui/src/cmrtoolbar.cpp
meetingrequest/mrguicommon/inc/cesmrcontactmanagerhandler.h
meetingrequest/mrguicommon/inc/cesmrcontactmenuhandler.h
meetingrequest/mrguicommon/inc/cesmrglobalnote.h
meetingrequest/mrguicommon/inc/cmrbutton.h
meetingrequest/mrguicommon/inc/cmrimage.h
meetingrequest/mrguicommon/inc/nmrbitmapmanager.h
meetingrequest/mrguicommon/inc/nmrcolormanager.h
meetingrequest/mrguicommon/inc/nmrlayoutmanager.h
meetingrequest/mrguicommon/src/cesmralarm.cpp
meetingrequest/mrguicommon/src/cesmrconfirmationquery.cpp
meetingrequest/mrguicommon/src/cesmrcontactlinkiterator.cpp
meetingrequest/mrguicommon/src/cesmrcontactmanagerhandler.cpp
meetingrequest/mrguicommon/src/cesmrcontactmenuhandler.cpp
meetingrequest/mrguicommon/src/cesmrcontactmenuurlhandler.cpp
meetingrequest/mrguicommon/src/cesmrglobalnote.cpp
meetingrequest/mrguicommon/src/cesmrlistquery.cpp
meetingrequest/mrguicommon/src/cesmrrecurrence.cpp
meetingrequest/mrguicommon/src/cesmrsendui.cpp
meetingrequest/mrguicommon/src/cmrimage.cpp
meetingrequest/mrguicommon/src/cmrlabel.cpp
meetingrequest/mrguicommon/src/esmrvcalexport.cpp
meetingrequest/mrguicommon/src/nmrbitmapmanager.cpp
meetingrequest/mrguicommon/src/nmrcolormanager.cpp
meetingrequest/mrguicommon/src/nmrlayoutmanager.cpp
meetingrequest/mricalviewer/data/2001846B.rss
meetingrequest/mricalviewer/inc/cesmricalviewerremovemrfromcalcmd.h
meetingrequest/mricalviewer/inc/cesmricalviewerresponsetomrcmd.h
meetingrequest/mricalviewer/src/cesmricalviewercanviewmr.cpp
meetingrequest/mricalviewer/src/cesmricalviewercmdhandler.cpp
meetingrequest/mricalviewer/src/cesmricalvieweremailasynccmd.cpp
meetingrequest/mricalviewer/src/cesmricalviewerloadmrdatacmd.cpp
meetingrequest/mricalviewer/src/cesmricalviewerremovemrfromcalcmd.cpp
meetingrequest/mricalviewer/src/cesmricalviewerresolvemrmethodasync.cpp
meetingrequest/mricalviewer/src/cesmricalviewerresponsetomrcmd.cpp
meetingrequest/mricalviewer/src/cesmrimapicalretriever.cpp
meetingrequest/mricalviewer/src/cesmrimapmailfetcher.cpp
meetingrequest/mricalviewer/src/cesmrmrinfoicalretriever.cpp
meetingrequest/mricalviewer/src/cesmruilauncher.cpp
meetingrequest/mricalviewer/src/esmricalviewerutils.cpp
meetingrequest/mrmbutilsextension/data/2002137D.rss
meetingrequest/mrmbutilsextension/inc/cmrmbutilsmailboxlistener.h
meetingrequest/mrmbutilsextension/src/cmrmbutilsextensionimpl.cpp
meetingrequest/mrmbutilsextension/src/cmrmbutilsmailboxlistener.cpp
meetingrequest/mrmbutilsextension/src/cmrmbutilssettings.cpp
meetingrequest/mrpolicy/mrcalentryresolver/data/policies/bccalanniversaryeditor.rss
meetingrequest/mrprocessor/inc/mmrentryprocessor.h
meetingrequest/mrprocessor/mrcaleventplugin/inc/cmrcalentry.h
meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcalentry.cpp
meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcaleventprocessor.cpp
meetingrequest/mrprocessor/mrprocessorplugin/src/cesmrentryprocessor.cpp
meetingrequest/mrtasks/mrtaskplugin/group/mrtaskplugin.mmp
meetingrequest/mrtasks/mrtaskplugin/inc/cesmrfsemailmanager.h
meetingrequest/mrtasks/mrtaskplugin/src/cesmrfsemailmanager.cpp
meetingrequest/mrtasks/mrtaskplugin/src/cesmrmailplaitextformatter.cpp
meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailreplytask.cpp
meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailtask.cpp
meetingrequest/mrtasks/mrtaskplugin/src/cmrtaskplugin.cpp
meetingrequest/mrurlparserplugin/group/esmrurlparserplugin.mmp
meetingrequest/mrurlparserplugin/src/cesmrurlparserpluginimpl.cpp
meetingrequest/mrutils/inc/cesmrutils.h
meetingrequest/mrutils/inc/esmrutilsapiext.h
meetingrequest/mrutilscalplugin/data/2001E27F.rss
meetingrequest/mrutilscalplugin/inc/cesmrutilsimpl.h
meetingrequest/mrviewer/inc/cesmrviewerctrl.h
meetingrequest/mrviewer/src/cesmrviewerctrl.cpp
meetingrequest/mrviewercalplugin/data/2001E27E.rss
meetingrequest/mrviewercalplugin/inc/caleneditorsplugin.h
meetingrequest/mrviewercalplugin/inc/cesmrviewersimpl.h
meetingrequest/mrviewercalplugin/src/cesmrviewersimpl.cpp
--- a/emailservices/emailclientapi/src/emailfolder.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailclientapi/src/emailfolder.cpp	Tue May 11 15:57:15 2010 +0300
@@ -178,11 +178,13 @@
         const CFSMailFolder* fsfolder = folders[i];
         const TEntryId id = fsfolder->GetFolderId().Id();
         const TFolderId folderId( id, iFolderId.iMailboxId.iId );
-        MEmailFolder* folder = CEmailFolder::NewL( iPluginData, folderId, folders[i]);
+        MEmailFolder* folder = CEmailFolder::NewLC( iPluginData, folderId, folders[i]);
         aSubfolders.AppendL( folder );
+        CleanupStack::Pop( folder ); // asubfolders took ownership
+        folders[i] = NULL;
         }
-    CleanupStack::Pop();    // folders
-    folders.Close();
+    CleanupStack::Pop( &folders );    // folders
+    folders.Close(); // aSubfolders took ownership
     return res;
     }
 
--- a/emailservices/emailclientapi/src/emailmailbox.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailclientapi/src/emailmailbox.cpp	Tue May 11 15:57:15 2010 +0300
@@ -243,7 +243,11 @@
             EFSMsgDataEnvelope);
 
     CleanupStack::PushL( fsMessage );
-    CEmailMessage* message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
+    
+    CEmailMessage* message = NULL;
+    
+    if ( fsMessage )
+        message = CEmailMessage::NewL( iPluginData, fsMessage, EClientOwns );
     CleanupStack::Pop();  // fsMessage
 
     return message;
--- a/emailservices/emailclientapi/src/emailmessage.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailclientapi/src/emailmessage.cpp	Tue May 11 15:57:15 2010 +0300
@@ -505,12 +505,12 @@
 
     RPointerArray<CFSMailMessagePart> parts;
     CleanupResetAndDestroyPushL( parts );
-    iPluginMessage->ChildPartsL(parts);
+    iPluginMessage->ChildPartsL( parts );
     TInt count( parts.Count() );
     if( count == 0 )
         {
         /* No content, return NULL */
-        CleanupStack::Pop(); // parts
+        CleanupStack::PopAndDestroy( &parts ); // in case heap allocated but not used
         return NULL;
         }
     CFSMailMessagePart* part = parts[0];
@@ -524,7 +524,8 @@
     if ( contentType.Equals( KFSMailContentTypeTextPlain ) || 
         contentType.Equals( KFSMailContentTypeTextHtml ) )
         {                                
-        iTextContent = CEmailTextContent::NewL(iPluginData, msgContentId, part, EAPIOwns );        
+        iTextContent = CEmailTextContent::NewL(iPluginData, msgContentId, part, EAPIOwns );
+        parts[0] = NULL; // ownership of part transferred
         }
     else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) ||
               contentType.Equals( KFSMailContentTypeMultipartAlternative ) ||
@@ -533,13 +534,10 @@
               contentType.Equals( KFSMailContentTypeMultipartParallel ) )
         {
         iContent = CEmailMultipart::NewL(iPluginData, msgContentId, part, EAPIOwns);
+        parts[0] = NULL; // ownership of part transferred
         }
-    if ( count == 2 )
-        {
-        CFSMailMessagePart* part = parts[1];
-        const TDesC& contentType = part->GetContentType();
-        }
-    CleanupStack::Pop(); // parts
+
+    CleanupStack::PopAndDestroy( &parts ); // parts
     
     if (iTextContent)
         {
--- a/emailservices/emailclientapi/src/emailmessagesearch.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailclientapi/src/emailmessagesearch.cpp	Tue May 11 15:57:15 2010 +0300
@@ -226,6 +226,7 @@
     iObserver = &aObserver;
     const TFSMailMsgId fsMailboxId( iPluginData.Uid(), iMailboxId.iId );
     RArray <TFSMailMsgId> folderIds;
+    CleanupClosePushL( folderIds );  
     
     /** Search API */
     
@@ -263,6 +264,7 @@
         *this );
     // Gate is kept closed as search is asynchronous. Gate will be reopen after search is completed, i.e. 
     // CEmailMessageSearchAsync::SearchCompleted.
+    CleanupStack::PopAndDestroy( &folderIds );
     }
 
 /**
@@ -359,7 +361,7 @@
     /**
     * Asks client if search engine should change search priority 
   	*/
-void CEmailMessageSearchAsync::ClientRequiredSearchPriority(TInt *apRequiredSearchPriority)
+void CEmailMessageSearchAsync::ClientRequiredSearchPriority(TInt * /* apRequiredSearchPriority */ )
     {
     return;
     } 
--- a/emailservices/emailframework/commonlib/src/CFSMailBox.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailframework/commonlib/src/CFSMailBox.cpp	Tue May 11 15:57:15 2010 +0300
@@ -439,7 +439,7 @@
         
         // remove outbox, drafts folder from folder list
         RArray<TFSMailMsgId> folderIds;
-        folderIds.Reset();
+        CleanupClosePushL( folderIds );  
         for(TInt i=0;i<iFolders.Count();i++)
         {
             TFSMailMsgId id = iFolders[i]->GetFolderId();
@@ -451,7 +451,7 @@
         
         // start search
         plugin->SearchL( GetId(), folderIds, aSearchStrings, aSortCriteria, aSearchObserver );
-        folderIds.Reset();
+        CleanupStack::PopAndDestroy( &folderIds );
         }
     }
 
--- a/emailservices/emailframework/commonlib/src/CFSMailMessagePart.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailframework/commonlib/src/CFSMailMessagePart.cpp	Tue May 11 15:57:15 2010 +0300
@@ -402,16 +402,19 @@
 	if(plugin != NULL)
 		{
 		RPointerArray<CFSMailMessagePart> parts;
-		RArray<TFSMailMsgId> partIds;
-    	plugin->ChildPartsL(GetMailBoxId(),GetFolderId(),GetMessageId(),GetPartId(),parts);
+        CleanupResetAndDestroyPushL( parts );
+        plugin->ChildPartsL(GetMailBoxId(),GetFolderId(),GetMessageId(),GetPartId(),parts);
+        RArray<TFSMailMsgId> partIds;
+        CleanupClosePushL( partIds );
+        partIds.ReserveL( 1 + parts.Count() );
 		for(TInt i=0;i<parts.Count();i++)
 			{
-			partIds.Append(parts[i]->GetMessageId());
+			partIds.AppendL( parts[i]->GetMessageId() );
 			}
-        partIds.Append(GetPartId());
+        partIds.AppendL( GetPartId() );
 		plugin->RemovePartContentL(GetMailBoxId(), GetFolderId(), GetMessageId(), partIds);
-        parts.ResetAndDestroy();
-		partIds.Reset();
+        CleanupStack::PopAndDestroy( &partIds );
+        CleanupStack::PopAndDestroy( &parts );
 		}
 	}
 
@@ -432,12 +435,12 @@
         {
         // get attachment list
         RPointerArray<CFSMailMessagePart> attachments;
-        attachments.Reset();
+        CleanupResetAndDestroyPushL( attachments );
         DoAttachmentListL(attachments);
 
         // copy attachment part ids
         RArray<TFSMailMsgId> ids;
-        ids.Reset();
+        CleanupClosePushL( ids ); 
         for(TInt i=0;i<attachments.Count();i++)
             {
             ids.Append(attachments[i]->GetPartId());
@@ -450,8 +453,8 @@
             }
         
         // clean tables
-        attachments.ResetAndDestroy();
-        ids.Reset();
+        CleanupStack::PopAndDestroy( &ids );
+        CleanupStack::PopAndDestroy( &attachments );
         }
     }
 
--- a/emailservices/emailframework/data/fsmailbrandmanager.rss	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailframework/data/fsmailbrandmanager.rss	Tue May 11 15:57:15 2010 +0300
@@ -400,7 +400,6 @@
 
                             brand_id_match_strings =
                                 {
-                                BRAND_MATCH_STRING { text = "btinternet.com"; },
                                 BRAND_MATCH_STRING { text = "btopenworld.com"; },
                                 BRAND_MATCH_STRING { text = "talk21.com"; }
                                 };
@@ -423,6 +422,19 @@
                                 red = 0xff; green = 0x30; blue = 0x20; alpha = 0xff; }
                                 };
                             },
+                        BRAND {
+                            // Definition of btinternet.com brand with default icon   
+                            brand_id_match_strings =
+                                {
+                                BRAND_MATCH_STRING { text = "btinternet.com"; }
+                                };
+                                
+                            texts = 
+                                {
+                                 BRANDABLE_TEXT { id = EFSMailboxName; text = "BT Internet"; }
+                                };
+                            },
+
 
                             BRAND {
                                 // Definition of ... Yahoo! Mail brand   
--- a/emailservices/emailframework/src/CFSMailClient.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailframework/src/CFSMailClient.cpp	Tue May 11 15:57:15 2010 +0300
@@ -33,24 +33,28 @@
 {
     FUNC_LOG;
 
-	CFSMailClient* client = Instance();
-	if(!client)
-	{
-		client = new (ELeave) CFSMailClient();
-		CleanupStack:: PushL(client);
-		client->ConstructL(aConfiguration);
-		TInt err = Dll::SetTls(static_cast<TAny*>(client));
-		User::LeaveIfError(err);
-		}
-	else
-		{
-		CleanupStack:: PushL(client);
-		}
+    CFSMailClient* client = Instance();
+    if( !client )
+        {
+        client = new (ELeave) CFSMailClient();
+        // The new client needs to be deleted rather than closed, up until
+        // the TLS has been set properly.
+        CleanupStack::PushL( client );
+        client->ConstructL( aConfiguration );
+        TInt err = Dll::SetTls( static_cast<TAny*>( client ));
+        User::LeaveIfError( err );
+        // Now that the TLS has been set, we no longer want the new client
+        // to be deleted if there's a problem, so pop it off the cleanup
+        // stack (it will be pushed back on for closing below).
+        CleanupStack::Pop( client );
+        }
 
-	client->IncReferenceCount();
-	
-	return client;
-
+    // Increment reference count before calling CleanupClosePushL so that
+    // the reference count is correct if CleanupClosePushL leaves.
+    client->IncReferenceCount();
+    CleanupClosePushL( *client );
+    
+    return client;
 } 
 
 // -----------------------------------------------------------------------------
--- a/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpssettings.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/cmailcpssettings.h	Tue May 11 15:57:15 2010 +0300
@@ -293,7 +293,9 @@
     // array of mailboxes
     RArray<TFSMailMsgId>      iMailboxArray;
     // Internal configuration data
-    TInt32                    iConfigData; 
+    TInt32                    iConfigData;
+    // large buffer for reading cenrep data
+    TBuf<KMaxFileName>        iCenrepText;
     };
 
 #endif /*CMAILCPSSETTINGS_H_*/
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp	Tue May 11 15:57:15 2010 +0300
@@ -1179,7 +1179,10 @@
 void CMailCpsIf::SetUpdateNeeded( const TInt aInstance, const TBool aValue )
     {
     FUNC_LOG;
-    iInstIdList[aInstance].iUpdateNeeded = aValue;
+    if ( aInstance >= 0 && aInstance < GetWidgetInstanceCount() )
+        {
+        iInstIdList[aInstance].iUpdateNeeded = aValue;
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -1189,6 +1192,11 @@
 TBool CMailCpsIf::UpdateNeeded( const TInt aInstance )
     {
     FUNC_LOG;
-    return iInstIdList[aInstance].iUpdateNeeded;
+    TBool rVal( EFalse );
+    if ( aInstance >= 0 && aInstance < GetWidgetInstanceCount() )
+        {
+        rVal = iInstIdList[aInstance].iUpdateNeeded;
+        }
+    return rVal;
     }
 
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp	Tue May 11 15:57:15 2010 +0300
@@ -546,38 +546,43 @@
 TInt CMailCpsSettings::GetSettingToAssociate( const TDesC& aContentId )
     {
     FUNC_LOG;    
-    TInt ret(KErrNotFound);
+    TInt ret( KErrNotFound );
     
-    for (TInt i = 0; i < KMaxMailboxCount; i++)
+    for ( TInt i = 0; i < KMaxMailboxCount; i++ )
         {
-        TBuf<KMaxDescLen> value;
-        TUint32 key(KCMailWidgetContentIdBase+i);
-        iCenRep->Get( key, value );
-        TInt result = value.Compare(aContentId);
-        if (!result)
+        TUint32 key( KCMailWidgetContentIdBase+ i );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            ret = i;
-            break;
-            }
-        }
-    if (ret < 0 )
-        {
-        for (TInt i = 0; i < KMaxMailboxCount; i++)
-            {       
-            TBuf<KMaxDescLen> value;
-            TUint32 key(KCMailWidgetContentIdBase+i);
-            iCenRep->Get( key, value );
-            TInt result = value.Compare(KDissociated);
-            if (!result)
+            if ( iCenrepText.Compare( aContentId ) == 0 )
                 {
                 ret = i;
                 break;
                 }
             }
         }
+    
+    if ( ret < 0 )
+        {
+        for ( TInt i = 0; i < KMaxMailboxCount; i++ )
+            {       
+            TUint32 key( KCMailWidgetContentIdBase + i );
+            TInt err = iCenRep->Get( key, iCenrepText );
+            if ( err == KErrNone )
+                {
+                if ( iCenrepText.Compare( KDissociated ) == 0 )
+                    {
+                    ret = i;
+                    break;
+                    }
+                }
+            }
+        }
+    
     return ret;
     }
 
+
 // ---------------------------------------------------------------------------
 // CMailCpsSettings::Associated
 // ---------------------------------------------------------------------------
@@ -585,20 +590,22 @@
 TBool CMailCpsSettings::Associated( const TDesC& aContentId )
     {
     FUNC_LOG;    
-    TBool ret(EFalse);
+    TBool ret( EFalse );
     
-    for (TInt i = 0; i < KMaxMailboxCount; i++)
+    for ( TInt i = 0; i < KMaxMailboxCount; i++ )
         {
-        TBuf<KMaxDescLen> value;
-        TUint32 key(KCMailWidgetContentIdBase+i);
-        iCenRep->Get( key, value );
-        TInt result = value.Compare(aContentId);
-        if (!result)
+        TUint32 key( KCMailWidgetContentIdBase + i );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            ret = ETrue;
-            break;
+            if ( iCenrepText.Compare( aContentId ) == 0 )
+                {
+                ret = ETrue;
+                break;
+                }
             }
         }
+    
     return ret;
     }
 
@@ -670,30 +677,39 @@
     return ret;
     }
 
+
 // ---------------------------------------------------------------------------
-// CMailCpsSettings::GetSettingToAssociate
+// CMailCpsSettings::GetMailboxUidByContentId
 // ---------------------------------------------------------------------------
 //
 TUint CMailCpsSettings::GetMailboxUidByContentId( const TDesC& aContentId )
     {
     FUNC_LOG;
-    TInt ret(KErrNone);
-    for (TInt i = 0; i < KMaxMailboxCount; i++)
+    
+    TInt ret( KErrNone );
+    for ( TInt i = 0; i < KMaxMailboxCount; i++ )
         {       
-        TBuf<KMaxDescLen> cid;
-        TUint32 key(KCMailWidgetContentIdBase+i);
-        iCenRep->Get( key, cid );
-        TInt result = cid.Compare(aContentId);
-        if (!result)
+        TUint32 key( KCMailWidgetContentIdBase + i );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            TUint32 key2(KCMailMailboxIdBase+i);
-            iCenRep->Get( key2, ret );
-            break;
+            if ( iCenrepText.Compare( aContentId ) == 0 )
+                {
+                TUint32 key2( KCMailMailboxIdBase + i );
+                err = iCenRep->Get( key2, ret );
+                if ( err == KErrNone )
+                    {
+                    break;
+                    }
+                }
             }
         }
+    
     return ret;
     }
 
+
+
 // ---------------------------------------------------------------------------
 // CMailCpsSettings::GetPluginUidByContentId
 // ---------------------------------------------------------------------------
@@ -701,23 +717,30 @@
 TUint CMailCpsSettings::GetPluginUidByContentId( const TDesC& aContentId )
     {
     FUNC_LOG;
-    TInt ret(KErrNone);
-    for (TInt i = 0; i < KMaxMailboxCount; i++)
+  
+    TInt ret( KErrNone );
+    for ( TInt i = 0; i < KMaxMailboxCount; i++ )
         {       
-        TBuf<KMaxDescLen> cid;
-        TUint32 key(KCMailWidgetContentIdBase+i);
-        iCenRep->Get( key, cid );
-        TInt result = cid.Compare(aContentId);
-        if (!result)
+        TUint32 key( KCMailWidgetContentIdBase + i );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            TUint32 key2(KCMailPluginIdBase+i);
-            iCenRep->Get( key2, ret );
-            break;
+            if ( iCenrepText.Compare( aContentId ) == 0 )
+                {
+                TUint32 key2( KCMailPluginIdBase + i );
+                err = iCenRep->Get( key2, ret );
+                if ( err == KErrNone )
+                    {
+                    break;
+                    }
+                }
             }
         }
+    
     return ret;
     }
 
+
 // ---------------------------------------------------------------------------
 // CMailCpsSettings::Configuration
 // ---------------------------------------------------------------------------
@@ -748,68 +771,77 @@
 void CMailCpsSettings::ToggleWidgetNewMailIconL( TBool aIconOn, const TFSMailMsgId& aMailBox )
     {
     FUNC_LOG;
-    TBuf<KMaxDescLen> mailbox;
-    mailbox.Num(aMailBox.Id());
-
-    TBuf<KMaxDescLen> str;
-    str.Copy(KStartSeparator);    
-    str.Append(mailbox);
-    str.Append(KEndSeparator);    
-
-    TBuf<KMaxDescLen> stored;
-    TUint32 key(KCMailMailboxesWithNewMail);
-    iCenRep->Get( key, stored );
+ 
+    _LIT( KFormat, "%S%d%S" );
+    const TInt KStrLen = 64;
+        
+    TBuf<KStrLen> mailbox;
+    mailbox.Format( KFormat, &KStartSeparator, aMailBox.Id(), &KEndSeparator );
     
-    TInt result = stored.Find(str);
+    TUint32 key( KCMailMailboxesWithNewMail );
+    TInt err = iCenRep->Get( key, iCenrepText );
+    
+    if ( err == KErrNone )
+        {
+        TInt pos = iCenrepText.Find( mailbox );
     
-    if (aIconOn)
-        {
-        if (result < 0) // Not found
+        if ( aIconOn )
             {
-            stored.Append(str);
-            iCenRep->Set( key, stored );
+            if ( pos < 0 ) // Not found
+                {
+                iCenrepText.Append( mailbox );
+                iCenRep->Set( key, iCenrepText );
+                }
             }
-        }
-    else
-        {
-        if (result >= 0)
+        else
             {
-            stored.Delete(result, str.Length());
-            iCenRep->Set( key, stored );
+            if ( pos >= 0 )
+                {
+                iCenrepText.Delete( pos, mailbox.Length() );
+                iCenRep->Set( key, iCenrepText );
+                }
             }
         }
     }
 
+
+
 // -----------------------------------------------------------------------------
 // CMailCpsSettings::GetNewMailStateL
 // -----------------------------------------------------------------------------
 TBool CMailCpsSettings::GetNewMailStateL( const TFSMailMsgId& aMailBox, TInt aUnreadCount )
     {
     FUNC_LOG;
+
+    _LIT( KFormat, "%S%d%S" );
+    const TInt KStrLen = 64;
+
+
     TBool ret(EFalse);
     if ( aUnreadCount )
         {
-        TBuf<KMaxDescLen> mailbox;
-        mailbox.Num(aMailBox.Id());
-
-        TBuf<KMaxDescLen> str;
-        str.Copy(KStartSeparator);    
-        str.Append(mailbox);
-        str.Append(KEndSeparator);    
+        TBuf<KStrLen> mailbox;
+        mailbox.Format( KFormat, &KStartSeparator, aMailBox.Id(), &KEndSeparator );
 
-        TBuf<KMaxDescLen> stored;
-        TUint32 key(KCMailMailboxesWithNewMail);
-        iCenRep->Get( key, stored );
-    
-        TInt result = stored.Find(str);
-        if (result >= 0)
+        TUint32 key( KCMailMailboxesWithNewMail );
+        TInt err = iCenRep->Get( key, iCenrepText );
+        if ( err == KErrNone )
             {
-            ret = ETrue;
+            TInt pos = iCenrepText.Find( mailbox );
+            if ( pos >= 0 )
+                {
+                ret = ETrue;
+                }
             }
         }
     else
         {
         ToggleWidgetNewMailIconL( EFalse, aMailBox );
         }
+    
     return ret;
     }
+
+
+
+
--- a/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF	Tue May 11 15:57:15 2010 +0300
@@ -193,4 +193,6 @@
 	?Load2LC@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 192 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int)
 	?Load2L@CResourceLoader@@QAEPAVHBufC16@@HABVTDesC16@@@Z @ 193 NONAME ; class HBufC16 * CResourceLoader::Load2L(int, class TDesC16 const &)
 	?CalendarFileName@CBasePlugin@@MBEABVTDesC16@@XZ @ 194 NONAME ; class TDesC16 const & CBasePlugin::CalendarFileName(void) const
+	?StartOp@CDelayedOp@@QAEXXZ @ 195 NONAME ; void CDelayedOp::StartOp(void)
+	?DeleteDelayedOpsManager@CBasePlugin@@QAEXXZ @ 196 NONAME ; void CBasePlugin::DeleteDelayedOpsManager(void)
 
--- a/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF	Tue May 11 15:57:15 2010 +0300
@@ -297,4 +297,6 @@
 	_ZN15CResourceLoader7Load2LCEiRK7TDesC16 @ 296 NONAME
 	_ZN15CResourceLoader7Load2LCEii @ 297 NONAME
 	_ZNK11CBasePlugin16CalendarFileNameEv @ 298 NONAME
+	_ZN10CDelayedOp7StartOpEv @ 299 NONAME
+	_ZN11CBasePlugin23DeleteDelayedOpsManagerEv @ 300 NONAME
 
--- a/emailservices/emailstore/base_plugin/group/BasePlugin.mmp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/group/BasePlugin.mmp	Tue May 11 15:57:15 2010 +0300
@@ -62,7 +62,7 @@
 SOURCE basepluginfetch.cpp
 SOURCE baseplugindelayedops.cpp
 SOURCE basepluginresourceloader.cpp
-SOURCE NestedAO.cpp
+
 
 // *************************************
 // OTHER STUFF
--- a/emailservices/emailstore/base_plugin/inc/BasePlugin.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/BasePlugin.h	Tue May 11 15:57:15 2010 +0300
@@ -90,6 +90,12 @@
     // CFSMailPlugin //
     public:
 
+        /**
+         * This methoed must be called before destruction of 
+         * CBasePlugin derived class. To fix bug EIZU-7XVF2Z.
+         */
+        IMPORT_C void DeleteDelayedOpsManager();
+
         IMPORT_C virtual void ListMailBoxesL(
             RArray<TFSMailMsgId>& aMailboxes );
 
--- a/emailservices/emailstore/base_plugin/inc/NestedAO.h	Tue Apr 27 16:20:14 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
-* ============================================================================
-*  Name     : NestedAO.h
-*  Part of  : Base Plugin
-*
-*  Description:
-*       Class used to implement nested active object used to handle deletion
-*       of large number of messages by breaking them into smaller chunks
-*  Version:
-*
-*  Copyright (C) 2010 Nokia Corporation.
-*  This material, including documentation and any related
-*  computer programs, is protected by copyright controlled by
-*  Nokia Corporation. All rights are reserved. Copying,
-*  including reproducing, storing,  adapting or translating, any
-*  or all of this material requires the prior written consent of
-*  Nokia Corporation. This material also contains confidential
-*  information which may not be disclosed to others without the
-*  prior written consent of Nokia Corporation.
-* ============================================================================
-*/
-
-#ifndef __NESTED_AO_H__
-#define __NESTED_AO_H__
-
-//  Include Files
-
-
-#include <e32base.h>
-
-
-class MDeletionHandler
-    {
-public:
-    enum TState
-        {
-        EInProgress,
-        EFree
-        };
-    //Deletes messages from aStartIndex KSizeOfChunk at a time
-    virtual TBool DeleteMessagesInChunksL( TInt aStartIndex ) = 0;
-    };
-//Time interval between issuing 2 requests to delete messages
-const TInt KWaitIntervalInMicroSecs=500;
-//Maximum number of messages deleted in one go
-const TInt KSizeOfChunk=10;
-
-NONSHARABLE_CLASS ( CNestedAO ) : public CTimer
-    {
-    public:
-        
-        static CNestedAO* NewL( MDeletionHandler& aDeletionHandler );
-        virtual ~CNestedAO();
-        // --------------------------------------------------------------------------
-        // CNestedAO::DeleteMessagesAsync
-        // Used to delete messages asynchronously 
-        // Deleting a small number of messages at a time
-        // ------------
-        void DeleteMessagesAsync();
-        // --------------------------------------------------------------------------
-        // CNestedAO::Rc
-        // Used to return the iStatus return value
-        // ------------        
-        TInt Rc() { return iRc; }
-        
-    private:
-        CNestedAO( MDeletionHandler& aDeletionHandler );
-        void ConstructL();
-        
-        // inherited from CActive
-        virtual void RunL();
-        virtual void DoCancel();
-        // --------------------------------------------------------------------------
-        // CNestedAO::Stop
-        // Stops the scheduler from running
-        // Called after all messages are processed
-        // or in error condition
-        // ------------           
-        void Stop();
-        
-    private:
-        CActiveSchedulerWait* iNestedWait;
-        MDeletionHandler& iDeletionHandler;
-        TInt iDeletionIndex;
-        TInt iRc;
-    };
-
-
-#endif  //__NESTED_AO_H__
--- a/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h	Tue May 11 15:57:15 2010 +0300
@@ -49,4 +49,31 @@
     CleanupResetAndDestroyClose<T>::PushL(aRef);
     }
 
+/**
+* Cleanup support for owning pointer arrays
+*/
+
+template<class T>
+class CleanupResetAndDestroy
+{
+private:
+    inline static void ResetAndDestroy( TAny *aPtr )
+    {
+    reinterpret_cast<T*>( aPtr )->ResetAndDestroy();
+    };
+public:
+    inline static void PushL( T& aItem )
+    { 
+    TCleanupItem item( &CleanupResetAndDestroy::ResetAndDestroy, &aItem );
+    CleanupStack::PushL( item );
+    };
+} ;
+
+template <class T>
+inline void CleanupResetAndDestroyPushL( T& aRef )
+    {
+    CleanupResetAndDestroy<T>::PushL( aRef );
+    }
+
+
 #endif
--- a/emailservices/emailstore/base_plugin/inc/baseplugindelayedops.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugindelayedops.h	Tue May 11 15:57:15 2010 +0300
@@ -68,22 +68,25 @@
  * The base class for the delayed operations. All of the delayed operations must
  * derive from it.
  */
-class CDelayedOp : public CAsyncOneShot
+class CDelayedOp : public CActive
     {
 
 public:
-    
+
     IMPORT_C virtual ~CDelayedOp();
     
     IMPORT_C void SetContext(
         CBasePlugin& aPlugin,
         MDelayedOpsManager& aManager );
-    
+
+    IMPORT_C void StartOp();
+
     /**
      * Derived classes must implement their asynchronous processing in this
      * method. The GetPlugin method can only be used from within this method.
+     * Returns boolean: ETrue if op is yielding and needs to be called again, or EFalse if op is done.
      */
-    virtual void ExecuteOpL() = 0;
+    virtual TBool ExecuteOpL() = 0;
 
 protected:
     
--- a/emailservices/emailstore/base_plugin/inc/baseplugindelayedopsprivate.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/inc/baseplugindelayedopsprivate.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,6 @@
 
 
 #include "baseplugindelayedops.h"
-#include "NestedAO.h"
 
 /**
  * Lets the user enqueue and dequeue asynchronous jobs for handling
@@ -70,7 +69,7 @@
 /**
  * 
  */
-NONSHARABLE_CLASS( CDelayedDeleteMessagesOp ) : public CDelayedOp, public MDeletionHandler
+NONSHARABLE_CLASS( CDelayedDeleteMessagesOp ) : public CDelayedOp
     {
 
 public:
@@ -88,12 +87,8 @@
     virtual ~CDelayedDeleteMessagesOp();
 
     //CDelayedOp::ExecuteOpL
-    virtual void ExecuteOpL();
-    
-    //From MDeletionHandler
-    //Used to delete messages in chunks starting from aStartIndex
-    TBool DeleteMessagesInChunksL( TInt aStartIndex );
-    
+    virtual TBool ExecuteOpL();
+
 private:
 
     void ConstructL( const RArray<TFSMailMsgId>& aMessages );
@@ -105,14 +100,14 @@
     
     CDelayedDeleteMessagesOp( const CDelayedDeleteMessagesOp& );
     CDelayedDeleteMessagesOp& operator= ( const CDelayedDeleteMessagesOp& );    
-    
+
 private:
     
     TMsgStoreId iMailBoxId;
     TMsgStoreId iFolderId;
     RArray<TMsgStoreId> iMessages;
     TBool iImmediateDelete;
-    TState iState;
+    TInt iIndex;
     __LOG_DECLARATION
     };
 
@@ -142,7 +137,7 @@
     virtual ~CDelayedSetContentOp();
 
     //CDelayedOp::ExecuteOpL
-    virtual void ExecuteOpL();
+    virtual TBool ExecuteOpL();
     
 private:
 
--- a/emailservices/emailstore/base_plugin/src/BasePlugin.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/BasePlugin.cpp	Tue May 11 15:57:15 2010 +0300
@@ -1152,6 +1152,15 @@
     CleanupStack::PopAndDestroy( &folders );
     }
 
+/**
+ * This methoed must be called before destruction of 
+ * CBasePlugin derived class. To fix bug EIZU-7XVF2Z.
+ */
+EXPORT_C void CBasePlugin::DeleteDelayedOpsManager()
+    {
+    delete iDelayedOpsManager;
+    iDelayedOpsManager = NULL;
+    }
 
 /**
  *
--- a/emailservices/emailstore/base_plugin/src/NestedAO.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* ==============================================================================
-*  Name        : NestedAO.cpp
-*  Part of     : Base Plugin
-*  Description : Implementation of a nested active object used to handle deletion
-*                of large number of messages by breaking them into smaller chunks
-*  Version     : 
-*
-*  Copyright (c) 2005 - 2010 Nokia Corporation.
-*  This material, including documentation and any related
-*  computer programs, is protected by copyright controlled by
-*  Nokia Corporation. All rights are reserved. Copying,
-*  including reproducing, storing, adapting or translating, any
-*  or all of this material requires the prior written consent of
-*  Nokia Corporation. This material also contains confidential
-*  information which may not be disclosed to others without the
-*  prior written consent of Nokia Corporation.
-* ==============================================================================
-*/
-//  Include Files
-//
-
-
-#include "NestedAO.h"
-#include "baseplugindelayedops.h"
-#include "baseplugindelayedopsprivate.h"
-
-//Class CNestedAO
-
-// --------------------------------------------------------------------------
-//  CNestedAO::NewL
-// ------------ 
-CNestedAO* CNestedAO::NewL( MDeletionHandler& aDeletionHandler )
-    {
-    CNestedAO* self = new(ELeave) CNestedAO( aDeletionHandler );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-// --------------------------------------------------------------------------
-//  CNestedAO::CNestedAO
-// ------------ 
-CNestedAO::CNestedAO( MDeletionHandler& aDeletionHandler ) 
- : CTimer( EPriorityIdle ), iDeletionHandler( aDeletionHandler ), iRc( KErrNone )
-    {
-    }
-// --------------------------------------------------------------------------
-//  CNestedAO::ConstructL()
-// ------------ 
-void CNestedAO::ConstructL()
-    {
-    CTimer::ConstructL();
-    iNestedWait = new( ELeave ) CActiveSchedulerWait();
-    CActiveScheduler::Add( this );
-    }
-// --------------------------------------------------------------------------
-//  CNestedAO::~CNestedAO
-// ------------ 
-CNestedAO::~CNestedAO()
-    {
-    Cancel();
-    delete iNestedWait;
-    }
-// --------------------------------------------------------------------------
-// CNestedAO::DeleteMessagesAsync
-// Used to delete messages asynchronously 
-// Deleting a small number of messages at a time
-// ------------
-void CNestedAO::DeleteMessagesAsync()
-    {
-    iDeletionIndex = 0;
-    After( KWaitIntervalInMicroSecs );  //to invoke RunL after 100 microseconds
-    iNestedWait->Start(); 
-    }
-// --------------------------------------------------------------------------
-//  CNestedAO::DoCancel
-// ------------ 
-void CNestedAO::DoCancel()
-    {
-    iRc = KErrCancel;
-    Stop();
-    }
-// --------------------------------------------------------------------------
-//  CNestedAO::RunL
-// ------------    
-void CNestedAO::RunL()
-    {
-    iRc = iStatus.Int();
-    if ( iStatus.Int() == KErrNone )
-        {
-        TBool done = iDeletionHandler.DeleteMessagesInChunksL( iDeletionIndex );
-        if( !done )
-        	{
-        	//Increment deletionidex
-        	iDeletionIndex+=KSizeOfChunk;
-        	After( KWaitIntervalInMicroSecs ); 
-        	}
-        else
-        	{
-        	Stop();
-        	}
-		}
-    else
-        {
-        Stop();
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CNestedAO::Stop
-// Stops the scheduler from running
-// Called after all messages are processed
-// or in error condition
-// ------------    
-void CNestedAO::Stop()
-    {
-    if( iNestedWait->IsStarted() )
-        {
-        // Stop the nested active scheduler (flow-of-control will pick up immediately following the
-        // call to iWait.Start().
-        iNestedWait->AsyncStop();
-        } // end if
-    }
--- a/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,6 @@
 
 #include "baseplugindelayedops.h"
 #include "baseplugindelayedopsprivate.h"
-#include "NestedAO.h"
 
 ///////////////////////////////////////////////////
 // CDelayedOp                                    //
@@ -46,9 +45,21 @@
 /**
  * 
  */
+/*public*/ EXPORT_C void CDelayedOp::StartOp()
+    {
+    iStatus = KRequestPending;
+    SetActive();
+    TRequestStatus* pStatus = &iStatus;
+    User::RequestComplete( pStatus, KErrNone );
+    } 
+
+/**
+ * 
+ */
 /*protected*/ EXPORT_C CDelayedOp::CDelayedOp()
-    : CAsyncOneShot( CActive::EPriorityIdle )
+    : CActive( CActive::EPriorityIdle )
     {    
+    CActiveScheduler::Add( this );
     }
     
 /**
@@ -57,7 +68,9 @@
 /*private virtual*/ EXPORT_C void CDelayedOp::RunL()
     {
     __LOG_ENTER_SUPPRESS( "Run" );
-    TRAPD( err, ExecuteOpL() );
+    TBool again( EFalse );
+    
+    TRAPD( err, again = ExecuteOpL() );
     
     if ( KErrNone != err )
         {
@@ -65,9 +78,16 @@
             "Error while executing delayed operation: %d.", err );
         }
     
-    //self-destroy.
-    iManager->DequeueOp( *this );
-    delete this;
+    if ( again )
+        {
+        StartOp();
+        }
+    else
+        {
+        //self-destroy.
+        iManager->DequeueOp( *this );
+        delete this;
+        }
     }
     
 /**
@@ -123,7 +143,7 @@
     {
     iDelayedOps.AppendL( aOp );
     aOp->SetContext( iPlugin, *this );        
-    aOp->Call();
+    aOp->StartOp();
     }
     
 /**
@@ -231,63 +251,6 @@
 /**
  * 
  */
-/*public virtual*/TBool CDelayedDeleteMessagesOp::DeleteMessagesInChunksL( TInt aStartIndex )
-    {
-    __LOG_ENTER( "DeleteMessagesInChunksL" );
-    TBool done=EFalse;
-    TInt endIndex;
-    if( aStartIndex + KSizeOfChunk < iMessages.Count() )
-        {
-            endIndex = aStartIndex + KSizeOfChunk;
-        }
-    else
-        {
-        endIndex = iMessages.Count();   
-        done=ETrue;
-        }
-    CMailboxInfo& mailBoxInfo
-        = GetPlugin().GetMailboxInfoL( iMailBoxId );
-    CMsgStoreMailBox& mailBox = mailBoxInfo();
-
-    for ( TInt i = aStartIndex; i < endIndex; ++i )
-        {
-        TMsgStoreId msgId = iMessages[i];
-        
-        if ( EFalse == iImmediateDelete )
-            {
-            //try to find the message in the deleted items folder.
-            CMsgStoreMessage* theMessage = NULL;
-            TRAP_IGNORE( theMessage = mailBox.FetchMessageL(
-              msgId, mailBoxInfo.iRootFolders.iFolders[EFSDeleted] ) );
-            
-            if ( NULL == theMessage )
-                {
-                //if not in deleted items then move it there.
-                __LOG_WRITE8_FORMAT1_INFO("Moving message 0x%X to the deleted items.", msgId );
-                mailBox.MoveMessageL(
-                   msgId, KMsgStoreInvalidId,
-                   mailBoxInfo.iRootFolders.iFolders[EFSDeleted] );
-                }
-            else
-                {
-                //in deleted items, really delete it.
-                __LOG_WRITE8_FORMAT1_INFO( "Deleting message 0x%X.", msgId );
-
-                delete theMessage;
-                mailBox.DeleteMessageL( msgId, iFolderId );
-                }
-            }
-        else
-            {
-            mailBox.DeleteMessageL( msgId, iFolderId );
-            }
-        }
-    __LOG_EXIT;
-    return done;    
-    }
-/**
- * 
- */
 /*private*/
 void CDelayedDeleteMessagesOp::ConstructL(
     const RArray<TFSMailMsgId>& aMessages )
@@ -320,33 +283,67 @@
     TMsgStoreId aMailBoxId,
     TMsgStoreId aFolderId )
     :
-    iMailBoxId( aMailBoxId ), iFolderId( aFolderId ),
-    iImmediateDelete( EFalse ), iState ( EFree )
+    iMailBoxId( aMailBoxId ), iFolderId( aFolderId )
     {
     }
 
 /**
  * 
  */
-/*private*/ void CDelayedDeleteMessagesOp::ExecuteOpL()
+/*private*/ TBool CDelayedDeleteMessagesOp::ExecuteOpL()
     {
     __LOG_ENTER( "ExecuteOpL" );
-    if ( iState != EFree )
+
+    //Maximum number of messages deleted in one go
+    const TInt KNumOfDeletesBeforeYield = 30;
+
+    TBool runAgain = ETrue;
+    TInt  endIndex = iIndex + KNumOfDeletesBeforeYield;
+
+    if( endIndex >= iMessages.Count() )
         {
-        //this code becomes re-entrant now because we use nested AS.
-        // so if we are already authenticating, return right away.
-        return;
+        endIndex = iMessages.Count();   
+        runAgain = EFalse;  // last time, no need to run again.
         }
-    iState=EInProgress;
-    CNestedAO* nestedAO = CNestedAO::NewL( *this );
-    //this is a blocking call with nested active scheduler
-    //This method makes a callback periodically to DeleteMessagesInChunks
-    //to delete the messages one chunk at a time
-    nestedAO->DeleteMessagesAsync();
-    //continue execution here
-    delete nestedAO;
-    iState = EFree;
+
+    CMailboxInfo& mailBoxInfo = GetPlugin().GetMailboxInfoL( iMailBoxId );
+    CMsgStoreMailBox& mailBox = mailBoxInfo();
+
+    for ( ; iIndex < endIndex; iIndex++ )
+        {
+        TMsgStoreId msgId = iMessages[iIndex];
+        
+        if ( EFalse == iImmediateDelete )
+            {
+            //try to find the message in the deleted items folder.
+            CMsgStoreMessage* theMessage = NULL;
+            TRAP_IGNORE( theMessage = mailBox.FetchMessageL(
+                    msgId, mailBoxInfo.iRootFolders.iFolders[ EFSDeleted ] ) );
+            
+            if ( NULL == theMessage )
+                {
+                //if not in deleted items then move it there.
+                __LOG_WRITE8_FORMAT1_INFO("Moving message 0x%X to the deleted items.", msgId );
+                mailBox.MoveMessageL( msgId, KMsgStoreInvalidId,
+                                      mailBoxInfo.iRootFolders.iFolders[ EFSDeleted ] );
+                }
+            else
+                {
+                //in deleted items, really delete it.
+                __LOG_WRITE8_FORMAT1_INFO( "Deleting message 0x%X.", msgId );
+
+                delete theMessage;
+                mailBox.DeleteMessageL( msgId, iFolderId );
+                }
+            }
+        else
+            {
+            mailBox.DeleteMessageL( msgId, iFolderId );
+            }
+        }
+
     __LOG_EXIT;
+    return runAgain;
     }
 
 
@@ -419,7 +416,7 @@
 /**
  * CDelayedOp::ExecuteOpL
  */
-/*public virtual*/ void CDelayedSetContentOp::ExecuteOpL()
+/*public virtual*/ TBool CDelayedSetContentOp::ExecuteOpL()
     {
     __LOG_ENTER( "ExecuteOpL" )
 
@@ -446,8 +443,10 @@
             "Updated the properties of part 0x%X.", part->Id() )
         }
     
-    CleanupStack::PopAndDestroy( part );    
+    CleanupStack::PopAndDestroy( part );
+
     __LOG_EXIT
+    return EFalse;
     }
 
 /**
--- a/emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp	Tue May 11 15:57:15 2010 +0300
@@ -2724,11 +2724,12 @@
         aMessage.ReadL( aIndex, length16Pckg, position );        
         position += length16Pckg.Length();
         
-        HBufC8* buf8 = HBufC8::NewL( length16 );            
-        aArray.Append( buf8 );
+        HBufC8* buf8 = HBufC8::NewLC( length16 );            
         TPtr8 buf8Ptr( buf8->Des() );
         aMessage.ReadL( aIndex, buf8Ptr, position );
         buf8->Des().SetLength( length16 ); 
+        aArray.AppendL( buf8 );
+        CleanupStack::Pop(buf8);
         position += length16;
         } // end while
     }
@@ -2755,7 +2756,7 @@
         
         if ( readBuf.MaxLength() < length16 )
             {
-            readBuf.ReAlloc( length16 );
+            readBuf.ReAllocL( length16 );
             }
         aMessage.ReadL( aIndex, readBuf, position );
         
@@ -2763,7 +2764,9 @@
         const TUint16* valuePtr = reinterpret_cast<const TUint16*>( readBuf.Ptr() );
         TPtrC valueDes( valuePtr, length16 / 2 );  
         
-        aArray.Append( valueDes.AllocL() );
+        HBufC *p = valueDes.AllocLC();
+        aArray.AppendL( p );
+        CleanupStack::Pop( p );
         
         position += length16;
         } // end while
--- a/emailuis/emailui/data/FreestyleEmailUi.rss	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/data/FreestyleEmailUi.rss	Tue May 11 15:57:15 2010 +0300
@@ -1548,7 +1548,6 @@
           MENU_ITEM { command = EFsEmailUiCmdActionsForward; txt = qtn_fse_message_list_options_forward; },
           MENU_ITEM { command = EFsEmailUiCmdMailActions; txt = qtn_cmail_message_list_options_actions; cascade=r_fsemailui_maillist_submenu_mail_actions;},
           MENU_ITEM { command = EFsEmailUiCmdSync; txt = qtn_cmail_message_list_options_send_receive; },
-          MENU_ITEM { command = EFsEmailUiCmdCancelSync; txt = qtn_fse_launcher_options_cancel_sync; },  
           MENU_ITEM { command = EFsEmailUiCmdMarkingMode; txt = qtn_fse_message_list_options_mark; },
           MENU_ITEM { command = EFsEmailUiCmdSettings; txt = qtn_fse_message_list_options_settings; },
           MENU_ITEM { command = EFsEmailUiCmdHelp; txt = qtn_options_help; },
@@ -1941,11 +1940,6 @@
     items =
         {
         MENU_ITEM { command = EFsEmailUiCmdSelect; txt = text_softkey_select; },
-        MENU_ITEM { command = EFsEmailUiCmdGoOnline; txt = qtn_fse_launcher_options_go_online; },
-        MENU_ITEM { command = EFsEmailUiCmdGoOffline; txt = qtn_fse_launcher_options_go_offline; },
-        MENU_ITEM { command = EFsEmailUiCmdActionsCollapseAll; txt = qtn_fse_message_list_options_collapse_all; },
-        MENU_ITEM { command = EFsEmailUiCmdActionsExpandAll; txt = qtn_fse_message_list_options_expand_all; },
-        MENU_ITEM { command = EFsEmailUiCmdSettings; txt = qtn_fse_folder_list_options_folder_settings; },
         MENU_ITEM { command = EFsEmailUiCmdHelp; txt = qtn_options_help; },
         MENU_ITEM { command = EFsEmailUiCmdExit; txt = qtn_options_exit; }
         };
--- a/emailuis/emailui/data/html/header.js	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/data/html/header.js	Tue May 11 15:57:15 2010 +0300
@@ -4,48 +4,48 @@
 var setScrollPositionInterval;
 
 function collapseHeader(sendEvent) {
-	if (sendEvent) {
-    	location.href = "cmail://collapseHeader/";
-    	}
+    if (sendEvent) {
+        location.href = "cmail://collapseHeader/";
+        }
     collapsed = true;
-	handleHeaderDisplay( "header_table", "table_initial" );
-	updateHeader();
-	}
+    handleHeaderDisplay('expanded_header', 'collapsed_header');
+    updateHeader();
+    }
 
 function expandHeader(sendEvent) {
-	if (sendEvent) {
-	    location.href = "cmail://expandHeader/";
-    	}
-	collapsed = false;
-	handleHeaderDisplay( "table_initial", "header_table" )
-	parent.document.getElementById('email_frameSet').rows = "40%, *";
-	}
+    if (sendEvent) {
+        location.href = "cmail://expandHeader/";
+        }
+    collapsed = false;
+    handleHeaderDisplay('collapsed_header', 'expanded_header');
+    updateHeader();
+    }
 
 function updateHeader() {
     var rows = "40%, *";
-	if (collapsed) {
-    	if (displayImagesHidden || (parent.header_frame.g_autoLoadImages != 0) || (parent.hiddenCount == 0)) {
+    if (collapsed) {
+        if (displayImagesHidden || (parent.header_frame.g_autoLoadImages != 0) || (parent.hiddenCount == 0)) {
             rows = "10%, *";
         } else {
             rows = "17%, *";
-	    }
-	}
+            }
+        }
     parent.document.getElementById('email_frameSet').rows = rows;
     }
 
 function handleHeaderDisplay( tableToHide, tableToShow ) {
-	document.getElementById(tableToShow).style.display = "";
-	document.getElementById(tableToHide).style.display = "none";
-	}
+    document.getElementById(tableToHide).style.display = 'none';
+    document.getElementById(tableToShow).style.display = '';
+    }
 
 function init(scrollPos) {
-	if (document.getElementById("table_initial").style.display != "none") {
-    	    collapseHeader(false);
-	} else {
-	    expandHeader(false);
-	}
+    if (document.getElementById('collapsed_header').style.display != 'none') {
+        collapseHeader(false);
+    } else {
+        expandHeader(false);
+    }
     window.scrollTo(0, scrollPos);
-	setScrollPositionInterval = setInterval("updateScrollPosition()", 500);
+    setScrollPositionInterval = setInterval("updateScrollPosition()", 500);
     }
 
 function displayImagesButtonPressed() {
--- a/emailuis/emailui/inc/FreestyleEmailUiContactHandler.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiContactHandler.h	Tue May 11 15:57:15 2010 +0300
@@ -187,7 +187,7 @@
 	 * @param aMailBox = current mailbox, needed to know which MRU list to use
 	 */
 	void SearchMatchesL( const TDesC& aText, MFSEmailUiContactHandlerObserver* aObserver,
-						 CFSMailBox* aMailBox );
+						 CFSMailBox* aMailBox, TInt aMode = -1 );
 	
 	/**
 	 * Reset the status of contact Handlers, cancel all active asynchronous calls. This should be called
--- a/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerContainer.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerContainer.h	Tue May 11 15:57:15 2010 +0300
@@ -25,8 +25,6 @@
 #include <brctlspecialloadobserver.h>
 #include <brctllinkresolver.h>
 
-#include <finditemengine.h>
-
 #include "FreestyleEmailUiAknStatusIndicator.h"
 #include "FreestyleEmailDownloadInformationMediator.h"
 #include "freestyleemailcenrepkeys.h"
@@ -36,9 +34,9 @@
 class CFreestyleEmailUiAppUi;
 class CFreestyleMessageHeaderURLEventHandler;
 struct TAttachmentData;
-
 class CFsEmailUiHtmlViewerContainer;
 class MTouchFeedback;
+class CFindItemEngine;
 
 /**
  * Single key listener
@@ -262,6 +260,18 @@
     // Inform that maillist model has updated
     void MailListModelUpdatedL();
     
+    // Zoom handling
+    void ZoomInL();
+    void ZoomOutL();
+    TInt ZoomLevelL() const;
+    void SetZoomLevelL( const TInt aZoomLevel );
+    TInt MaxZoomLevel() const;
+
+private:
+    
+    static TInt DoZoom( TAny* aPtr  );
+    void DoZoomL();
+    
 private: // from CEUiHtmlViewerSettings::MObserver
 
     /**
@@ -271,6 +281,8 @@
 
 private:
 
+    void CreateBrowserControlInterfaceL();
+    
     // Second phase constructor.
     void ConstructL();
     // C++ constructor.
@@ -324,7 +336,6 @@
             const TDesC& aFileName, CFSMailMessagePart& aHtmlBodyPart );
     HBufC8* GetCharacterSetL( CFSMailMessagePart& aHtmlBodyPart );
     TBool IsMessageBodyURLL(const TDesC& aUrl);
-	void CreateHyperlinksFromUrlsL( RBuf& aSource );
 	TInt TotalLengthOfItems( CFindItemEngine& aItemEngine ) const;
 	
     //Returns ETrue of clicking on a link requires a browser to be launched
@@ -340,6 +351,8 @@
        
     TRect CalcAttachmentStatusRect();
     void TouchFeedback();
+    
+    void WriteToFileL( const TDesC& aFileName, RBuf& aHtmlText );
 
 private: // data
 
@@ -381,7 +394,27 @@
     TBool iHeaderExpanded;
     // tactile feed back -- not owned
     MTouchFeedback* iTouchFeedBack;
+    
+    TInt iZoomLevel;
     };
 
 
+/**
+* PlainTextToHtmlConverter
+* 
+* PlainTextToHtmlConverter converts plain text to html. It adds html entities
+* and hyperlinks.
+*/
+NONSHARABLE_CLASS (PlainTextToHtmlConverter)
+    {
+    private:
+        PlainTextToHtmlConverter();
+        
+    public:
+        static void PlainTextToHtmlL(const TDesC& aPlainText, RBuf& aHtmlText);
+        
+    private:
+        static void ConvertTextL(const TDesC& aSource, RBuf& aTarget);
+        static void ConvertUrlL(const TDesC& aSource, RBuf& aTarget);
+    };
 #endif // __FREESTYLEEMAILUI_HTML_VIEWER_CONTAINER_H__
--- a/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerView.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiHtmlViewerView.h	Tue May 11 15:57:15 2010 +0300
@@ -219,7 +219,6 @@
     void DynInitZoomMenuL( CEikMenuPane* aMenuPane );
     TInt ZoomLevelIndexL();
     void SetZoomLevelIndexL( TInt aIndex );
-    void RestoreZoomLevelL();
     void SaveEmailAsContactL(
         const TDesC& aEmailAddress );
     //new functions for support of HTML viewer
@@ -339,6 +338,9 @@
     CFlagSelectionNoteHandler* iFlagSelectionHandler;  
     TBool iNextOrPrevMessageSelected;
     TBool iMessageIsDeleted;
+    
+    // Id of last deleted message
+    TFSMailMsgId iLastDeletedMessageID;
     };
 
 ////////////////////////////////////////
--- a/emailuis/emailui/inc/FreestyleEmailUiLauncherGridVisualiser.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiLauncherGridVisualiser.h	Tue May 11 15:57:15 2010 +0300
@@ -181,6 +181,8 @@
 	// From base class CFsEmailUiViewBase
 	void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const;
 	
+	void FadeOut(TBool aDirectionOut);
+	
     /**
      * Called when flip state changes.
 	 */
--- a/emailuis/emailui/inc/FreestyleEmailUiLayoutData.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiLayoutData.h	Tue May 11 15:57:15 2010 +0300
@@ -341,8 +341,7 @@
 static const TInt KMaxPcsMatches = 50;
 
 // Predictive contact search popup colors
-static const TRgb KPcsPopupHighlightColor( 0,200,200 );
-static const TRgb KPcsPopupDimmedFontColor( 192,192,192 );
+const TInt KPcsPopupDimmedFontTransparency  = 100;
 
 //Icon sizes
 static const TInt KListTextureNodeExpandedSize = 14;
--- a/emailuis/emailui/inc/FreestyleEmailUiLayoutHandler.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiLayoutHandler.h	Tue May 11 15:57:15 2010 +0300
@@ -234,8 +234,7 @@
 		
 		// Predictive contact search popup
 		TInt MaxPcsMatches() const;
-		TRgb PcsPopupHighlightColor() const;
-		TRgb PcsPopupDimmedFontColor() const;
+		TInt PcsPopupDimmedFontTransparency() const;
 		
 		//To retrieve respecitve Icon Sizes
 		TInt ListTextureNodeExpandedSize() const;
--- a/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiMailListVisualiser.h	Tue May 11 15:57:15 2010 +0300
@@ -268,6 +268,19 @@
 // </cmail>
 	{
 friend class CMailListUpdater;
+private:
+
+	    // Refresh state
+	    enum TRefreshState
+	        {
+            ERefreshNone,
+	        // Full refresh needed. Update model and redraw entire list.
+	        EFullRefreshNeeded,
+	        // Partial refresh needed.
+	        EPartialRefreshNeeded,
+	        // Focus to the beginning.
+	        EFocusChangeNeeded
+	        };
 public:
 	static CFSEmailUiMailListVisualiser* NewL(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aMailListControlGroup);
 	static CFSEmailUiMailListVisualiser* NewLC(CAlfEnv& aEnv, CFreestyleEmailUiAppUi* aAppUi, CAlfControlGroup& aMailListControlGroup);
@@ -442,6 +455,9 @@
             const TDesC8& aCustomMessage );
     void ChildDoDeactivate();
     void GetParentLayoutsL( RPointerArray<CAlfVisual>& aLayoutArray ) const;
+    
+	void FadeOut(TBool aDirectionOut);
+    
     /**
 	 * @see CFsEmailUiViewBase::SetStatusBarLayout
 	 */
--- a/emailuis/emailui/inc/FreestyleEmailUiViewBase.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleEmailUiViewBase.h	Tue May 11 15:57:15 2010 +0300
@@ -100,6 +100,8 @@
      */
     void DoTransition( TBool aDirectionOut );
 
+    virtual void FadeOut(TBool aDirectionOut);
+    
     /**
      * Prepares application exit. This is called by AppUi during cleanup before AppUi's destructor
      */
--- a/emailuis/emailui/inc/FreestyleMessageHeaderHTML.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/FreestyleMessageHeaderHTML.h	Tue May 11 15:57:15 2010 +0300
@@ -92,8 +92,11 @@
      * takes care of the urls and marks them as hotspots
      */
     void WriteSubjectL(TDesC& aText ) const; 
-    
+
+    void ExportCollapseButtonL() const;
+    void ExportTimeAndExpandButtonL() const;
     void ExportSubjectL() const;
+    void ExportSubjectCollapsedL() const;
     void ExportFromL() const;
     void ExportToL() const;
     void ExportCcL() const;
@@ -118,22 +121,22 @@
     void AddImageL( const TDesC8& aImageUrl ) const;
     void AddImageL( const TDesC8& aImageId, const TDesC8& aImageUrl, const TDesC8& aImageEvent ) const;
     
-    void StartHeaderTableL( const TDesC8& aTableId ) const;
+    void StartHeaderTableL( const TDesC8& aTableId, TBool aVisible ) const;
     void EndHeaderTableL() const;
 
     void StartTableL( const TDesC8& aTableId ) const;
     void EndTableL() const;
-    
-    void AddShowDetailL() const;
-    
+
     HBufC8* ClickImageEventL( const TDesC8& aImageName ) const;
 
     void AddJavascriptL() const;    
     
     HBufC8* HeadingTextLC( TInt aId ) const;
     HBufC8* HeadingTextLC( TInt aId, TInt aSize ) const;
-    
-    void ExportInitialTableL() const;
+
+    void ExportCollapsedHeaderTableL() const;
+    void ExportExpandedHeaderTableL() const;
+
     /**
      * Function for generating follow up icon's HTML code.
      * Returns NULL if no follow up flags are set.
--- a/emailuis/emailui/inc/ncsaddressinputfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncsaddressinputfield.h	Tue May 11 15:57:15 2010 +0300
@@ -158,7 +158,7 @@
     
     void FixSemicolonAtTheEndL();
 
-    void SetCursorVisible( TBool aCursorVisible );
+    void SetPhysicsEmulationOngoing( TBool aPhysOngoing );
     
 public: // from CoeControl
     
--- a/emailuis/emailui/inc/ncscomposeviewcontainer.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncscomposeviewcontainer.h	Tue May 11 15:57:15 2010 +0300
@@ -739,6 +739,7 @@
     TInt iVisibleAreaHeight;
     TInt iTotalMoveY;
     TInt iSeparatorHeight;
+    TInt iHeaderHeight;
     };
 
 
--- a/emailuis/emailui/inc/ncseditor.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncseditor.h	Tue May 11 15:57:15 2010 +0300
@@ -102,6 +102,10 @@
 
 	void UpdateCustomDrawer();
 	
+	void SetPhysicsEmulationOngoing( TBool aPhysOngoing );
+	
+	TBool IsPhysicsEmulationOngoing() const;
+	
 #ifdef _DEBUG
     void DebugDump();
 #endif
@@ -180,6 +184,9 @@
 
 	// Caption text for virtual ITU-T
     HBufC*   iCaptionText; 
+    
+    // flag to indicate is there physics based dragging or flicking ongoing
+    TBool iPhysOngoing;
     };
 
 
--- a/emailuis/emailui/inc/ncspopuplistbox.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncspopuplistbox.h	Tue May 11 15:57:15 2010 +0300
@@ -62,7 +62,7 @@
     *
     * @param aText
     */
-    void InitAndSearchL( const TDesC& aText );
+    void InitAndSearchL( const TDesC& aText, TInt aMode = -1 );
 		
     // Destructor
     virtual ~CNcsPopupListBox();
@@ -93,7 +93,7 @@
     * 
     * @param aText
     */
-    void SetSearchTextL( const TDesC& aText );
+    void SetSearchTextL( const TDesC& aText, TInt aMode = -1 );
  
     /*
     * 
--- a/emailuis/emailui/inc/ncssubjectfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/inc/ncssubjectfield.h	Tue May 11 15:57:15 2010 +0300
@@ -95,7 +95,7 @@
 		
     void EnableKineticScrollingL(CAknPhysics* aPhysics );
     
-    void SetCursorVisible( TBool aCursorVisible );
+    void SetPhysicsEmulationOngoing( TBool aPhysOngoing );
     
 public: // from CoeControl
         /**
--- a/emailuis/emailui/src/FreestyleEmailDownloadInformationMediator.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailDownloadInformationMediator.cpp	Tue May 11 15:57:15 2010 +0300
@@ -242,7 +242,7 @@
                  countObject.iSaveRequestedCount > 0 )
                  {
                  TFsEmailUiUtility::SetDownloadSave( ETrue );
-                 TFsEmailUiUtility::ShowFilesSavedToFolderNoteL( countObject.iSaveRequestedCount );
+                 TFsEmailUiUtility::ShowFilesSavedToFolderNoteL( countObject.iDownloadsCompletedCount /*iSaveRequestedCount*/ ); // Fix: ESLX-84ACJ9
                  }        
             // Show "Download completed" if necessary
             else if ( CompletionNotesInUseL() && completedDownloadsToNotify )
@@ -397,14 +397,7 @@
     	{
    		if ( iObserverArray[i].iObserver == aObserver && iObserverArray[i].iMessageId == aMessageId )
    			{
-   		
-			TDownloadCount countObject( aMessageId );
-   		    TInt idx = iDownloadCountArray.Find( countObject, 
-   		                                         TIdentityRelation<TDownloadCount>(EqualMessageId) );    
-   		    if ( idx == KErrNotFound )
-   		        {
-				RemoveObserver(i);
-   		        }
+			RemoveObserver(i);
    			}
     	}
 	}
--- a/emailuis/emailui/src/FreestyleEmailUiAppui.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiAppui.cpp	Tue May 11 15:57:15 2010 +0300
@@ -1316,7 +1316,7 @@
         TAdvancedPointerEvent* pointerEvent(aEvent.Pointer());
         iLastPointerPosition = pointerEvent->iParentPosition;
         }
-    
+
 	TInt key = aEvent.Key()->iScanCode;
     // <cmail>
     // to disable voice commands during creating new mail message
@@ -1361,7 +1361,7 @@
                 {
                 iCurrentActiveView->HandleAppForegroundEventL( EFalse );
                 }
-            // in case the popupmenu is shown propagate event to it 
+            // in case the popupmenu is shown propagate event to it
             if( iFolderListVisualiser && iFolderListVisualiser->IsPopupShown() )
                 {
                 iFolderListVisualiser->HandleAppForegroundEventL( EFalse );
@@ -1384,7 +1384,7 @@
                 {
                 iStatusIndicator->HandleForegroundEventL();
                 }
-            // in case the popupmenu is shown propagate event to it 
+            // in case the popupmenu is shown propagate event to it
             if( iFolderListVisualiser && iFolderListVisualiser->IsPopupShown() )
                 {
                 iFolderListVisualiser->HandleAppForegroundEventL( ETrue );
@@ -1454,7 +1454,7 @@
         case KEikDynamicLayoutVariantSwitch:
             iEnv->NotifyLayoutChangedL();
             break;
-        case KAknsMessageSkinChange:            
+        case KAknsMessageSkinChange:
             iEnv->NotifySkinChangedL();
             break;
         }
@@ -1473,12 +1473,12 @@
     //    {
     //    CAlfEnv::Static()->NotifySkinChangedL();
     //    }
-    
+
     if ( aType == KEikDynamicLayoutVariantSwitch )
     	{
         // Changing layout for status pane (just in case it is not switched
         // correctly), fix for HMNN-82BAGR error
-        // it's not related with skin change so "moved up" TJOS-83DELP fix 
+        // it's not related with skin change so "moved up" TJOS-83DELP fix
         TBool landscape(Layout_Meta_Data::IsLandscapeOrientation());
         CEikStatusPane* statusPane = StatusPane();
         if(landscape)
@@ -1494,7 +1494,7 @@
 				{
 				statusPane->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT);
 				}
-        	}       
+        	}
     	}
 
     if( aType == KEikDynamicLayoutVariantSwitch || aType == KAknsMessageSkinChange )
@@ -2199,7 +2199,7 @@
                         TIMESTAMP( "Sync error" );
                         if ( iManualMailBoxSync )
                             {
-							/* 
+							/*
 							 * As a fix to TJOS-82ZFCW, this general popup is no longer needed
                              * // since error id is not provided by plugin, lets popup general note
                              * HBufC* text = StringLoader::LoadL( R_FS_MSERVER_TEXT_UNABLE_TO_COMPLETE );
@@ -2308,9 +2308,9 @@
     	}
     // Handle mail deleted event in Html view list, as the mails might become obsolete
 	// Pass sync finished event there too in order to dismiss status dialogs
-    else if ( iHtmlViewerView && (aEvent == TFSEventMailDeleted || 
+    else if ( iHtmlViewerView && (aEvent == TFSEventMailDeleted ||
                                   aEvent == TFSEventMailDeletedFromViewer ||
-								  aEvent == TFSEventMailboxSyncStateChanged || 
+								  aEvent == TFSEventMailboxSyncStateChanged ||
                                   aEvent == TFSEventNewMail) && iCurrentActiveView->Id() == HtmlViewerId)
     	{
     	iHtmlViewerView->HandleMailBoxEventL( aEvent, aMailbox, aParam1, aParam2, aParam3 );
@@ -2540,6 +2540,7 @@
 
     if ( iConnectionStatusVisible )
     	{
+
     	// Get connection status of the current mailbox
     	TFSMailBoxStatus connectionStatus = EFSMailBoxOffline;
     	TSSMailSyncState syncState = Idle;
@@ -2549,9 +2550,10 @@
 			connectionStatus = mb->GetMailBoxStatus();
 			syncState = mb->CurrentSyncState();
 			}
+
 		TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
 		CEikStatusPaneBase::TPaneCapabilities subPaneTitle =
-			StatusPane()->PaneCapabilities( titlePaneUid );
+            StatusPane()->PaneCapabilities( titlePaneUid );
 
 		if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
 			{
--- a/emailuis/emailui/src/FreestyleEmailUiContactHandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiContactHandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -430,7 +430,8 @@
 // ---------------------------------------------------------------------------
 //
 void CFSEmailUiContactHandler::SearchMatchesL( const TDesC& aText, 
-    MFSEmailUiContactHandlerObserver* aObserver, CFSMailBox* aMailBox )
+    MFSEmailUiContactHandlerObserver* aObserver, CFSMailBox* aMailBox,
+    TInt aMode )
     {
     FUNC_LOG;
     if ( (iState == EContactHandlerIdle) ||
@@ -441,6 +442,10 @@
         
         iClsListHandler->SetCurrentMailboxL( aMailBox );
         
+        if( aMode != EModeUndefined )
+        	{
+        	iClsListHandler->InputModeChangedL( (TKeyboardModes)aMode );
+        	}
         //Async call, CallBack is ArrayUpdatedL (when error: OperationErrorL)
         iClsListHandler->SearchMatchesL( aText );
         }
--- a/emailuis/emailui/src/FreestyleEmailUiFolderListVisualiser.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiFolderListVisualiser.cpp	Tue May 11 15:57:15 2010 +0300
@@ -224,6 +224,7 @@
     FUNC_LOG;
 
     BaseConstructL( R_FSEMAILUI_FOLDER_LIST_VIEW );
+    this->HideToolbar();
     iFirstStartCompleted = EFalse;
 	}
 
@@ -236,6 +237,8 @@
 void CFSEmailUiFolderListVisualiser::DoFirstStartL()
     {
     FUNC_LOG;
+    HideToolbar();
+    
     iControl = CFSEmailUiFolderListControl::NewL( iEnv, *this );
     iModel = new (ELeave) CFSEmailUiFolderListModel();
 
@@ -1157,24 +1160,9 @@
         	   aMenuPane->SetItemDimmed( EFsEmailUiCmdHelp, ETrue);
         	   }
 
-            // OFFLINE/ONLINE MENU SELECTION
-            if( iMoveOrCopyInitiated )
-                {
-                TFSMailBoxStatus onlineStatus = iAppUi.GetActiveMailbox()->GetMailBoxStatus();
-                aMenuPane->SetItemDimmed( EFsEmailUiCmdGoOnline, onlineStatus == EFSMailBoxOnline );
-                aMenuPane->SetItemDimmed( EFsEmailUiCmdGoOffline, onlineStatus == EFSMailBoxOffline );
-                }
-            else
-                {
-                aMenuPane->SetItemDimmed( EFsEmailUiCmdGoOnline, ETrue );
-                aMenuPane->SetItemDimmed( EFsEmailUiCmdGoOffline, ETrue );
-                }
-
             // select option
             aMenuPane->SetItemDimmed( EFsEmailUiCmdSelect, iModel->Count() == 0 );
 
-            aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCollapseAll, AllNodesCollapsed() );
-            aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsExpandAll, AllNodesExpanded() );
             }
 
         // Add shortcut hints
@@ -2616,7 +2604,18 @@
 	if( iFullScreen )
 		{
 	 	AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, iScreenRect );
-	 	iScreenRect.SetRect( 0, 0, iScreenRect.Width(), iScreenRect.Height() );
+	 	TRect noToolbar;
+	 	AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EControlPane, noToolbar);
+	 
+	 	
+		if(!Layout_Meta_Data::IsLandscapeOrientation())
+			{
+			iScreenRect.SetRect( 0, 0, iScreenRect.Width(),iScreenRect.Height() + noToolbar.Height()  );
+			}
+		else
+			{
+			iScreenRect.SetRect( 0, 0, noToolbar.Width(),iScreenRect.Height());
+			}
         }
 	else
 		{
@@ -3005,6 +3004,7 @@
     {
     FUNC_LOG;
     //Toolbar()->SetItemDimmed(EFsEmailUiTbCmdSelect, ( iModel == NULL ) || ( iModel->Count() == 0 ), ETrue );
+    HideToolbar();
     Toolbar()->SetItemDimmed( EFsEmailUiTbCmdExpandAll, AllNodesExpanded(), ETrue );
     Toolbar()->SetItemDimmed( EFsEmailUiTbCmdCollapseAll, AllNodesCollapsed(), ETrue );
     }
--- a/emailuis/emailui/src/FreestyleEmailUiGlobalSettingsListView.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiGlobalSettingsListView.cpp	Tue May 11 15:57:15 2010 +0300
@@ -131,18 +131,10 @@
 		   // remove help support in pf5250
 		   aMenuPane->SetItemDimmed( EFsEmailUiCmdHelp, ETrue);      
 		   }
-	            
-        // Dim "Open" or "Change" depending on the focused item
-        TInt focusedId = iGlobalSettingsSettingItemList->FocusedItemId();
-        if ( focusedId == EGlobalSettingsActiveIdle )
-            {
-            aMenuPane->SetItemDimmed( EFsEmailUiCmdChange, ETrue );
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed( EFsEmailUiCmdOpen, ETrue );
-            }
-        
+  // Dim "Open" and "Change" 
+	    aMenuPane->SetItemDimmed( EFsEmailUiCmdChange, ETrue );
+	    aMenuPane->SetItemDimmed( EFsEmailUiCmdOpen, ETrue );
+                 
         // Add shortcut hints
         iAppUi.ShortcutBinding().AppendShortcutHintsL( *aMenuPane, 
                                      CFSEmailUiShortcutBinding::EContextSettings );         
--- a/emailuis/emailui/src/FreestyleEmailUiHtmlViewerContainer.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiHtmlViewerContainer.cpp	Tue May 11 15:57:15 2010 +0300
@@ -26,6 +26,7 @@
 #include <e32base.h>
 #include <badesca.h>
 #include <utf.h>
+#include <finditemengine.h>
 
 //<cmail>
 #include "cfsmailmessage.h"
@@ -79,9 +80,6 @@
 _LIT( KHtmlGreaterThan, "&gt;" );
 _LIT( KHtmlAmpersand, "&amp;" );
 _LIT( KHtmlQuotation, "&quot;" );
-// _LIT( KHtmlLinkTag, "<a href=\"%S\">" );
-// _LIT( KHtmlLinkTagWWW, "<a href=\"%S%S\">" );
-// _LIT( KHtmlLinkEndTag, "</a>" );
 _LIT( KURLTypeBody, "body");
 
 _LIT( KURLDisplayImages, "cmail://displayImages/" );
@@ -93,13 +91,10 @@
 const TText KLessThan = 0x3c;
 const TText KAmpersand = 0x26;
 const TText KQuotation = 0x22;
-// const TText KCharacterSpace = 0x20;
 const TText KSOH = 0x01; // Start Of Heading
-// const TText KCR = 0x0d; // Carriage Return
 const TText KLF = 0x0a; // Line Feed
-// const TText KHT = 0x09; // Horizontal Tab
 const TText KUnicodeNewLineCharacter = 0x2028;
-const TText KUnicodeParagraphCharacter = 0x2029;        
+const TText KUnicodeParagraphCharacter = 0x2029;
 const TReal KOverlayButtonMarginX = 0.01; // 1%
 const TReal KOverlayButtonMarginY = 0.01; // 1%
 const TReal KOverlayButtonSizeP = 0.15; // 15%
@@ -109,6 +104,12 @@
 const TInt KStatusIndicatorHeight = 50;
 const TInt KStatusIndicatorXMargin = 50;
 
+// CONSTANTS
+// Zoom levels available on the UI
+const TInt KZoomLevels[] = { 75, 100, 125, 150 };
+const TInt KZoomLevelCount = sizeof( KZoomLevels ) / sizeof( TInt );
+const TInt KZoomLevelIndex100 = 100; // 100 in array KZoomLevels
+
 // CEUiHtmlViewerSettingsKeyListener
 
 // ---------------------------------------------------------------------------
@@ -290,7 +291,8 @@
     iAppUi( aAppUi ),
     iView( aView ),
     iFs( iCoeEnv->FsSession() ),
-    iFirstTime( ETrue )
+    iFirstTime( ETrue ),
+    iZoomLevel( KZoomLevelIndex100 )
     {
     FUNC_LOG;
     }
@@ -340,6 +342,140 @@
     ResetContent();
     }
 
+void CFsEmailUiHtmlViewerContainer::ZoomInL()
+    {
+    SetZoomLevelL( ZoomLevelL() + 1 );
+    }
+
+void CFsEmailUiHtmlViewerContainer::ZoomOutL()
+    {
+    SetZoomLevelL( ZoomLevelL() - 1 );
+    }
+
+TInt CFsEmailUiHtmlViewerContainer::ZoomLevelL() const
+    {
+    FUNC_LOG;
+    TInt zoomLevelIdx = iBrCtlInterface->BrowserSettingL(
+            TBrCtlDefs::ESettingsCurrentZoomLevelIndex );
+
+    // Behaviour of zooming in Browser Control Interface is different in version 7.1
+    // than in previous versions and we need to support both. In older versions there
+    // are 4 preset zoom levels while version 7.1 can zoom to any percent.
+    RArray<TUint>* zoomLevels = iBrCtlInterface->ZoomLevels();
+
+    if ( !zoomLevels || !zoomLevels->Count() || ( *zoomLevels )[0] != KZoomLevels[0] )
+        {
+        // new browser:
+        // BrowserControlIf gives zoom level percentage insted of index to array
+        TBool found = EFalse;
+
+        for ( TInt i = 0 ; i < KZoomLevelCount && !found ; ++i )
+            {
+            if ( zoomLevelIdx == KZoomLevels[i] )
+                {
+                zoomLevelIdx = i;
+                found = ETrue;
+                }
+            }
+
+        if ( !found )
+            {
+            zoomLevelIdx = KErrNotFound;
+            }
+        }
+    return zoomLevelIdx;
+    }
+
+void CFsEmailUiHtmlViewerContainer::SetZoomLevelL( const TInt aZoomLevel )
+    {
+    FUNC_LOG;
+    TInt newValue = KMinTInt;
+
+    // Behaviour of zooming in Browser Control Interface is different in version 7.1
+    // than in previous versions and we need to support both. In older versions there
+    // are 4 preset zoom levels while version 7.1 can zoom to any percent.
+    RArray<TUint>* zoomLevels = iBrCtlInterface->ZoomLevels();
+
+    if ( !zoomLevels || !zoomLevels->Count() || ( *zoomLevels )[0] != KZoomLevels[0] )
+        {
+        // new browser:
+        // BrowserControlIf takes zoom level percentage insted of index to array
+        if ( aZoomLevel >= 0 && aZoomLevel < KZoomLevelCount )
+            {
+            newValue = KZoomLevels[aZoomLevel];
+            }
+        }
+    else
+        {
+        // old browser
+        newValue = aZoomLevel;
+        }
+
+    iZoomLevel = ( newValue > KMinTInt ) ? newValue : aZoomLevel;
+    iBrCtlInterface->SetBrowserSettingL(
+        TBrCtlDefs::ESettingsCurrentZoomLevelIndex, iZoomLevel );
+    }
+
+TInt CFsEmailUiHtmlViewerContainer::DoZoom( TAny* aPtr  )
+    {
+    TRAPD( error, reinterpret_cast<CFsEmailUiHtmlViewerContainer*>( aPtr )->DoZoomL() );
+    return error;
+    }
+
+void CFsEmailUiHtmlViewerContainer::DoZoomL()
+    {
+    iBrCtlInterface->SetBrowserSettingL(
+        TBrCtlDefs::ESettingsCurrentZoomLevelIndex, iZoomLevel );
+    }
+
+TInt CFsEmailUiHtmlViewerContainer::MaxZoomLevel() const
+    {
+    return KZoomLevelCount;
+    }
+
+
+void CFsEmailUiHtmlViewerContainer::CreateBrowserControlInterfaceL()
+    {
+    FUNC_LOG;
+
+    if ( iBrCtlInterface )
+        {
+        delete iBrCtlInterface;
+        iBrCtlInterface = NULL;
+        }
+
+    TUint brCtlCapabilities = TBrCtlDefs::ECapabilityClientResolveEmbeddedURL |
+                              TBrCtlDefs::ECapabilityDisplayScrollBar |
+                              TBrCtlDefs::ECapabilityClientNotifyURL |
+                              TBrCtlDefs::ECapabilityLoadHttpFw |
+                              TBrCtlDefs::ECapabilityCursorNavigation |
+                              TBrCtlDefs::ECapabilityPinchZoom |
+                              TBrCtlDefs::ECapabilityFitToScreen;
+
+    // Set browsercontrol to whole screen
+    TRect rect( TPoint(), Size() );
+
+    iBrCtlInterface = CreateBrowserControlL(
+            this, // aParent
+            rect,  // aRect
+            brCtlCapabilities, // aBrCtlCapabilities
+            TBrCtlDefs::ECommandIdBase, // aCommandIdBase
+            NULL, // aBrCtlSoftkeysObserver
+            this, // aBrCtlLinkResolver
+            this, // aBrCtlSpecialLoadObserver
+            NULL, // aBrCtlLayoutObserver
+            NULL, // aBrCtlDialogsProvider
+            this, // aBrCtlWindowObserver
+            NULL // aBrCtlDownloadObserver
+            );
+
+    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsEmbedded, ETrue );
+    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsAutoLoadImages, iViewerSettings->AutoLoadImages() );
+    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsPageOverview, EFalse );
+    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsTextWrapEnabled, ETrue );
+    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsFontSize, TBrCtlDefs::EFontSizeLevelLarger );
+    }
+
 void CFsEmailUiHtmlViewerContainer::ConstructL()
     {
     FUNC_LOG;
@@ -351,45 +487,23 @@
     BaflUtils::EnsurePathExistsL( iFs, iTempHtmlFolderPath );
     SetHTMLResourceFlagFullName();
     EnsureHTMLResourceL();
-    
+
     CreateWindowL();
-    SetRect( iView.ContainerRect() );
-
-    TUint brCtlCapabilities = TBrCtlDefs::ECapabilityClientResolveEmbeddedURL |
-                              TBrCtlDefs::ECapabilityDisplayScrollBar |
-                              TBrCtlDefs::ECapabilityClientNotifyURL |
-                              TBrCtlDefs::ECapabilityLoadHttpFw |
-                              TBrCtlDefs::ECapabilityCursorNavigation |
-                              TBrCtlDefs::ECapabilityPinchZoom;
+    
+#if defined( BRDO_MULTITOUCH_ENABLED_FF ) && !defined ( __WINSCW__ )   
+    //Enable advance pointer info for multi-touch.
+    Window().EnableAdvancedPointers();
+#endif 
 
-    // Set browsercontrol to whole screen
-    TRect rect( TPoint(), Size() );
-   
-    iBrCtlInterface = CreateBrowserControlL( 
-            this, // aParent 
-            rect,  // aRect
-            brCtlCapabilities, // aBrCtlCapabilities
-            TBrCtlDefs::ECommandIdBase, // aCommandIdBase
-            NULL, // aBrCtlSoftkeysObserver
-            this, // aBrCtlLinkResolver
-            this, // aBrCtlSpecialLoadObserver
-            NULL, // aBrCtlLayoutObserver
-            NULL, // aBrCtlDialogsProvider
-            this, // aBrCtlWindowObserver
-            NULL // aBrCtlDownloadObserver 
-            );
+    
+    SetRect( iView.ContainerRect() );
+    CreateBrowserControlInterfaceL();
 
-    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsEmbedded, ETrue );
-    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsAutoLoadImages, iViewerSettings->AutoLoadImages() );
-    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsPageOverview, EFalse );
-    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsTextWrapEnabled, ETrue );
-    iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsFontSize, TBrCtlDefs::EFontSizeLevelLarger );
-    
     iEventHandler = CFreestyleMessageHeaderURLEventHandler::NewL( iAppUi, iView );
-    
+
     TRect nextButtonRect = OverlayButtonRect( EFalse );
-    iOverlayControlNext = COverlayControl::NewL( this, this, nextButtonRect, 
-            EMbmFreestyleemailuiQgn_indi_cmail_arrow_next, 
+    iOverlayControlNext = COverlayControl::NewL( this, this, nextButtonRect,
+            EMbmFreestyleemailuiQgn_indi_cmail_arrow_next,
             EMbmFreestyleemailuiQgn_indi_cmail_arrow_next_mask );
 
     TRect prevButtonRect = OverlayButtonRect( ETrue );
@@ -411,7 +525,7 @@
     CCoeControl::MakeVisible( aVisible );
     }
 
-void CFsEmailUiHtmlViewerContainer::HandleOverlayPointerEventL( COverlayControl* aControl, 
+void CFsEmailUiHtmlViewerContainer::HandleOverlayPointerEventL( COverlayControl* aControl,
         const TPointerEvent& aEvent )
     {
     if( aEvent.iType == TPointerEvent::EButton1Up )
@@ -439,7 +553,7 @@
         nextAvailable = iAppUi.IsNextMsgAvailable( currentMsgId, tmpMsgId, tmpMsgFolderId );
         prevAvailable = iAppUi.IsPreviousMsgAvailable( currentMsgId, tmpMsgId, tmpMsgFolderId );
         }
-    
+
     if( iOverlayControlPrev )
         {
         iOverlayControlPrev->SetRect( OverlayButtonRect( ETrue ) );
@@ -457,7 +571,7 @@
     {
     TRect rect = Rect();
     TSize size = rect.Size();
-    
+
     TBool landscape = size.iWidth > size.iHeight;
     TInt buttonSize;
 
@@ -471,7 +585,7 @@
         }
 
     rect.iBr.iY = size.iHeight * (1-KOverlayButtonMarginY);
-    
+
     if( aLeft )
         {
         rect.iTl.iX = size.iWidth * KOverlayButtonMarginX;
@@ -482,7 +596,7 @@
         rect.iBr.iX = size.iWidth * (1 - KOverlayButtonMarginX);
         rect.iTl.iX = rect.iBr.iX - buttonSize;
         }
-    
+
     rect.iTl.iY = rect.iBr.iY - buttonSize;
     return rect;
     }
@@ -525,23 +639,23 @@
     // Cancel any browser fetch operation, just in case the browser is still
     // loading a previous message (since we are about to overwrite it).
     CancelFetch();
-    
+
     TPath headerHtmlFile;
     headerHtmlFile.Copy( iHtmlFolderPath );
     headerHtmlFile.Append( KHeaderHtmlFile );
-    
+
     // insert email header into email.html file
     // CFreestyleMessageHeaderHTML will replace contents of email.html
     // So, no need to clear the contents
     if(aResetScrollPos)
         {
-        iScrollPosition = 0; 
+        iScrollPosition = 0;
         }
     const TInt visibleWidth(iAppUi.ClientRect().Width());
     CFreestyleMessageHeaderHTML::ExportL( *iMessage, iFs, headerHtmlFile, visibleWidth, iScrollPosition,
                                             iViewerSettings->AutoLoadImages() || iAppUi.DisplayImagesCache().Contains(*iMessage),
                                             iHeaderExpanded );
-    
+
     // Remove all previously created files from temporary HTML folder
     EmptyTempHtmlFolderL();
 
@@ -562,8 +676,11 @@
         {
         emailHtmlFile.Append( KMessageHtmlRTLFile );
         }
+
+    CreateBrowserControlInterfaceL();
+
     LoadContentFromFileL( emailHtmlFile );
-    
+
     UpdateOverlayButtons( ETrue );
     }
 
@@ -576,12 +693,12 @@
     FUNC_LOG;
     if ( iBrCtlInterface )
         {
-        TRAP_IGNORE( 
+        TRAP_IGNORE(
                 iBrCtlInterface->HandleCommandL( ( TInt )TBrCtlDefs::ECommandIdBase +
                         ( TInt )TBrCtlDefs::ECommandFreeMemory ) );
         if (aDisconnect)
             {
-            TRAP_IGNORE( 
+            TRAP_IGNORE(
                     iBrCtlInterface->HandleCommandL( ( TInt )TBrCtlDefs::ECommandIdBase +
                                                       ( TInt )TBrCtlDefs::ECommandDisconnect ) );
             }
@@ -640,7 +757,7 @@
         {
         return 4;
         }
-    else 
+    else
         {
         return 3;
         }
@@ -677,9 +794,9 @@
         {
         iBrCtlInterface->SetRect( rect );
         }
-    
+
     UpdateOverlayButtons( IsVisible() );
-    
+
     if ( iStatusIndicator )
         {
         TRect rect = CalcAttachmentStatusRect();
@@ -695,7 +812,7 @@
     const TKeyEvent& aKeyEvent, TEventCode aType )
     {
     FUNC_LOG;
-    
+
     TKeyResponse retVal = EKeyWasNotConsumed;
 
     // Handle keyboard shortcuts already on key down event as all keys
@@ -713,9 +830,19 @@
             }
         }
 
-    else if ( iBrCtlInterface && retVal == EKeyWasNotConsumed )
+    if ( iBrCtlInterface && retVal == EKeyWasNotConsumed )
         {
-        retVal = iBrCtlInterface->OfferKeyEventL( aKeyEvent, aType );
+        TKeyEvent event = aKeyEvent;
+        if ( iBrCtlInterface->FocusedElementType() == TBrCtlDefs::EElementButton
+             && ( aKeyEvent.iScanCode == EStdKeyNkpEnter 
+                  || aKeyEvent.iScanCode == EStdKeyEnter ) )
+            {
+            // Enter key events are converted to selection key event in
+            // order to get browser to handle them in similar way.
+            event.iScanCode = EStdKeyDevice3;
+            event.iCode = aKeyEvent.iCode ? EKeyDevice3 : 0;
+            }
+        retVal = iBrCtlInterface->OfferKeyEventL( event, aType );
         }
 
     iView.SetMskL();
@@ -806,7 +933,7 @@
             {
             iAppUi.DownloadInfoMediator()->StopObserving( this );
             }
-               
+
         if ( iMessage && linkContent )
             {
             CFSMailMessagePart* part = iMessage->ChildPartL( aPart.iMessagePartId );
@@ -820,10 +947,10 @@
             CleanupStack::PopAndDestroy( &contentFile );
             CleanupStack::PopAndDestroy( part );
             }
-        
+
         if ( iMessage )
             {
-            LoadContentFromMailMessageL( iMessage, EFalse );            
+            LoadContentFromMailMessageL( iMessage, EFalse );
             UpdateOverlayButtons( ETrue );
             }
         }
@@ -907,7 +1034,7 @@
         else
             {
             return iEventHandler->HandleEventL( aUrl );
-            }     
+            }
         }
     }
 
@@ -954,7 +1081,7 @@
 //
 void CFsEmailUiHtmlViewerContainer::SetTempHtmlFolderPath()
     {
-    FUNC_LOG;    
+    FUNC_LOG;
     iTempHtmlFolderPath.Copy( iHtmlFolderPath );
     iTempHtmlFolderPath.Append( KTempHtmlPath );
     }
@@ -991,7 +1118,7 @@
 
     RFile htmlFile = aHtmlBodyPart.GetContentFileL();
     CleanupClosePushL( htmlFile );
-    
+
     // Read content from given source file
     HBufC8* content = ReadContentFromFileLC( htmlFile );
 
@@ -1014,14 +1141,14 @@
     TFileName targetFileName;
     targetFileName.Copy( iTempHtmlFolderPath );
     targetFileName.Append( aHtmlFileName );
-    
+
     HBufC* content = HBufC::NewLC( aTextBodyPart.FetchedContentSize() );
     TPtr contentPtr( content->Des() );
-    
+
     aTextBodyPart.GetContentToBufferL( contentPtr, 0 );
-    
+
     ConvertToHTML( *content, targetFileName, aTextBodyPart );
-    
+
     CleanupStack::PopAndDestroy( content );
 
     }
@@ -1050,11 +1177,11 @@
     const TDesC& aFileName, CFSMailMessagePart& aHtmlBodyPart )
     {
     FUNC_LOG;
-    
+
     RBuf8 buffer;
     buffer.CreateL( aContent );
     buffer.CleanupClosePushL();
-    
+
     if ( SysUtil::DiskSpaceBelowCriticalLevelL( &iFs, buffer.Size(), EDriveC ) )
          {
          // Can not write the data, there's not enough free space on disk.
@@ -1064,12 +1191,12 @@
         {
         RFile targetFile;
         CleanupClosePushL( targetFile );
-        
+
         User::LeaveIfError( targetFile.Replace( iFs, aFileName, EFileWrite ) );
 
         // Try to find initial html tag (both '<html' and '<HTML' versions are searched)
         TInt startTagOffset = buffer.Left( KMaxCharsToSearch ).FindF( KStartTag );
-        
+
         // Modifying text/html atta IF there's no '<html>' tag anywhere in
         // the begining of file (KMaxCharsToSearch) AND there is charset
         // parameter available
@@ -1084,34 +1211,34 @@
             {
             HBufC8* charSet = GetCharacterSetL( aHtmlBodyPart );
             CleanupStack::PushL( charSet );
-            
+
             User::LeaveIfError( targetFile.Write( KHtmlHeader1 ) );
             User::LeaveIfError( targetFile.Write( *charSet ) );
             User::LeaveIfError( targetFile.Write( KHtmlHeader2 ) );
             CleanupStack::PopAndDestroy( charSet );
             }
-        else 
+        else
             {
             // Charset tag not found in html body
-            
+
             if ( buffer.Left( KMaxCharsToSearch ).FindF( KCharsetTag8 ) == KErrNotFound )
                 {
                 TInt startPos(0);
                 if ( ( startPos = buffer.Left( KMaxCharsToSearch ).FindF( KHeadTag ) ) != KErrNotFound )
-                    { 
-                    
+                    {
+
                     HBufC8* charSet = GetCharacterSetL( aHtmlBodyPart );
                     CleanupStack::PushL( charSet );
-                    
+
                     HBufC8* metaBuffer = HBufC8::NewLC( charSet->Des().Length() + KHtmlHeader3().Length() );
                     TPtr8 metaHeader( metaBuffer->Des() );
-                    metaHeader.AppendFormat( KHtmlHeader3, charSet );                
-                    TInt maxLength = buffer.Length() + metaHeader.Length();         
+                    metaHeader.AppendFormat( KHtmlHeader3, charSet );
+                    TInt maxLength = buffer.Length() + metaHeader.Length();
                     buffer.ReAllocL( maxLength );
-                   
+
                     startPos += KHeadTag().Length();
                     buffer.Insert( startPos, metaHeader );
-                    
+
                     CleanupStack::PopAndDestroy( metaBuffer );
                     CleanupStack::PopAndDestroy( charSet );
                     }
@@ -1244,14 +1371,14 @@
             partData.iMailBoxId = iMessage->GetMailBoxId();
             partData.iFolderId = iMessage->GetFolderId();
             partData.iMessageId = iMessage->GetMessageId();
-            
+
             partData.iMessagePartId = aAttachment.GetPartId();
 
             if ( iAppUi.DownloadInfoMediator() &&
                  iAppUi.DownloadInfoMediator()->IsDownloadableL( partData ) )
                 {
                 ASSERT( iLinkContents.Count() == iMessageParts.Count() );
-    
+
                 // Append message part details and embedded link content interface
                 // to corresponding arrays so that the content can be returned
                 // when the download is completed.
@@ -1260,7 +1387,7 @@
                     {
                     iLinkContents.Remove( iLinkContents.Count() - 1 );
                     }
-    
+
                 ASSERT( iLinkContents.Count() == iMessageParts.Count() );
                 if(!iView.GetAsyncFetchStatus())
                     {
@@ -1277,7 +1404,7 @@
     {
     FUNC_LOG;
     iHtmlResourceFlagPath.Copy( iHtmlFolderPath );
-    iHtmlResourceFlagPath.Append( KHtmlFlagFile );    
+    iHtmlResourceFlagPath.Append( KHtmlFlagFile );
     }
 
 void CFsEmailUiHtmlViewerContainer::EnableHTMLResourceFlagL()
@@ -1306,11 +1433,11 @@
     htmlFolderPathInZ.Append( privatePath );
 
     htmlFolderPathInZ.Append( KHtmlPath );
-    
+
     CDir* dirList;
     TPath listSpec;
     listSpec.Copy( htmlFolderPathInZ );
-     
+
     listSpec.Append( _L("*.*") );
     User::LeaveIfError( iFs.GetDir( listSpec,  KEntryAttMaskSupported, ESortByName, dirList ) );
     CleanupStack::PushL( dirList );
@@ -1319,28 +1446,28 @@
         TPath sourceFileFullName;
         sourceFileFullName.Copy( htmlFolderPathInZ );
         sourceFileFullName.Append( (*dirList)[i].iName );
-        
+
         TBool isFolder( EFalse );
         BaflUtils::IsFolder( iFs, sourceFileFullName, isFolder);
         if ( isFolder )
             {
-            break;            
+            break;
             }
-        
+
         TPath targetFileFullName;
         targetFileFullName.Copy( iHtmlFolderPath );
         targetFileFullName.Append( (*dirList)[i].iName );
-        BaflUtils::DeleteFile( iFs, targetFileFullName );        
-        
+        BaflUtils::DeleteFile( iFs, targetFileFullName );
+
         BaflUtils::CopyFile( iFs, sourceFileFullName, targetFileFullName);
-        }    
+        }
     CleanupStack::PopAndDestroy( dirList );
     }
 
 void CFsEmailUiHtmlViewerContainer::EnsureHTMLResourceL()
     {
     FUNC_LOG;
-    
+
     if ( !HTMLResourceFlagEnabled() )
         {
         CopyHTMLResourceL();
@@ -1352,203 +1479,24 @@
 // Writes buffer content to given file after adding tags
 // ---------------------------------------------------------------------------
 //
-// <cmail>
 void CFsEmailUiHtmlViewerContainer::ConvertToHTML( const TDesC& aContent,
     const TDesC& aFileName, CFSMailMessagePart& /*aTextBodyPart*/ )
     {
     FUNC_LOG;
-    const TInt KBodyTextChunkSize = 2048;
-    
+   
     if ( SysUtil::DiskSpaceBelowCriticalLevelL( &iFs, aContent.Size(), EDriveC ) )
-         {
-         // Can not write the data, there's not enough free space on disk.
-         User::Leave( KErrDiskFull );
-        }
-    else
         {
-        RBuf bodyBuf;
-        bodyBuf.CreateL( aContent.Size() + KBodyTextChunkSize );
-        bodyBuf.CleanupClosePushL();
-        bodyBuf.Insert( 0, aContent);
-        TInt maxlength = bodyBuf.MaxSize();
-        
-        TInt position( 0 );
-        TBool EndOfString( EFalse );
-        
-        while ( !EndOfString )
-            {
-            TInt startPosition = position;
-            TPtr segment( bodyBuf.MidTPtr( startPosition ) );
-            TInt i = 0;
-            
-            while(i < segment.Length())
-                {
-                TInt currentPos = position + i;
-                TText ch = segment[i];
-                
-                switch( ch )
-                    {
-                    case KSOH:  // end of line for IMAP and POP
-                        bodyBuf.Delete( currentPos, 1 );
-                        maxlength = maxlength + KHtmlLineBreakCRLF().Length();
-                        bodyBuf.ReAlloc( maxlength );
-                        bodyBuf.Insert( currentPos, KHtmlLineBreakCRLF );
-                        i += KHtmlLineBreakCRLF().Length();
-                        segment.Set( bodyBuf.MidTPtr( startPosition ) );
-                        break;
-                    case KLF: // line feed
-                    case KUnicodeNewLineCharacter:
-                    case KUnicodeParagraphCharacter:
-                            maxlength = maxlength + KHtmlLineBreak().Length();
-                            bodyBuf.ReAlloc( maxlength );
-                            bodyBuf.Insert( currentPos, KHtmlLineBreak );
-                            i += KHtmlLineBreak().Length() + 1;
-                            segment.Set( bodyBuf.MidTPtr( startPosition ) );
-                        break;  
-                    case KQuotation:
-                        bodyBuf.Delete( currentPos, 1 );
-                        maxlength = maxlength + KHtmlQuotation().Length();
-                        bodyBuf.ReAlloc( maxlength );
-                        bodyBuf.Insert( currentPos, KHtmlQuotation );
-                        i += KHtmlQuotation().Length();
-                        segment.Set( bodyBuf.MidTPtr( startPosition ) );
-                        break;
-                    case KAmpersand:
-                        bodyBuf.Delete( currentPos, 1 );
-                        maxlength = maxlength + KHtmlAmpersand().Length();
-                        bodyBuf.ReAlloc( maxlength  );
-                        bodyBuf.Insert( currentPos, KHtmlAmpersand );
-                        i += KHtmlAmpersand().Length();
-                        segment.Set( bodyBuf.MidTPtr( startPosition ) );
-                        break;
-                    case KGreaterThan:
-                        bodyBuf.Delete( currentPos, 1 );
-                        maxlength = maxlength + KHtmlGreaterThan().Length();
-                        bodyBuf.ReAlloc( maxlength );
-                        bodyBuf.Insert( currentPos, KHtmlGreaterThan );
-                        i += KHtmlGreaterThan().Length();
-                        segment.Set( bodyBuf.MidTPtr( startPosition ) );
-                        break;
-                    case KLessThan:
-                        bodyBuf.Delete( currentPos, 1 );
-                        maxlength =  maxlength + KHtmlLessThan().Length();
-                        bodyBuf.ReAlloc( maxlength );
-                        bodyBuf.Insert( currentPos, KHtmlLessThan );
-                        i += KHtmlLessThan().Length();
-                        segment.Set( bodyBuf.MidTPtr( startPosition ) );
-                        break;
-                    default:
-                        i++;
-                        break;
-                    }
-                }
-            position += segment.Length();
-            if ( ( bodyBuf.Length() - position ) <= 0 )
-                {
-                EndOfString = ETrue;
-                }
-            }
-        
-        CreateHyperlinksFromUrlsL( bodyBuf );
+        // Can not write the data, there's not enough free space on disk.
+        User::Leave( KErrDiskFull );
+        }
+
+    RBuf htmlText;
+    CleanupClosePushL( htmlText );
         
-        HBufC8* content8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( bodyBuf );
-        CleanupStack::PushL( content8 );        
-        
-        RFile targetFile;
-        CleanupClosePushL( targetFile );
-        User::LeaveIfError( targetFile.Replace( iFs, aFileName, EFileWrite ) );
-        
-        RBuf8 messageHeader;
-        _LIT( KCharsetUtf8, "UTF-8" );
-        TInt bufSize = KHtmlHeader1().Length() + KCharsetUtf8().Length() + KHtmlHeader2().Length();
-        messageHeader.CreateL( bufSize );
-        messageHeader.CleanupClosePushL();
+    PlainTextToHtmlConverter::PlainTextToHtmlL( aContent, htmlText );
+    WriteToFileL( aFileName, htmlText );
         
-        messageHeader.Append( KHtmlHeader1 );
-        messageHeader.Append( KCharsetUtf8 );
-        messageHeader.Append( KHtmlHeader2 );
-
-        RFileWriteStream fileStream( targetFile );
-        fileStream.PushL();
-        fileStream.WriteL( messageHeader.Ptr(), messageHeader.Length() );
-
-        TInt bufPos( 0 );
-        TInt bufTotalSize = content8->Size();
-
-        while ( bufPos < bufTotalSize )
-            {
-            TInt segmentLength = content8->Mid( bufPos ).Length();
-            fileStream.WriteL( content8->Mid( bufPos ).Ptr(), segmentLength );
-            bufPos += segmentLength;
-            }
-
-        fileStream.CommitL();
-
-        CleanupStack::PopAndDestroy( &fileStream );
-        CleanupStack::PopAndDestroy( &messageHeader );
-        CleanupStack::PopAndDestroy( &targetFile );
-        CleanupStack::PopAndDestroy( content8 );
-        CleanupStack::PopAndDestroy( &bodyBuf ); // calls bodyBuf.Close();
-
-// </cmail>
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// Finds and html formats hyperlinks in a document
-// ---------------------------------------------------------------------------
-//
-// <cmail>
-void CFsEmailUiHtmlViewerContainer::CreateHyperlinksFromUrlsL( RBuf& aSource )
-    {
-    FUNC_LOG;
-    const TInt searhCases( CFindItemEngine::EFindItemSearchURLBin );
-    CFindItemEngine* itemEngine = CFindItemEngine::NewL( aSource, CFindItemEngine::TFindItemSearchCase( searhCases ) );
-    CleanupStack::PushL ( itemEngine );
-    if ( itemEngine->ItemCount() > 0 )
-        {
-        _LIT( KSchemeDelimiter, "://" );
-        _LIT( KUrlFormat, "<a href=\"%S\">%S</a>" );
-        _LIT( KUrlFormatWithHttp, "<a href=\"http://%S\">%S</a>" );
-        
-        const TInt sourceLength( aSource.Length() );
-        // Allocate enough space for the final result
-        aSource.ReAllocL( sourceLength + TotalLengthOfItems( *itemEngine ) + KUrlFormatWithHttp().Length() * itemEngine->ItemCount() );
-        aSource.SetMax();
-        // Organize buffer so that original data is in the back of the aSource
-        aSource.RightTPtr( sourceLength ).Copy( aSource.Left( sourceLength ) );
-        // Set source to new original data's position
-        const TPtrC source( aSource.RightTPtr( sourceLength ) );
-        // Set target to aSource's beginning
-        TPtr target( aSource.MidTPtr( 0 ) );
-        // Reset length, we now have an empty buffer to fill
-        target.SetLength( 0 );
-        
-        TInt currentSourcePosition( 0 );
-        CFindItemEngine::SFoundItem item;
-        for ( TBool available( itemEngine->Item( item ) ); available; available = itemEngine->NextItem( item ) )
-            {
-            target.Append( source.Mid( currentSourcePosition, item.iStartPos - currentSourcePosition ) );
-            const TPtrC url( source.Mid( item.iStartPos, item.iLength ) );
-            TPtrC format( KUrlFormat() );
-            if ( url.FindF( KSchemeDelimiter() ) == KErrNotFound ) 
-                {
-                format.Set( KUrlFormatWithHttp() );
-                }
-            HBufC* formatBuffer = HBufC::NewLC( format.Length() + url.Length() * 2 );
-            formatBuffer->Des().Format( format, &url, &url );            
-            target.Append( *formatBuffer );
-            CleanupStack::PopAndDestroy(); // formatBuffer
-            currentSourcePosition = item.iStartPos + item.iLength;
-            }        
-        // Append characters that are left in buffer
-        if ( currentSourcePosition < sourceLength )
-            {
-            target.Append( source.Mid( currentSourcePosition, sourceLength - currentSourcePosition ) );
-            }
-        aSource.SetLength( target.Length() );
-        }
-    CleanupStack::PopAndDestroy(); // itemEngine
+    CleanupStack::PopAndDestroy( &htmlText );
     }
 
 
@@ -1573,15 +1521,15 @@
 HBufC8* CFsEmailUiHtmlViewerContainer::GetCharacterSetL( CFSMailMessagePart& aHtmlBodyPart )
     {
     FUNC_LOG;
-    
+
     CDesCArray& contentTypeArray( aHtmlBodyPart.ContentTypeParameters() );
-    HBufC8* charSet = KNullDesC8().AllocLC();   
-    
+    HBufC8* charSet = KNullDesC8().AllocLC();
+
     for ( TInt i = 0; i < contentTypeArray.Count(); i++ )
         {
         TPtrC contentEntry( contentTypeArray.MdcaPoint( i ) );
         if ( ( contentEntry.FindF( KCharsetTag ) != KErrNotFound ) &&
-                contentTypeArray.Count() >= ( i+1) )  
+                contentTypeArray.Count() >= ( i+1) )
             {
             TPtrC value( contentTypeArray.MdcaPoint( i+1 ) );
             if ( value.Length() )
@@ -1595,7 +1543,7 @@
             }
         i++;
         }
-    
+
     CleanupStack::Pop( charSet );
     return charSet;
     }
@@ -1617,8 +1565,8 @@
     FUNC_LOG;
     if ( iBrCtlInterface )
         {
-        TRAP_IGNORE( iBrCtlInterface->HandleCommandL( (TInt)TBrCtlDefs::ECommandCancelFetch + (TInt)TBrCtlDefs::ECommandIdBase )); 
-        }   
+        TRAP_IGNORE( iBrCtlInterface->HandleCommandL( (TInt)TBrCtlDefs::ECommandCancelFetch + (TInt)TBrCtlDefs::ECommandIdBase ));
+        }
     }
 
 void CFsEmailUiHtmlViewerContainer::ClearCacheAndLoadEmptyContent()
@@ -1626,11 +1574,11 @@
     FUNC_LOG;
     if ( iBrCtlInterface )
         {
-        iBrCtlInterface->ClearCache(); 
+        iBrCtlInterface->ClearCache();
         TUid uid;
         uid.iUid = KCharacterSetIdentifierUtf8;
         TRAP_IGNORE( iBrCtlInterface->LoadDataL(KHTMLDataScheme, KHTMLEmptyContent, _L8("text/html"), uid) );
-        }   
+        }
     }
 
 void CFsEmailUiHtmlViewerContainer::HandleResourceChange( TInt aType )
@@ -1651,20 +1599,20 @@
         TPath headerHtmlFile;
         headerHtmlFile.Copy( iHtmlFolderPath );
         headerHtmlFile.Append( KHeaderHtmlFile );
-        
+
             TRAP_IGNORE( CFreestyleMessageHeaderHTML::ExportL( *iMessage, iFs,
                 headerHtmlFile, iAppUi.ClientRect().Width(), iScrollPosition,
                 iViewerSettings->AutoLoadImages() || iAppUi.DisplayImagesCache().Contains(*iMessage),
                 iHeaderExpanded ) )
-        
-        
+
+
         if(!iEventHandler->IsMenuVisible())
             {
             TRAP_IGNORE( ReloadPageL() );
             }
         else
             {
-            //Load page asynchronously after dismissing menu 
+            //Load page asynchronously after dismissing menu
             //this is outdated call because it cancels Action menu which is no longer used in 9.2
            // iEventHandler->DismissMenuAndReload();
             }
@@ -1677,8 +1625,8 @@
             ( TInt )TBrCtlDefs::ECommandReload ) );
     }
 
-void CFsEmailUiHtmlViewerContainer::ShowAttachmentDownloadStatusL( 
-        TFSProgress::TFSProgressStatus aProgressStatus, 
+void CFsEmailUiHtmlViewerContainer::ShowAttachmentDownloadStatusL(
+        TFSProgress::TFSProgressStatus aProgressStatus,
         const TAttachmentData& aAttachmentData )
     {
     TBool freshDraw = EFalse;
@@ -1699,18 +1647,18 @@
         TRect rect = CalcAttachmentStatusRect();
         iStatusIndicator = CFreestyleEmailUiAknStatusIndicator::NewL( rect, this );
         freshDraw = ETrue;
-        }    
-    
-    if ( !iStatusIndicator->IsVisible() 
-         || ( aAttachmentData.downloadProgress == KNone ) 
+        }
+
+    if ( !iStatusIndicator->IsVisible()
+         || ( aAttachmentData.downloadProgress == KNone )
          || ( aProgressStatus == TFSProgress::EFSStatus_RequestCancelled ) )
         {
         freshDraw = ETrue;
         }
-    
+
     TInt duration = KStatusIndicatorDefaultDuration;
-    if ( ( aAttachmentData.downloadProgress == TFSProgress::EFSStatus_RequestComplete ) 
-         || ( aProgressStatus == TFSProgress::EFSStatus_RequestCancelled ) 
+    if ( ( aAttachmentData.downloadProgress == TFSProgress::EFSStatus_RequestComplete )
+         || ( aProgressStatus == TFSProgress::EFSStatus_RequestCancelled )
          || ( aAttachmentData.downloadProgress == KComplete ) )
         {
         duration = KStatusIndicatorAutomaticHidingDuration;
@@ -1728,22 +1676,22 @@
             CArrayFix<TInt>* intArray = new (ELeave) CArrayFixFlat<TInt>( 1 );
             CleanupStack::PushL( intArray );
             intArray->AppendL( aAttachmentData.downloadProgress );
-            
+
             statusText = StringLoader::LoadL( R_FSE_VIEWER_ATTACHMENTS_LIST_DOWNLOAD,
-                                              *descArray, 
+                                              *descArray,
                                               *intArray );
             CleanupStack::PopAndDestroy( intArray );
             CleanupStack::PopAndDestroy( descArray );
             CleanupStack::PushL( statusText );
             }
         break;
-        
+
         case TFSProgress::EFSStatus_RequestCancelled:
             {
             statusText = aAttachmentData.fileName.AllocLC();
             }
         break;
-        
+
         default:
             statusText = KNullDesC().AllocLC();
             break;
@@ -1778,7 +1726,7 @@
                 }
             }
         }
-    
+
     CleanupStack::Pop( statusText );
     }
 
@@ -1824,7 +1772,7 @@
     TRect rect = Rect();
     TPoint topLeft = rect.iTl;
     TPoint bottomRight = rect.iBr;
-    
+
     TPoint statusTopLeft( topLeft.iX + KStatusIndicatorXMargin, bottomRight.iY - KStatusIndicatorHeight + 1 );
     TPoint statusBottomRight( bottomRight.iX - KStatusIndicatorXMargin, bottomRight.iY );
     return TRect( statusTopLeft, statusBottomRight );
@@ -1832,13 +1780,13 @@
 
 void CFsEmailUiHtmlViewerContainer::TouchFeedback()
     {
-    iTouchFeedBack->InstantFeedback(this, ETouchFeedbackBasic);  
+    iTouchFeedBack->InstantFeedback(this, ETouchFeedbackBasic);
     }
 
 /**
  * The body fetch link is cmail://body/fetch. Look for the URL separator
  * and the presence of cmail and body on the url.
- * @param aUrl 
+ * @param aUrl
  * return ETrue for  a valid body URL
  */
 TBool CFsEmailUiHtmlViewerContainer::IsMessageBodyURLL(const TDesC& aUrl)
@@ -1875,11 +1823,11 @@
             {
             TouchFeedback();
             iHeaderExpanded = ETrue;
-            return ETrue;        
+            return ETrue;
             }
         else if (aUrl.Left(index).CompareF(KURLSchemeCmail) == 0)
             {
-            TInt bodyIndex = aUrl.Find(KURLTypeBody);                      
+            TInt bodyIndex = aUrl.Find(KURLTypeBody);
             if (bodyIndex == KErrNotFound)
                 {
                 return EFalse;
@@ -1896,24 +1844,24 @@
                     {
                     TPtrC16 temp = data.Mid(separator+1);
                     TLex lex(temp);
-                    lex.Val(iScrollPosition);                  
+                    lex.Val(iScrollPosition);
                     }
                 return ETrue;
                 }
-            
+
             }
         else
             {
             return EFalse;
             }
         }
-    } 
+    }
 
 // ---------------------------------------------------------------------------
 // From MBrCtlWindowObserver
 // ---------------------------------------------------------------------------
 //
-CBrCtlInterface* CFsEmailUiHtmlViewerContainer::OpenWindowL( TDesC& /*aUrl*/, TDesC* /*aTargetName*/, 
+CBrCtlInterface* CFsEmailUiHtmlViewerContainer::OpenWindowL( TDesC& /*aUrl*/, TDesC* /*aTargetName*/,
                                                              TBool /*aUserInitiated*/, TAny* /*aReserved*/ )
     {
     return iBrCtlInterface;
@@ -1932,10 +1880,10 @@
 // From MBrCtlWindowObserver
 // ---------------------------------------------------------------------------
 //
-void CFsEmailUiHtmlViewerContainer::HandleWindowCommandL( const TDesC& /*aTargetName*/, 
+void CFsEmailUiHtmlViewerContainer::HandleWindowCommandL( const TDesC& /*aTargetName*/,
                                                           TBrCtlWindowCommand /*aCommand*/ )
     {
-    
+
     }
 
 // ---------------------------------------------------------------------------
@@ -1948,7 +1896,7 @@
     // look for file:///
     _LIT( KFileLink, "file:///");
     _LIT( KUrlLink, "http");
-    
+
     // This might be linking to header.html or body.html frames
     // Ignore them.
     if ( aUrl.Left( KFileLink().Length() ).CompareF( KFileLink ) == 0 )
@@ -1957,7 +1905,7 @@
         // Replace all slash character with backslash characters
         HBufC* embeddedUrl = aUrl.AllocLC();
         TPtr ptr = embeddedUrl->Des();
-        
+
         _LIT( KBackslash, "\\" );
         for ( TInt pos = ptr.Locate('/'); pos >= 0; pos = ptr.Locate('/') )
             {
@@ -1967,14 +1915,14 @@
         // Check whether given url refers to file in the html folder
         TInt pos = embeddedUrl->FindF( iHtmlFolderPath );
         CleanupStack::PopAndDestroy( embeddedUrl );
-        pos >= 0 ? launchBrowser = EFalse : ETrue;        
+        pos >= 0 ? launchBrowser = EFalse : ETrue;
         }
     // Ignore links starting with cmail://
     else if ( aUrl.Left( KURLSchemeCmail().Length() ).CompareF( KURLSchemeCmail ) == 0 )
         {
         launchBrowser = EFalse;
         }
-    //    THAA-82BEAZ - show popup first 
+    //    THAA-82BEAZ - show popup first
     else if ( aUrl.Left(KUrlLink().Length() ).CompareF( KUrlLink ) == 0 )
         {
         launchBrowser = EFalse;
@@ -1998,7 +1946,7 @@
 
 void CFsEmailUiHtmlViewerContainer::PrepareBodyHtmlL( const TDesC& aFileName )
     {
-    
+
     if( iMessage )
         {
         CFSMailMessagePart* htmlBodyPart = iMessage->HtmlBodyPartL();
@@ -2013,7 +1961,7 @@
         else
             {
             CFSMailMessagePart* textBodyPart = iMessage->PlainTextBodyPartL();
-    
+
             if ( textBodyPart )
                 {
                 CleanupStack::PushL( textBodyPart );
@@ -2065,3 +2013,178 @@
     UpdateOverlayButtons( IsVisible() );    
     }
 
+
+void CFsEmailUiHtmlViewerContainer::WriteToFileL(const TDesC& aFileName, RBuf& aHtmlText)
+    {
+    _LIT( KCharsetUtf8, "UTF-8" );
+
+    HBufC8* content8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( aHtmlText );
+    CleanupStack::PushL( content8 );        
+        
+    RFile targetFile;
+    CleanupClosePushL( targetFile );
+    User::LeaveIfError( targetFile.Replace( iFs, aFileName, EFileWrite ) );
+        
+    RBuf8 messageHeader;
+    TInt bufSize = KHtmlHeader1().Length() + KCharsetUtf8().Length() + KHtmlHeader2().Length();
+    messageHeader.CreateL( bufSize );
+    messageHeader.CleanupClosePushL();
+        
+    messageHeader.Append( KHtmlHeader1 );
+    messageHeader.Append( KCharsetUtf8 );
+    messageHeader.Append( KHtmlHeader2 );
+
+    RFileWriteStream fileStream( targetFile );
+    fileStream.PushL();
+    fileStream.WriteL( messageHeader.Ptr(), messageHeader.Length() );
+
+    TInt bufPos( 0 );
+    TInt bufTotalSize = content8->Size();
+
+    while ( bufPos < bufTotalSize )
+        {
+        TInt segmentLength = content8->Mid( bufPos ).Length();
+        fileStream.WriteL( content8->Mid( bufPos ).Ptr(), segmentLength );
+        bufPos += segmentLength;
+        }
+
+    fileStream.CommitL();
+
+    CleanupStack::PopAndDestroy( &fileStream );
+    CleanupStack::PopAndDestroy( &messageHeader );
+    CleanupStack::PopAndDestroy( &targetFile );
+    CleanupStack::PopAndDestroy( content8 );
+    }
+
+
+
+/******************************************************************************
+ * class PlainTextToHtmlConverter
+ ******************************************************************************/
+
+
+
+// -----------------------------------------------------------------------------
+// PlainTextToHtmlConverter::PlainTextToHtmlL
+// 
+// -----------------------------------------------------------------------------
+//
+void PlainTextToHtmlConverter::PlainTextToHtmlL(const TDesC& aPlainText, RBuf& aHtmlText)
+    {
+    const TInt KAllocSize = 1024;
+    
+    aHtmlText.Close();
+    aHtmlText.Create( aPlainText.Length() + KAllocSize );
+    
+    const TInt searhCases( CFindItemEngine::EFindItemSearchURLBin );
+    CFindItemEngine* itemEngine = CFindItemEngine::NewL( aPlainText, CFindItemEngine::TFindItemSearchCase( searhCases ) );
+    CleanupStack::PushL ( itemEngine );
+    
+    TInt currentPos = 0;
+    CFindItemEngine::SFoundItem item;
+    for ( TBool available(itemEngine->Item(item)); available; available=itemEngine->NextItem(item) )
+        {
+        if ( item.iStartPos < currentPos )
+            {
+            break; 
+            }
+        
+        TPtrC textPtr = aPlainText.Mid( currentPos, item.iStartPos-currentPos );
+        ConvertTextL( textPtr, aHtmlText );
+        
+        TPtrC urlPtr = aPlainText.Mid( item.iStartPos, item.iLength );
+        ConvertUrlL( urlPtr, aHtmlText);
+        
+        currentPos = item.iStartPos + item.iLength;
+        }
+    
+    TInt len = aPlainText.Length();
+    if ( currentPos < len )
+        {
+        TPtrC textPtr = aPlainText.Mid( currentPos );
+        ConvertTextL( textPtr, aHtmlText );
+        }
+    
+    CleanupStack::PopAndDestroy( itemEngine );
+    }
+
+
+// -----------------------------------------------------------------------------
+// PlainTextToHtmlConverter::ConvertTextL
+// 
+// -----------------------------------------------------------------------------
+//
+void PlainTextToHtmlConverter::ConvertTextL(const TDesC& aSource, RBuf& aTarget)
+    {
+    const TInt KAllocSize = 1024;
+    const TInt KEntitySize = 32;
+    
+    TInt count = aSource.Length();
+    for ( TInt i=0; i<count; i++ )
+        {
+        if ( aTarget.Length() + KEntitySize >= aTarget.MaxLength() )
+            {
+            aTarget.ReAllocL( aTarget.MaxLength() + KAllocSize );
+            }
+        
+        TText ch = aSource[i];
+        switch( ch )
+            {
+            case KSOH:  // end of line for IMAP and POP
+                aTarget.Append( KHtmlLineBreakCRLF );
+                break;
+            case KLF: // line feed
+            case KUnicodeNewLineCharacter:
+            case KUnicodeParagraphCharacter:
+                aTarget.Append(KHtmlLineBreak);
+                break;  
+            case KQuotation:
+                aTarget.Append( KHtmlQuotation );
+                break;
+            case KAmpersand:
+                aTarget.Append( KHtmlAmpersand );
+                break;
+            case KGreaterThan:
+                aTarget.Append( KHtmlGreaterThan );
+                break;
+            case KLessThan:
+                aTarget.Append( KHtmlLessThan );
+                break;
+            default:
+                aTarget.Append( ch );
+                break;
+            }
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// PlainTextToHtmlConverter::ConvertUrlL
+// 
+// -----------------------------------------------------------------------------
+//
+void PlainTextToHtmlConverter::ConvertUrlL(const TDesC& aSource, RBuf& aTarget)
+    {
+    _LIT( KSchemeDelimiter, "://" );
+    _LIT( KUrlFormat, "<a href=\"%S\">%S</a>" );
+    _LIT( KUrlFormatWithHttp, "<a href=\"http://%S\">%S</a>" );
+        
+    TPtrC format( KUrlFormat() );
+    if ( aSource.FindF( KSchemeDelimiter() ) == KErrNotFound ) 
+        {
+        format.Set( KUrlFormatWithHttp() );
+        }
+    
+    HBufC* formatBuffer = HBufC::NewLC( format.Length() + aSource.Length() * 2 );
+    formatBuffer->Des().Format( format, &aSource, &aSource );            
+    
+    TInt len = formatBuffer->Des().Length();
+    if ( aTarget.Length() + len >= aTarget.MaxLength() )
+        {
+        aTarget.ReAllocL( aTarget.MaxLength() + len );
+        }
+
+    aTarget.Append( *formatBuffer );
+        
+    CleanupStack::PopAndDestroy( formatBuffer );
+    }
--- a/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp	Tue May 11 15:57:15 2010 +0300
@@ -64,10 +64,6 @@
 #include "FreestyleMessageHeaderURL.h"
 #include "FreestyleEmailUiAknStatusIndicator.h"
 #include <akntoolbar.h>
-// CONSTANTS
-// Zoom levels available on the UI
-const TInt KZoomLevels[] = { 75, 100, 125, 150 };
-const TInt KZoomLevelCount = sizeof( KZoomLevels ) / sizeof( TInt );
 
 CFsEmailUiHtmlViewerView* CFsEmailUiHtmlViewerView::NewL( 
     CAlfEnv& aEnv,
@@ -292,14 +288,12 @@
             break;
             case EFsEmailUiCmdZoomIn:
                 {
-                TUint zoomLevelIdx = ZoomLevelIndexL();
-                SetZoomLevelIndexL( zoomLevelIdx + 1 );
+                iContainer->ZoomInL();
                 }
             break;
             case EFsEmailUiCmdZoomOut:
                 {
-                TUint zoomLevelIdx = ZoomLevelIndexL();
-                SetZoomLevelIndexL( zoomLevelIdx - 1 );
+                iContainer->ZoomOutL();
                 }
             break;
             case EFsEmailUiCmdHelp:
@@ -388,11 +382,12 @@
                  break;
             default:
                 {
+                /* -- pinch zoom only --
                 if ( aCommand >= EFsEmailUiCmdZoomSmall )
                     {
-                    TUint zoomLevelIndex = aCommand - EFsEmailUiCmdZoomSmall;
-                    SetZoomLevelIndexL( zoomLevelIndex );
+                    iContainer->SetZoomLevelL( aCommand - EFsEmailUiCmdZoomSmall );
                     }
+                */
                 }
             break;
             }
@@ -953,7 +948,9 @@
 
     if ( aResourceId == R_FSEMAILUI_HTMLVIEWER_MENUPANE )
         {
-        
+        // Pinch zoom only
+        aMenuPane->SetItemDimmed( EFsEmailUiCmdZoomLevel, ETrue );
+    
         if ( FeatureManager::FeatureSupported( KFeatureIdFfCmailIntegration ) )
             {
             // remove help support in pf5250
@@ -1194,6 +1191,12 @@
         return;
         }
 
+    TFSMailMsgId currentMsgId = iMessage->GetMessageId();
+    if ( iLastDeletedMessageID == currentMsgId )
+        {
+        return;
+        }
+
     TInt reallyDelete( ETrue );
 
     if ( iAppUi.GetCRHandler()->WarnBeforeDelete() && 
@@ -1216,7 +1219,7 @@
         
         RArray<TFSMailMsgId> msgIds;
         CleanupClosePushL( msgIds );
-        TFSMailMsgId currentMsgId = iMessage->GetMessageId();    
+            
         msgIds.Append( currentMsgId );
         TFSMailMsgId mailBox = iMessage->GetMailBoxId();
         TFSMailMsgId folderId = iMessage->GetFolderId();        
@@ -1231,6 +1234,7 @@
                                                    prevMsgFolderId );
         
         //Delete the message
+        iLastDeletedMessageID = iMessage->GetMessageId(); 
         iAppUi.GetMailClient()->DeleteMessagesByUidL( mailBox, folderId, msgIds );
         CleanupStack::PopAndDestroy( &msgIds );
 
@@ -1238,7 +1242,6 @@
         SendEventToAppUiL( TFSEventMailDeletedFromViewer ); 
         
        
-        
         if ( iAppUi.CurrentActiveView()->Id() == HtmlViewerId )
             {   
             //Open the previous message or navigate back to list viewer
@@ -1322,92 +1325,21 @@
 
 void CFsEmailUiHtmlViewerView::DynInitZoomMenuL( CEikMenuPane* aMenuPane )
     {
-    FUNC_LOG;
-    TInt zoomLevelIdx = ZoomLevelIndexL();
+    FUNC_LOG; 
+    /* -- Pinch zoom only --
+    TInt zoomLevelIdx = iContainer->ZoomLevelL();
 
     // Set the radio button state to match current zoom level
-    if ( zoomLevelIdx >= 0 && zoomLevelIdx < KZoomLevelCount )
+    if ( zoomLevelIdx >= 0 && zoomLevelIdx < iContainer->MaxZoomLevel() )
         {
         TInt curZoomLevel = zoomLevelIdx + EFsEmailUiCmdZoomSmall;
         aMenuPane->SetItemButtonState( curZoomLevel, EEikMenuItemSymbolOn );
         }
-    }
-
-TInt CFsEmailUiHtmlViewerView::ZoomLevelIndexL()
-    {
-    FUNC_LOG;
-    TInt zoomLevelIdx = iContainer->BrowserControlIf()->BrowserSettingL(
-                            TBrCtlDefs::ESettingsCurrentZoomLevelIndex );
-
-    // Behaviour of zooming in Browser Control Interface is different in version 7.1
-    // than in previous versions and we need to support both. In older versions there
-    // are 4 preset zoom levels while version 7.1 can zoom to any percent.
-    RArray<TUint>* zoomLevels = iContainer->BrowserControlIf()->ZoomLevels();
-
-    if ( !zoomLevels || !zoomLevels->Count() || ( *zoomLevels )[0] != KZoomLevels[0] )
-        {
-        // new browser:
-        // BrowserControlIf gives zoom level percentage insted of index to array
-        TBool found = EFalse;
-
-        for ( TInt i = 0 ; i < KZoomLevelCount && !found ; ++i )
-            {
-            if ( zoomLevelIdx == KZoomLevels[i] )
-                {
-                zoomLevelIdx = i;
-                found = ETrue;
-                }
-            }
-
-        if ( !found )
-            {
-            zoomLevelIdx = KErrNotFound;
-            }
-        }
-
-    return zoomLevelIdx;
-    }
-
-void CFsEmailUiHtmlViewerView::SetZoomLevelIndexL( TInt aIndex )
-    {
-    FUNC_LOG;
-    TInt newValue = KMinTInt;
-
-    // Behaviour of zooming in Browser Control Interface is different in version 7.1
-    // than in previous versions and we need to support both. In older versions there
-    // are 4 preset zoom levels while version 7.1 can zoom to any percent.
-    RArray<TUint>* zoomLevels = iContainer->BrowserControlIf()->ZoomLevels();
-
-    if ( !zoomLevels || !zoomLevels->Count() || ( *zoomLevels )[0] != KZoomLevels[0] )
-        {
-        // new browser:
-        // BrowserControlIf takes zoom level percentage insted of index to array
-        if ( aIndex >= 0 && aIndex < KZoomLevelCount )
-            {
-            newValue = KZoomLevels[aIndex];
-            }
-        }
-    else
-        {
-        // old browser
-        newValue = aIndex;
-        }
-
-    if ( newValue > KMinTInt )
-        {
-        iContainer->BrowserControlIf()->SetBrowserSettingL(
-            TBrCtlDefs::ESettingsCurrentZoomLevelIndex, newValue );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CFsEmailUiHtmlViewerView::RestoreZoomLevelL()
-// -----------------------------------------------------------------------------
-//
-void CFsEmailUiHtmlViewerView::RestoreZoomLevelL()
-    {
-    FUNC_LOG;
-    SetZoomLevelIndexL( ZoomLevelIndexL() );
+     */
+    aMenuPane->SetItemDimmed( EFsEmailUiCmdZoomSmall, ETrue );
+    aMenuPane->SetItemDimmed( EFsEmailUiCmdZoomNormal, ETrue );
+    aMenuPane->SetItemDimmed( EFsEmailUiCmdZoomLarge, ETrue );
+    aMenuPane->SetItemDimmed( EFsEmailUiCmdZoom150Percent, ETrue );
     }
 
 // -----------------------------------------------------------------------------
@@ -1645,7 +1577,6 @@
 
 void CFsEmailUiHtmlViewerView::DownloadAttachmentL( const TAttachmentData& aAttachment )
     {
-    iAppUi.DownloadInfoMediator()->AddObserver( this, aAttachment.partData.iMessageId );
     iAttachmentsListModel->StartDownloadL(aAttachment);
     }
 
@@ -1794,12 +1725,6 @@
         
         iContainer->ShowAttachmentDownloadStatusL( aEvent.iProgressStatus, *attachment );
         }
-    
-    if (aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete || 
-            aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestCancelled)
-        {
-        iAppUi.DownloadInfoMediator()->StopObserving( this, aPart.iMessageId );
-        }
     }
 
 void CFsEmailUiHtmlViewerView::RequestResponseL( const TFSProgress& aEvent, const TPartData& aPart )
@@ -1981,11 +1906,6 @@
 
             iAppUi.MoveToNextMsgL( currentMsgId, nextMsgId );
             // Next message is displayed in this view through doactivate, because view is re-activate by mail list
-
-            if ( iContainer )
-                {
-			    RestoreZoomLevelL();
-                }
             }
         }
     }
@@ -2033,11 +1953,6 @@
 
             iAppUi.MoveToPreviousMsgL( currentMsgId, prevMsgId );
             // Previous message is displayed in this view through doactivate, because view is re-activate by mail list
-
-            if ( iContainer )
-                {
-                RestoreZoomLevelL();
-                }
             }
         }
     }
--- a/emailuis/emailui/src/FreestyleEmailUiLauncherGridVisualiser.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiLauncherGridVisualiser.cpp	Tue May 11 15:57:15 2010 +0300
@@ -713,6 +713,7 @@
     {
     FUNC_LOG;
     iScrollbar->MakeVisible(EFalse);
+    FadeOut(ETrue);  // hide CAlfVisuals on deactivation
     }
 
 void CFSEmailUiLauncherGridVisualiser::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
@@ -1839,6 +1840,20 @@
     aLayoutArray.AppendL( iParentLayout );
     }
 
+// hide or show CAlfVisuals ( used for activation or deactivation )
+void CFSEmailUiLauncherGridVisualiser::FadeOut(TBool aDirectionOut)
+	{
+	if ( iParentLayout != NULL )
+		{
+	    TAlfTimedValue timedValue( 0, 0 );
+	    if ( !aDirectionOut )
+	        {
+	        timedValue.SetTarget( 1, 0 );
+	        }
+	    iParentLayout->SetOpacity( timedValue );
+		}
+	}
+
 // -----------------------------------------------------------------------------
 // CFSEmailUiLauncherGridVisualiser::ShowMailboxSelectionQueryL
 // -----------------------------------------------------------------------------
--- a/emailuis/emailui/src/FreestyleEmailUiLayoutHandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiLayoutHandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -1070,21 +1070,12 @@
     }
 
 // -----------------------------------------------------------------------------
-// CFSEmailUiLayoutHandler::PcsPopupHighlightColor
+// CFSEmailUiLayoutHandler::PcsPopupDimmedFontTransparency
 // -----------------------------------------------------------------------------
-TRgb CFSEmailUiLayoutHandler::PcsPopupHighlightColor() const
+TInt CFSEmailUiLayoutHandler::PcsPopupDimmedFontTransparency() const
     {
     FUNC_LOG;
-    return KPcsPopupHighlightColor;
-    }
-
-// -----------------------------------------------------------------------------
-// CFSEmailUiLayoutHandler::PcsPopupDimmedFontColor
-// -----------------------------------------------------------------------------
-TRgb CFSEmailUiLayoutHandler::PcsPopupDimmedFontColor() const
-    {
-    FUNC_LOG;
-    return KPcsPopupDimmedFontColor;
+    return KPcsPopupDimmedFontTransparency;
     }
 
 // -----------------------------------------------------------------------------
--- a/emailuis/emailui/src/FreestyleEmailUiMailListVisualiser.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiMailListVisualiser.cpp	Tue May 11 15:57:15 2010 +0300
@@ -556,10 +556,12 @@
 CFSEmailUiMailListVisualiser::~CFSEmailUiMailListVisualiser()
     {
     FUNC_LOG;
+/*
     if (iExtension)
         {
         iAppUi.GetMailClient()->ReleaseExtension(iExtension);
         }
+*/
     SafeDelete(iMailListModelUpdater);
     SafeDelete(iMailFolder);
     delete iTouchManager;
@@ -1370,9 +1372,16 @@
     TRect clientRect = iAppUi.ClientRect();
     iScreenAnchorLayout->SetSize( clientRect.Size() );
     SetMailListLayoutAnchors();
-    ScaleControlBarL();
-    SetListAndCtrlBarFocusL();
-
+    //if the view is already active don't update the icons so they won't "blink" 
+    //when the view is activated.
+    if(!iThisViewActive)
+        { 
+        ScaleControlBarL();
+        SetListAndCtrlBarFocusL();
+        }
+
+	FadeOut(EFalse); // we can show now CAlfVisuals from CurrentView (to show Folders before updating emails)
+    
 	// Update mail list settings and date formats, is done every time
 	// the user might have changed these in settings, so the list needs to refresh
 	// Store previous modes
@@ -1387,9 +1396,13 @@
 	UpdateMailListTimeDateSettings();
 
 	// Check for changed settings, in that case a complete list refresh is needed
-	TBool refreshNeeded(EFalse);
-	if ( aCustomMessageId == KStartListWithFolderIdFromHomeScreen
-	     || iSkinChanged
+	TRefreshState refreshState = ERefreshNone;
+	if (aCustomMessageId == KStartListWithFolderIdFromHomeScreen)
+	    {
+            refreshState = EFocusChangeNeeded;
+	    }
+	
+	if ( iSkinChanged
 	     || iDateChanged
 	     || iListMode != prevListMode
 		 || iNodesInUse != prevNodesmode
@@ -1400,7 +1413,7 @@
 		 || prevDateFormats.iDateSeparator.GetNumericValue() != iDateFormats.iDateSeparator.GetNumericValue()
 		 || prevDateFormats.iTimeSeparator.GetNumericValue() != iDateFormats.iTimeSeparator.GetNumericValue() )
 		{
-		refreshNeeded = ETrue;
+        refreshState = EFullRefreshNeeded;
 		iSkinChanged = EFalse;
 		iDateChanged = EFalse;
 		}
@@ -1543,7 +1556,7 @@
          iFolderListButton->SetTextL( *newFolderName );
          CleanupStack::PopAndDestroy( newFolderName );
          iMailList->SetFocusedItemL( KFsTreeNoneID );
-         refreshNeeded = ETrue;
+         refreshState = EFullRefreshNeeded;
          }
 
     // Set mailbox name to status pane
@@ -1557,7 +1570,7 @@
     ConnectionIconHandling();
 
     // REBUILD TREE LIST IF NECESSARY
-    if ( refreshNeeded )
+    if ( refreshState == EFullRefreshNeeded )
         {
         // Try to maintain previously active item if possible.
         // This is of course not possible if folder has changed.
@@ -1581,6 +1594,18 @@
             UpdateMailListModelAsyncL();
             }
         }
+    else if(refreshState == EFocusChangeNeeded)
+        {//Move focus to the beginning of the list
+        TInt firstIndex(0);
+        TFsTreeItemId firstItemId = iMailList->Child( KFsTreeRootID, firstIndex );
+        iMailTreeListVisualizer->SetFocusedItemL( firstItemId, EFalse );
+        //if the view is already active don't update the list so it won't "blink" 
+        //when the view is activated.
+        if(!iThisViewActive)
+          {
+            iMailList->ShowListL();
+          }
+        }
     // THE CORRECT FOLDER IS ALREADY OPEN. CHECK IF SOME PARTIAL UPDATE IS NEEDED.
     else
         {
@@ -1673,6 +1698,7 @@
   	    iMailTreeListVisualizer->NotifyControlVisibilityChange( EFalse );
   	    }
 	iThisViewActive = EFalse;
+	FadeOut(ETrue);  // hide CAlfVisuals on deactivation
 	}
 
 // ---------------------------------------------------------------------------
@@ -1780,44 +1806,6 @@
     // MAIN MENU ***************************************************************************
 	if ( aResourceId == R_FSEMAILUI_MAILLIST_MENUPANE )
 	    {
-            // Sync/cancel sync
-	    CFSMailBox* activeMailbox = iAppUi.GetActiveMailbox();
-	    TBool supportsSync = activeMailbox->HasCapability( EFSMBoxCapaSupportsSync );
-        TFSMailBoxStatus onlineStatus = activeMailbox->GetMailBoxStatus();
-         if ( onlineStatus == EFSMailBoxOnline && 
-		      KIpsPlgImap4PluginUid == activeMailbox->GetId().PluginId() )
-        	{
-            aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
-        	}
-
-            // flag to hide or show SyncButton
-            TBool hideSync = GetLatestSyncState();
-            if(activeMailbox->CurrentSyncState()==StartingSync) hideSync=EFalse;
-
-            // hide or show options: Sync/cancel sync
-        if ( !supportsSync )
-        {
-				// POP3 behaviour
-				if( onlineStatus == EFSMailBoxOnline || iMailListModelUpdater->IsUpdating() )
-				  {
-					aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, EFalse );
-					aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
-				  }
-				else
-					{
-					aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, ETrue );
-					aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, EFalse );
-					}
-        }
-      else if ( hideSync || iMailListModelUpdater->IsUpdating() )
-        {
-        aMenuPane->SetItemDimmed( EFsEmailUiCmdSync, ETrue );
-        }
-      else
-        {
-        aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelSync, ETrue );
-        }
-
 		// Saves a focus visibility.
 		iLastFocus = EFalse;
 		if( iFocusedControl == EMailListComponent && IsFocusShown() )
@@ -2226,13 +2214,10 @@
     // Change background to marking mode
     DisplayMarkingModeBgL( ETrue );       
     // Hide drop down menu buttons
-    if( Layout_Meta_Data::IsLandscapeOrientation() )
-        {
-        iNewEmailButton->SetDimmed();
-        iFolderListButton->SetDimmed();   
-        iSortButton->SetDimmed();
-        }
-    else
+    iNewEmailButton->SetDimmed();
+    iFolderListButton->SetDimmed();   
+    iSortButton->SetDimmed();
+    if( !Layout_Meta_Data::IsLandscapeOrientation() )
         {
         TRect rect(0,0,0,0);
         iControlBarControl->SetRectL( rect );
@@ -4059,13 +4044,12 @@
 			TBool supportsSync = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaSupportsSync );
 			if ( supportsSync )
 			    {
-			    //If synchronizing is ongoing and a new sync is started we ignore it
-			    if(!GetLatestSyncState())
+			    // If synchronizing is ongoing and a new sync is started we ignore it
+			    if( !GetLatestSyncState() )
 			        {
 			        iAppUi.SyncActiveMailBoxL();
 			        // Sync was started by the user
-			        ManualMailBoxSync(ETrue);
-                    iAppUi.ManualMailBoxSync( ETrue );
+			        ManualMailBoxSync( ETrue );
 			        }
 			    }
 			  else
@@ -4075,24 +4059,7 @@
 				}
 			}
 			break;
-       	case EFsEmailUiCmdCancelSync:
-       		{
-            TBool supportsSync = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaSupportsSync );
-            if ( supportsSync )
-		       {
-	            iAppUi.StopActiveMailBoxSyncL();
-	            // Sync was started by the user
-	            ManualMailBoxSync(ETrue);
-	            iAppUi.ManualMailBoxSync( ETrue );
-                }
-		     else
-		        {
-		         //POP3
-                 iAppUi.GetActiveMailbox()->GoOfflineL();
-                }
-       		}
-       		break;
-        case EFsEmailUiCmdGoOffline:
+       	case EFsEmailUiCmdGoOffline:
         	{
     	   	iAppUi.GetActiveMailbox()->GoOfflineL();
         	}
@@ -4100,7 +4067,6 @@
         case EFsEmailUiCmdGoOnline:
         	{
 			CFSMailBox* mb = iAppUi.GetActiveMailbox();
-            iAppUi.ManualMailBoxSync( ETrue );
         	mb->GoOnlineL();
         	}
         	break;
@@ -7220,8 +7186,9 @@
 			iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdMarkAsRead, !IsMarkAsReadAvailableL() );
 
 			// Check support for object mail iten moving
-			TBool supportsMoving = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder );
-			iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage, !supportsMoving );
+			iStylusPopUpMenu->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage,
+         !(iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder )
+         && iMailFolder->SupportsMoveFromL( iMailFolder->GetFolderType() ) ) );
 
 			// Hide / show follow up
 			TBool supportsFlag = TFsEmailUiUtility::IsFollowUpSupported( *iAppUi.GetActiveMailbox() );
@@ -8039,6 +8006,25 @@
     aLayoutArray.AppendL( iControlBarControl->Visual() );
     }
 
+// hide or show CAlfVisuals ( used for activation or deactivation )
+void CFSEmailUiMailListVisualiser::FadeOut(TBool aDirectionOut)
+	{
+    FUNC_LOG;
+	TAlfTimedValue timedValue( 0, 0 );
+	if ( !aDirectionOut )
+        {
+		timedValue.SetTarget( 1, 0 );
+		}
+	if ( iScreenAnchorLayout != NULL )
+		{
+	    iScreenAnchorLayout->SetOpacity( timedValue );
+		}
+	if (iControlBarControl && iControlBarControl->Visual() != NULL )
+        {
+	    iControlBarControl->Visual()->SetOpacity( timedValue );
+        }  
+	}
+
 // Sets aActiveMailboxId and aActiveFolderId from iMailFolder if available
 TInt CFSEmailUiMailListVisualiser::GetActiveFolderId(TFSMailMsgId& aActiveMailboxId, TFSMailMsgId& aActiveFolderId) const
     {
--- a/emailuis/emailui/src/FreestyleEmailUiUtilities.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiUtilities.cpp	Tue May 11 15:57:15 2010 +0300
@@ -1522,6 +1522,7 @@
 	{
     FUNC_LOG;
 	RPointerArray<CFSMailMessagePart> attachments;
+	CleanupResetAndDestroyClosePushL( attachments );
 	aMsg.AttachmentListL( attachments );
 	TBool found = EFalse;
 	for ( TInt i=0; i<attachments.Count(); i++ )
@@ -1532,7 +1533,7 @@
 			break;
 			}
 		}
-	attachments.ResetAndDestroy();
+	CleanupStack::PopAndDestroy( &attachments);
 	return found;
 	}
 
--- a/emailuis/emailui/src/FreestyleEmailUiViewBase.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleEmailUiViewBase.cpp	Tue May 11 15:57:15 2010 +0300
@@ -277,7 +277,19 @@
     }
 
 // ---------------------------------------------------------------------------
+// virtual function to hide or show CAlfVisuals ( used for activation or deactivation )
+//
+void CFsEmailUiViewBase::FadeOut(TBool aDirectionOut )
+	{
+	FUNC_LOG;
+    // should be overriden ( if needed ) to use polymorphism 
+	// to hide or show CAlfVisuals used in views
+	}
+
+
+// ---------------------------------------------------------------------------
 // Check if transition effects are enabled and run the effect if needed.
+// if not enabled it calls FadeOut virtual methods only 
 //
 void CFsEmailUiViewBase::DoTransition( TBool aDirectionOut )
     {
@@ -286,6 +298,11 @@
         {
         DoTransitionEffect( aDirectionOut );
         }
+    else
+        {
+    	// FadeOut method should be overridden and use by polymorphism only when needed 
+    	FadeOut( aDirectionOut ); // used for hide/show visuals without transition time
+    	}
     }
 
 // ---------------------------------------------------------------------------
--- a/emailuis/emailui/src/FreestyleMessageHeaderHTML.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/FreestyleMessageHeaderHTML.cpp	Tue May 11 15:57:15 2010 +0300
@@ -33,14 +33,16 @@
 
 
 
-_LIT8( KShowDetailIconFileName, "plus.gif");
+_LIT8( KExpandHeaderIconFileName, "plus.gif");
+_LIT8( KCollapseHeaderIconFileName, "minus.gif");
 _LIT8( KAttachementIconGeneral, "attachment.gif");
 _LIT8( KFollowUpIconFileName, "follow_up.png");
 _LIT8( KFollowUpCompleteIconFileName, "follow_up_complete.png");
 _LIT8( KPriorityHighIconFileName, "todo_high_add.png");
 _LIT8( KPriorityLowIconFileName, "todo_low_add.png");
 
-_LIT8( KHeaderTableName, "header_table");
+_LIT8( KCollapsedHeaderTableName, "collapsed_header" );
+_LIT8( KExpandedHeaderTableName, "expanded_header" );
 _LIT8( KToTableName, "to_table");
 _LIT8( KCcTableName, "cc_table");
 _LIT8( KBccTableName, "bcc_table");
@@ -58,7 +60,6 @@
 _LIT8( KCcImageName, "cc_img");
 _LIT8( KBccImageName, "bcc_img");
 _LIT8( KAttachmentImageName, "attachment_img");
-_LIT8( KDetailImageName, "detail_img");
 _LIT8( KFollowUpImageName, "follow_up_img");
 _LIT8( KFollowUpCompleteImageName, "follow_up_complete_img");
 _LIT8( KPriorityHighImageName, "todo_high_add_img");
@@ -73,10 +74,10 @@
 _LIT8( KMetaHeader, "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" );
 
 _LIT8( KDisplayImagesLeftToRight,
-        "<script language=\"javascript\">var g_autoLoadImages = %d;</script><table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\">%S</td><td align=\"right\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td></tr></table>" );
+        "<script language=\"javascript\">var g_autoLoadImages = %d;</script>\n<table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\">%S</td><td align=\"right\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td></tr></table>" );
 
 _LIT8( KDisplayImagesRightToLeft,
-        "<script language=\"javascript\">var g_autoLoadImages = %d;</script><table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td><td align=\"right\">%S</td></tr></table>" );
+        "<script language=\"javascript\">var g_autoLoadImages = %d;</script>\n<table style=\"display: none;\" id=\"displayImagesTable\" width=\"%dpx\"><tr><td align=\"left\"><input type=\"submit\" class=\"button\" value=\"%S\" onClick=\"displayImagesButtonPressed()\"/></td><td align=\"right\">%S</td></tr></table>" );
 _LIT8 ( KProtocolIdentifier, "://" );
 const TInt KMaxEventLength( 256 );
 const TInt KFreestyleMessageHeaderHTMLRightMarginInPx( 10 );
@@ -239,15 +240,8 @@
 void CFreestyleMessageHeaderHTML::ExportHTMLBodyL() const
     {
     HTMLBodyStartL();
-    ExportInitialTableL();
-    StartHeaderTableL( KHeaderTableName );
-    ExportFromL();
-    ExportToL();
-    ExportCcL();
-    ExportBccL();
-    ExportSentTimeL();
-    ExportSubjectL();
-    EndHeaderTableL();
+    ExportCollapsedHeaderTableL();
+    ExportExpandedHeaderTableL();
     ExportAttachmentsL();
     ExportDisplayImagesTableL();
     HTMLBodyEndL();
@@ -298,128 +292,27 @@
     iWriteStream.CommitL();
     }
 
-void CFreestyleMessageHeaderHTML::ExportInitialTableL() const
+void CFreestyleMessageHeaderHTML::ExportCollapsedHeaderTableL() const
     {
-    // set the width, using the visible screen width
-    TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
-    tableWidth.AppendNum( iVisibleWidth );
-    
-    if (iExpanded)
-        {
-        iWriteStream.WriteL(_L8("<table id=\"table_initial\" border=\"0\" width=\""));
-        iWriteStream.WriteL( tableWidth );
-        iWriteStream.WriteL( _L8("px\" style=\"display: none\">\n"));    
-        }
-    else
-        {
-        iWriteStream.WriteL(_L8("<table id=\"table_initial\" border=\"0\" width=\""));
-        iWriteStream.WriteL( tableWidth );
-        iWriteStream.WriteL( _L8("px\">\n"));    
-        }
-    
-
-    // start first row: table with the sent info and the '+' icon
-    iWriteStream.WriteL(_L8("<tr><td><table id=\"table_sent_and_plus\" border=\"0\" width=\""));
-    iWriteStream.WriteL( tableWidth );
-    iWriteStream.WriteL( _L8("px\">\n"));
-    
-    iWriteStream.WriteL(_L8("<tr>\n"));
-    
-    // add Sent time and date
-    iWriteStream.WriteL(_L8("<td id=\"sent_initial\""));
-
-    if ( !iMirrorLayout )
-        {
-        iWriteStream.WriteL(_L8(" align=\"left\""));
-        }
-    else
-        {
-        iWriteStream.WriteL(_L8(" align=\"right\""));
-        }
-    iWriteStream.WriteL(_L8(" valign=\"bottom\">"));
-    
-    HBufC* dateText = TFsEmailUiUtility::DateTextFromMsgLC( &iMailMessage );
-    HBufC* timeText = TFsEmailUiUtility::TimeTextFromMsgLC( &iMailMessage );
+    StartHeaderTableL( KCollapsedHeaderTableName, !iExpanded );
+    ExportTimeAndExpandButtonL();
+    ExportSubjectCollapsedL();
+    EndHeaderTableL();
+    }
 
-    TInt len = dateText->Length() + KSentLineDateAndTimeSeparatorText().Length() + timeText->Length();
-    HBufC* sentTimeText = HBufC::NewLC( len );
-    TPtr sentTimeTextPtr = sentTimeText->Des();
-    sentTimeTextPtr.Append( *dateText );
-    sentTimeTextPtr.Append( KSentLineDateAndTimeSeparatorText );
-    sentTimeTextPtr.Append( *timeText );
-    HBufC8* sentTimeText8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( sentTimeTextPtr );
-    CleanupStack::PushL( sentTimeText8 );
-    iWriteStream.WriteL( *sentTimeText8 );
-    CleanupStack::PopAndDestroy( sentTimeText8 );
-    CleanupStack::PopAndDestroy( sentTimeText );
-    CleanupStack::PopAndDestroy( timeText );
-    CleanupStack::PopAndDestroy( dateText );
-    
-    iWriteStream.WriteL(_L8("</td>\n"));
-    
-    // add "show details" image on the same line as Sent time and date
-    iWriteStream.WriteL(_L8("<td width=\"1\" valign=\"top\""));
-    if ( !iMirrorLayout )
-        {
-        iWriteStream.WriteL(_L8(" align=\"right\""));
-        }
-    else
-        {
-        iWriteStream.WriteL(_L8(" align=\"left\""));
-        }
-    iWriteStream.WriteL(_L8(" style=\"padding: 0px 10px 0px 0px;\"><image width=\"55\" height=\"36\" id=\"detail_img\" border=\"0\" src=\"plus.gif\" onClick=\"expandHeader(true)\" ></td>\n"));
-
-    
-    // finish first row
-    iWriteStream.WriteL(_L8("</tr>\n"));  
-    iWriteStream.WriteL(_L8("</table></td></tr>\n"));
+void CFreestyleMessageHeaderHTML::ExportExpandedHeaderTableL() const
+    {
+    StartHeaderTableL( KExpandedHeaderTableName, iExpanded );
+    ExportCollapseButtonL();
+    ExportFromL();
+    ExportToL();
+    ExportCcL();
+    ExportBccL();
+    ExportSentTimeL();
+    ExportSubjectL();
+    EndHeaderTableL();
+    }
 
-    //=============================
-    // start second row which contains subject
-    iWriteStream.WriteL(_L8("<tr>\n"));
-    iWriteStream.WriteL(_L8("<td id=\"subject_initial\""));
-    if ( !iMirrorLayout )
-        {
-        iWriteStream.WriteL(_L8(" align=\"left\""));
-        }
-    else
-        {
-        iWriteStream.WriteL(_L8(" align=\"right\""));
-        }
-    iWriteStream.WriteL(_L8("><b>"));
-
-	HBufC* subject = iMailMessage.GetSubject().Alloc();
-	/*
-     * Writes the subject to iWriteStream and also
-     * takes care of the urls and marks them as hotspots
-     */
-    WriteSubjectL(*subject);
-
-    iWriteStream.WriteL(_L8("</b>"));
-        
-    // Write icons (if necessary).
-    HBufC8* followUp = HTMLHeaderFollowUpIconLC( EFalse );
-    HBufC8* priority = HTMLHeaderPriorityIconLC( EFalse );
-        
-    if ( priority )
-        {
-        iWriteStream.WriteL( *priority );
-        CleanupStack::PopAndDestroy( priority);
-        }
-    
-    if ( followUp )
-        {
-        iWriteStream.WriteL( *followUp );
-        CleanupStack::PopAndDestroy( followUp );
-        }
-    
-    iWriteStream.WriteL(_L8("</td></tr>\n"));  // finish subject row
-    
-    // end table_initial
-    iWriteStream.WriteL(_L8("</table>\n"));
-        
-    iWriteStream.CommitL();
-    }
 // -----------------------------------------------------------------------------
 // CFreestyleMessageHeaderHTML::WriteSubjectL
 // Writes the subject to iWriteStream and also
@@ -706,6 +599,105 @@
     iWriteStream.CommitL();
     }
 
+void CFreestyleMessageHeaderHTML::ExportCollapseButtonL() const
+    {
+    TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
+    tableWidth.AppendNum( iVisibleWidth );
+
+    // Add "Collapse" button as its own table with its own width
+    iWriteStream.WriteL( _L8("<tr><td>\n") );
+    iWriteStream.WriteL( _L8("<table id =\"table_minus_icon\" border=\"0\" width=\"") );
+    iWriteStream.WriteL( tableWidth );
+    iWriteStream.WriteL( _L8("px\">\n") );
+    iWriteStream.WriteL( _L8("<tr>\n") );
+
+    iWriteStream.WriteL( _L8("<td valign=\"top\"") );
+    if ( !iMirrorLayout )
+        {
+        iWriteStream.WriteL( _L8(" align=\"right\"") );
+        iWriteStream.WriteL( _L8(" style=\"padding-right: 10px;\">\n") );
+        }
+    else
+        {
+        iWriteStream.WriteL( _L8(" align=\"left\"") );
+        iWriteStream.WriteL( _L8(" style=\"padding-left: 10px;\">\n") );
+        }
+    iWriteStream.WriteL( _L8("<input type=\"submit\" id=\"collapse\" value=\"\" class=\"collapse\"") );
+    iWriteStream.WriteL( _L8(" onClick=\"collapseHeader(true)\"/>") );
+    iWriteStream.WriteL( _L8("</td>\n") );
+
+    iWriteStream.WriteL( _L8("</tr>\n"));
+    iWriteStream.WriteL( _L8("</table></td></tr>\n"));
+    iWriteStream.CommitL();
+    }
+
+void CFreestyleMessageHeaderHTML::ExportTimeAndExpandButtonL() const
+    {
+    // set the width, using the visible screen width
+    TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
+    tableWidth.AppendNum( iVisibleWidth );
+
+    // start first row: table with the sent info and the '+' icon
+    iWriteStream.WriteL(_L8("<tr><td><table id=\"table_sent_and_plus\" border=\"0\" width=\""));
+    iWriteStream.WriteL( tableWidth );
+    iWriteStream.WriteL( _L8("px\">\n"));
+    
+    iWriteStream.WriteL(_L8("<tr>\n"));
+    
+    // add Sent time and date
+    iWriteStream.WriteL(_L8("<td id=\"sent_initial\""));
+
+    if ( !iMirrorLayout )
+        {
+        iWriteStream.WriteL(_L8(" align=\"left\""));
+        }
+    else
+        {
+        iWriteStream.WriteL(_L8(" align=\"right\""));
+        }
+    iWriteStream.WriteL(_L8(" valign=\"bottom\">"));
+    
+    HBufC* dateText = TFsEmailUiUtility::DateTextFromMsgLC( &iMailMessage );
+    HBufC* timeText = TFsEmailUiUtility::TimeTextFromMsgLC( &iMailMessage );
+
+    TInt len = dateText->Length() + KSentLineDateAndTimeSeparatorText().Length() + timeText->Length();
+    HBufC* sentTimeText = HBufC::NewLC( len );
+    TPtr sentTimeTextPtr = sentTimeText->Des();
+    sentTimeTextPtr.Append( *dateText );
+    sentTimeTextPtr.Append( KSentLineDateAndTimeSeparatorText );
+    sentTimeTextPtr.Append( *timeText );
+    HBufC8* sentTimeText8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( sentTimeTextPtr );
+    CleanupStack::PushL( sentTimeText8 );
+    iWriteStream.WriteL( *sentTimeText8 );
+    CleanupStack::PopAndDestroy( sentTimeText8 );
+    CleanupStack::PopAndDestroy( sentTimeText );
+    CleanupStack::PopAndDestroy( timeText );
+    CleanupStack::PopAndDestroy( dateText );
+    
+    iWriteStream.WriteL(_L8("</td>\n"));
+
+    // Add "expand" button on the same line as Sent time and date
+    iWriteStream.WriteL(_L8("<td valign=\"top\""));
+    if ( !iMirrorLayout )
+        {
+        iWriteStream.WriteL(_L8(" align=\"right\""));
+        iWriteStream.WriteL(_L8(" style=\"padding-right: 10px;\">\n"));
+        }
+    else
+        {
+        iWriteStream.WriteL(_L8(" align=\"left\""));
+        iWriteStream.WriteL(_L8(" style=\"padding-left: 10px;\">\n"));
+        }
+    iWriteStream.WriteL(_L8("<input type=\"submit\" id=\"expand\" value=\"\" class=\"expand\""));
+    iWriteStream.WriteL(_L8(" onClick=\"expandHeader(true)\"/>"));
+    iWriteStream.WriteL(_L8("</td>\n"));
+
+    // finish first row
+    iWriteStream.WriteL(_L8("</tr>\n"));  
+    iWriteStream.WriteL(_L8("</table></td></tr>\n"));
+    iWriteStream.CommitL();
+    }
+
 void CFreestyleMessageHeaderHTML::ExportSubjectL() const
     {
     iWriteStream.WriteL( _L8("<tr id=\"") );
@@ -757,6 +749,49 @@
     iWriteStream.CommitL();
     }
 
+void CFreestyleMessageHeaderHTML::ExportSubjectCollapsedL() const
+    {
+    iWriteStream.WriteL(_L8("<tr>\n"));
+    iWriteStream.WriteL(_L8("<td id=\"subject_initial\""));
+    if ( !iMirrorLayout )
+        {
+        iWriteStream.WriteL(_L8(" align=\"left\""));
+        }
+    else
+        {
+        iWriteStream.WriteL(_L8(" align=\"right\""));
+        }
+    iWriteStream.WriteL(_L8("><b>"));
+
+    HBufC* subject = iMailMessage.GetSubject().Alloc();
+    /*
+     * Writes the subject to iWriteStream and also
+     * takes care of the urls and marks them as hotspots
+     */
+    WriteSubjectL(*subject);
+
+    iWriteStream.WriteL(_L8("</b>"));
+
+    // Write icons (if necessary).
+    HBufC8* followUp = HTMLHeaderFollowUpIconLC( EFalse );
+    HBufC8* priority = HTMLHeaderPriorityIconLC( EFalse );
+
+    if ( priority )
+        {
+        iWriteStream.WriteL( *priority );
+        CleanupStack::PopAndDestroy( priority);
+        }
+
+    if ( followUp )
+        {
+        iWriteStream.WriteL( *followUp );
+        CleanupStack::PopAndDestroy( followUp );
+        }
+
+    iWriteStream.WriteL(_L8("</td></tr>\n"));  // finish subject row
+    iWriteStream.CommitL();
+    }
+
 void CFreestyleMessageHeaderHTML::ExportFromL() const
     {
     RPointerArray<CFSMailAddress> froms;
@@ -1053,42 +1088,13 @@
     iWriteStream.CommitL();
     }
 
-void CFreestyleMessageHeaderHTML::StartHeaderTableL( const TDesC8& aTableId ) const
+void CFreestyleMessageHeaderHTML::StartHeaderTableL( const TDesC8& aTableId,
+    TBool /*aVisible*/ ) const
     {
     iWriteStream.WriteL( _L8("<table id=\"") );
-    iWriteStream.WriteL( aTableId );    
-    if (iExpanded)
-        {
-        iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\">\n") );    
-        }
-    else
-        {
-        iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\" style=\"display: none\">\n") );    
-        }   
-    
-    TBuf8<KFreestyleMessageHeaderHTMLMaxBufferSizeForWidth> tableWidth;
-    tableWidth.AppendNum( iVisibleWidth );
-
-    // Add "hide details" image as its own table with its own width
-    iWriteStream.WriteL( _L8("<tr><td>\n"));
-    iWriteStream.WriteL(_L8("<table id =\"table_minus_icon\" border=\"0\" width=\""));
-    iWriteStream.WriteL( tableWidth );
-    iWriteStream.WriteL( _L8("px\">\n"));
-    iWriteStream.WriteL( _L8("<tr>\n"));
-    
-    iWriteStream.WriteL( _L8("<td valign=\"top\""));
-    if ( !iMirrorLayout )
-        {
-        iWriteStream.WriteL(_L8(" align=\"right\""));
-        }
-    else
-        {
-        iWriteStream.WriteL(_L8(" align=\"left\""));
-        }
-    iWriteStream.WriteL( _L8(" style=\"padding: 0px 10px 0px 0px;\"><image width=\"55\" height=\"36\" id=\"hideDetails_img\" border=\"0\" src=\"minus.gif\" onClick=\"collapseHeader(true)\"></td>\n"));
-
-    iWriteStream.WriteL( _L8("</tr>\n"));
-    iWriteStream.WriteL( _L8("</table></td></tr>\n"));
+    iWriteStream.WriteL( aTableId );
+    iWriteStream.WriteL( _L8("\" border=\"0\" width=\"100%\"") );
+    iWriteStream.WriteL( _L8(">\n") );
     iWriteStream.CommitL();
     }
 
@@ -1111,15 +1117,6 @@
     iWriteStream.CommitL();
     }
 
-void CFreestyleMessageHeaderHTML::AddShowDetailL() const
-    {
-    HBufC8* event = ClickImageEventL( KDetailImageName );
-    CleanupStack::PushL( event );
-    AddImageL( KDetailImageName, KShowDetailIconFileName, *event );
-    CleanupStack::PopAndDestroy( event );
-    iWriteStream.CommitL();
-    }
-
 HBufC8* CFreestyleMessageHeaderHTML::ClickImageEventL( const TDesC8& aImageName ) const
     {
     TBuf8<KMaxEventLength> event;
@@ -1147,14 +1144,6 @@
         event.Append( KBccImageName );
         event.Append( _L8("')\"") );
         }
-    else if ( aImageName.Compare( KDetailImageName ) == 0 )
-        {
-        event.Append( _L8("onClick=\"toggleHeader('") );
-        event.Append( KHeaderTableName );
-        event.Append( _L8("', '") );
-        event.Append( KDetailImageName );
-        event.Append( _L8("')\"") );
-        }
     else if ( aImageName.Compare( KAttachmentImageName ) == 0 )
         {
         event.Append( _L8("onClick=\"toggleField('") );
@@ -1228,8 +1217,15 @@
     // Note: since the text in the body is too small at "normal" level, 
     // we have the text size level in the browser set to "Larger" which is 20% larger than the specified size
     // the "larger" size affects all text which includes the header.
-    iWriteStream.WriteL( _L8("td { font-family:arial,sans-serif ; font-size:75% }\n"));
+    iWriteStream.WriteL( _L8("td { font-family:arial,sans-serif ; font-size:75% }\n") );
     iWriteStream.WriteL( _L8(".button { background: url('btn_middle.png') repeat-x top left; border: 1px solid #546284; height: 32px; font-size:19px; font-weight: bold; color: #344a6c; font-family:arial,sans-serif; }\n") );
+    iWriteStream.WriteL( _L8("input { color: black; position: relative; border: 0; cursor: pointer; overflow: visible; }\n") );
+    iWriteStream.WriteL( _L8("input.expand { width: 55px; height: 36px; background: transparent url('"));
+    iWriteStream.WriteL( KExpandHeaderIconFileName );
+    iWriteStream.WriteL( _L8("') no-repeat top left; }\n") );
+    iWriteStream.WriteL( _L8("input.collapse { width: 55px; height: 36px; background: transparent url('"));
+    iWriteStream.WriteL( KCollapseHeaderIconFileName );
+    iWriteStream.WriteL( _L8("') no-repeat top left; }\n") );
     iWriteStream.WriteL( _L8("</style>\n") );
     iWriteStream.CommitL();
     }
@@ -1248,4 +1244,3 @@
     }
 
 
-                                
--- a/emailuis/emailui/src/OverlayControl.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/OverlayControl.cpp	Tue May 11 15:57:15 2010 +0300
@@ -73,7 +73,7 @@
     if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
         {      
         // Give feedback to user (vibration)     
-        iTouchFeedBack->InstantFeedback( this, ETouchFeedbackBasic );
+        iTouchFeedBack->InstantFeedback( this, ETouchFeedbackBasicButton );
         SetPointerCapture( ETrue );        
         }
     CCoeControl::HandlePointerEventL( aPointerEvent );
--- a/emailuis/emailui/src/ncsaddressinputfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncsaddressinputfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -290,7 +290,7 @@
     FUNC_LOG;
     
     // keep the button in view as long as possible
-    if( iButton )
+    if( iButton && iParentControl->IsVisible() )
     	{
 		const TRect rect( Rect() );
 		const TRect buttonRect( iButton->Rect() );
@@ -463,7 +463,11 @@
 		}
     else
         {
-        TRAP_IGNORE( iTextEditor->HandleTextChangedL() );
+        if ( iTextEditor->SelectionLength()== 0 )
+            {
+            TRAP_IGNORE( iTextEditor->HandleTextChangedL() );
+            }
+        
         iTextEditor->SetFocus( EFalse );
         TRAP_IGNORE( iAddressPopupList->ClosePopupContactListL() );
         }
@@ -862,9 +866,10 @@
     {
 	iPhysics = aPhysics;
     iTextEditor->EnableKineticScrollingL( aPhysics );
+    iTextEditor->TextLayout()->RestrictScrollToTopsOfLines( ETrue );
     }
 
-void CNcsAddressInputField::SetCursorVisible( TBool aCursorVisible )
+void CNcsAddressInputField::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
     {
-    iTextEditor->SetCursorVisible( aCursorVisible );
+    iTextEditor->SetPhysicsEmulationOngoing( aPhysOngoing );
     }
--- a/emailuis/emailui/src/ncscomposeview.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncscomposeview.cpp	Tue May 11 15:57:15 2010 +0300
@@ -1629,7 +1629,8 @@
         TFsEmailUiUtility::CreatePlainTextPartL( 
                 *iNewMessage, iNewMessageTextPart );
         InitFieldsL();
-        IncludeMessageTextL();
+        TBool spaceInBegin = ETrue;
+        IncludeMessageTextL(spaceInBegin);
         AttachmentsListControl()->Model()->Clear();
         GetAttachmentsFromMailL();
         SetAttachmentLabelContentL();
--- a/emailuis/emailui/src/ncscomposeviewcontainer.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncscomposeviewcontainer.cpp	Tue May 11 15:57:15 2010 +0300
@@ -54,6 +54,8 @@
 #include "FreestyleEmailUiCLSItem.h"
 
 
+const TInt KHeaderVisibilityThreshold = -100;
+
 // ========================= MEMBER FUNCTIONS ==================================
 
 // ---------------------------------------------------------------------------
@@ -362,8 +364,8 @@
                     {
 					// If user started dragging, cancel hotspot actions
 					iIsDragging = ETrue;
-					iMessageField->SetCursorVisible( EFalse );
-					iReadOnlyQuoteField->SetCursorVisible( EFalse );
+					iMessageField->SetPhysicsEmulationOngoing( ETrue );
+					iReadOnlyQuoteField->SetPhysicsEmulationOngoing( ETrue );
 					iHeader->SetPhysicsEmulationOngoing( ETrue );
                     }
                 }
@@ -789,11 +791,11 @@
         }
 
 	// update some layout variables
-    TRect headerRect = iHeader->Rect();
+    iHeaderHeight = iHeader->Rect().Height();
     TRect bodyRect = iMessageField->Rect();
     TRect quoteRect = iReadOnlyQuoteField->Rect();
 
-    iTotalComposerHeight = headerRect.Height() + iSeparatorHeight * 2 + 
+    iTotalComposerHeight = iHeaderHeight + iSeparatorHeight * 2 + 
 							   bodyRect.Height() + quoteRect.Height();
     
     iVisibleAreaHeight = Rect().Height();
@@ -998,7 +1000,8 @@
     TEdwinEvent aEventType )
     {
     FUNC_LOG;
-    if ( aEdwin == iMessageField || aEdwin == iReadOnlyQuoteField )
+    if (( aEdwin == iMessageField || aEdwin == iReadOnlyQuoteField ) && 
+         ( !iPhysics || iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionNone ))
         {
         if ( aEventType == MEikEdwinObserver::EEventTextUpdate ||
              aEventType == MEikEdwinObserver::EEventNavigation )
@@ -1916,7 +1919,19 @@
 			{
 			headerPos.iY += moveY;
 			iHeader->SetPosition( headerPos );
-	
+
+			// set header invisible if it is not in visible area
+			// this is done to prevent drawing of header when it is not necessary
+            if ( headerPos.iY + iHeaderHeight <= KHeaderVisibilityThreshold && iHeader->IsVisible() )
+                {            
+                iHeader->MakeVisible( EFalse );
+                }
+            // set header visible if it is in visible area
+            else if ( headerPos.iY + iHeaderHeight > KHeaderVisibilityThreshold && !iHeader->IsVisible() ) 
+                {
+                iHeader->MakeVisible( ETrue );
+                }
+    
 			TPoint msgPos( iMessageField->Position() );
 			msgPos.iY += moveY;
 			iMessageField->SetPosition( msgPos );
@@ -1931,7 +1946,7 @@
 			iSeparatorLineYPos += moveY;
 
 			UpdateScrollBar();
-			DrawNow();
+			DrawDeferred();
 			}
     	}
     else
@@ -1950,8 +1965,15 @@
     {
     FUNC_LOG;
     TInt scrollOffset = aNewPosition.iY - iVisibleAreaHeight / 2;
+
+	// when the composer view is overlapped by other view for instance task switcher or screensaver
+	// physics sends a faulty event to move the composer view down. 
+	// This action is ignored here.	
+	if (aNewPosition.iY != 0)
+		{    	
     Scroll( scrollOffset, aDrawNow );
     }
+	}
 
 // -----------------------------------------------------------------------------
 // CNcsComposeViewContainer::PhysicEmulationEnded
@@ -1962,8 +1984,8 @@
     {
     FUNC_LOG;
     iIsFlicking = EFalse;
-    iMessageField->SetCursorVisible( ETrue );
-    iReadOnlyQuoteField->SetCursorVisible( ETrue );
+    iMessageField->SetPhysicsEmulationOngoing( EFalse );
+    iReadOnlyQuoteField->SetPhysicsEmulationOngoing( EFalse );
     iHeader->SetPhysicsEmulationOngoing( EFalse );
     }
 
--- a/emailuis/emailui/src/ncseditor.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncseditor.cpp	Tue May 11 15:57:15 2010 +0300
@@ -650,3 +650,15 @@
     caps.MergeWith(caps2);
     return caps;
     }
+
+
+void CNcsEditor::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
+    {
+    iPhysOngoing = aPhysOngoing;
+    this->SetCursorVisible( !aPhysOngoing );
+    }
+
+TBool CNcsEditor::IsPhysicsEmulationOngoing() const
+    {
+    return iPhysOngoing;
+    }
--- a/emailuis/emailui/src/ncseditorcustomdraw.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncseditorcustomdraw.cpp	Tue May 11 15:57:15 2010 +0300
@@ -82,13 +82,15 @@
     TRect& aDrawn ) const
     {
     FUNC_LOG;
+    TRect drawRect( aParam.iDrawRect );
+    
     if ( iPrevBrX == 0 )
         {
-        const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = aParam.iDrawRect.iBr.iX;
+        const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = drawRect.iBr.iX;
         }
     
     // draw background if text selection is ongoing
-    if ( iEditor->SelectionLength() )
+    if ( !iEditor->IsPhysicsEmulationOngoing() )
     	{
 		iCustomDrawer->DrawBackground( aParam, aBackground, aDrawn );
     	}
@@ -96,29 +98,34 @@
     	{
         aDrawn = aParam.iDrawRect;
     	}
-    	
-    if ( aParam.iDrawRect.iTl.iX < iPrevBrX )
+
+    if ( drawRect.iTl.iY == 0 )
+        {
+        drawRect.iTl.iY = drawRect.Height() - iLineHeigth;
+        }
+
+    if ( drawRect.iTl.iX < iPrevBrX )
         {
         aParam.iGc.SetPenColor( iLineColor );
     
         TInt margin( 0 );
-        if ( aParam.iDrawRect.Height() < iLineHeigth ||
-             aParam.iDrawRect.Height() == iLineOffset )
+        if ( drawRect.Height() < iLineHeigth ||
+             drawRect.Height() == iLineOffset )
             {
             margin = 1;
             }
     
-        TRect currentRect( aParam.iDrawRect.iTl , TPoint( aParam.iDrawRect.iBr.iX, aParam.iDrawRect.iTl.iY + iLineOffset - margin ));
+        TRect currentRect( drawRect.iTl , TPoint( drawRect.iBr.iX, drawRect.iTl.iY + iLineOffset - margin ));
         
-        while ( currentRect.iBr.iY <= aParam.iDrawRect.iBr.iY )
+        while ( currentRect.iBr.iY <= drawRect.iBr.iY )
             {
-            if ( currentRect.iTl.iY >= aParam.iDrawRect.iTl.iY  )
+            if ( currentRect.iTl.iY >= drawRect.iTl.iY  )
                 {
                 aParam.iGc.DrawLine( TPoint( currentRect.iTl.iX, currentRect.iBr.iY), currentRect.iBr );
                 }
             currentRect.Move( 0, iLineHeigth );
             }
-        const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = aParam.iDrawRect.iBr.iX;
+        const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = drawRect.iBr.iX;
         }
     }
 
--- a/emailuis/emailui/src/ncsheadercontainer.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncsheadercontainer.cpp	Tue May 11 15:57:15 2010 +0300
@@ -1178,7 +1178,7 @@
 	if( !iAacListBox->IsVisible() )
 		{
         iAacListBox->SetPopupMaxRect( CalculatePopupRect() );
-        iAacListBox->InitAndSearchL( aMatchString );
+        iAacListBox->InitAndSearchL( aMatchString, 1 );
         iAacListBox->ActivateL();
 		}
 	else
@@ -2054,8 +2054,8 @@
 //
 void CNcsHeaderContainer::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
     {
-    iToField->SetCursorVisible( !aPhysOngoing );
-    iCcField->SetCursorVisible( !aPhysOngoing );
-    iBccField->SetCursorVisible( !aPhysOngoing );
-    iSubjectField->SetCursorVisible( !aPhysOngoing );
+    iToField->SetPhysicsEmulationOngoing( aPhysOngoing );
+    iCcField->SetPhysicsEmulationOngoing( aPhysOngoing );
+    iBccField->SetPhysicsEmulationOngoing( aPhysOngoing );
+    iSubjectField->SetPhysicsEmulationOngoing( aPhysOngoing );
     }
--- a/emailuis/emailui/src/ncspopuplistbox.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncspopuplistbox.cpp	Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,6 @@
 #include <FreestyleEmailUi.rsg>						// R_FSE_EDITOR_ADDRESS_LIST_REMOTE_LOOKUP_SEARCH
 #include <StringLoader.h>						// StringLoader
 #include <CPbkContactEngine.h>
-#include <aknnotewrappers.h>					//For LanguageNotSupported errorNote
 #include <aknsdrawutils.h>
 #include <aknsutils.h>
 #include <aknlayoutscalable_apps.cdl.h>
@@ -111,10 +110,10 @@
 // -----------------------------------------------------------------------------
 // CNcsPopupListBox::InitAndSearchL
 // -----------------------------------------------------------------------------
-void CNcsPopupListBox::InitAndSearchL( const TDesC& aText )
+void CNcsPopupListBox::InitAndSearchL( const TDesC& aText, TInt aMode )
     {
     FUNC_LOG;
-    SetSearchTextL( aText );
+    SetSearchTextL( aText, aMode );
     RPointerArray<CFSEmailUiClsItem> emptyArray;
     CleanupClosePushL( emptyArray );
     OperationCompleteL( ESearchContacts, emptyArray );
@@ -246,7 +245,7 @@
     TListBoxEvent aEventType )
     {
     if ( aEventType == EEventItemClicked || 
-    	 aEventType == EEventItemSingleClicked )
+         aEventType == EEventItemSingleClicked )
         {
         iHeaderContainer.DoPopupSelectL();
         }
@@ -302,7 +301,7 @@
 // CNcsPopupListBox::SetSearchTextL
 // -----------------------------------------------------------------------------
 //
-void CNcsPopupListBox::SetSearchTextL( const TDesC& aText )
+void CNcsPopupListBox::SetSearchTextL( const TDesC& aText, TInt aMode )
     {
     FUNC_LOG;
     delete iCurrentSearchText;
@@ -312,7 +311,7 @@
         {
         if ( iContactHandler  )
             {
-            iContactHandler->SearchMatchesL( aText, this, &iMailBox );
+            iContactHandler->SearchMatchesL( aText, this, &iMailBox, aMode );
             }
         }
     }
@@ -692,13 +691,16 @@
     CNcsPopupListBox& tmpListBox = const_cast<CNcsPopupListBox&>( iListBox );
     const TInt scrollbarBreadth = tmpListBox.ScrollBarFrame()->
         ScrollBarBreadth( CEikScrollBar::EVertical );
-    if ( AknLayoutUtils::LayoutMirrored() )
+    if ( scrollbarBreadth > 0 )
         {
-        itemRect.iTl.iX = iListBox.Rect().iTl.iX + scrollbarBreadth;
-        }
-    else
-        {
-        itemRect.iBr.iX = iListBox.Rect().iBr.iX - scrollbarBreadth;
+        if ( AknLayoutUtils::LayoutMirrored() )
+            {
+            itemRect.iTl.iX = iListBox.Rect().iTl.iX + scrollbarBreadth;
+            }
+        else
+            {
+            itemRect.iBr.iX = iListBox.Rect().iBr.iX - scrollbarBreadth;
+            }
         }
     }
 
@@ -769,12 +771,14 @@
 			aItemIndex--;
 			}
 
-		// change color to gray if match doesn't have email address.
-		if( clsItemArray[aItemIndex]->EmailAddress().Compare( KNullDesC ) == 0 )
-			{
-			TRgb dimmedColor = iListBox.LayoutHandler().PcsPopupDimmedFontColor();
-			iGc->SetPenColor( dimmedColor );
-			}
+    // Change text transparency if match doesn't have email address.
+    if ( clsItemArray[aItemIndex]->EmailAddress().Compare( KNullDesC ) == 0 )
+        {
+        const TInt KTransparency = 
+            iListBox.LayoutHandler().PcsPopupDimmedFontTransparency();
+        textColor.SetAlpha( KTransparency );
+        iGc->SetPenColor( textColor );
+        }
 
 		// For now, we support underlining the matching part only if the
 		//       text is written completely with left-to-right script
--- a/emailuis/emailui/src/ncssubjectfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/emailui/src/ncssubjectfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -600,9 +600,10 @@
 void CNcsSubjectField::EnableKineticScrollingL(CAknPhysics*  aPhysics)
     {
     iTextEditor->EnableKineticScrollingL(aPhysics);
+    iTextEditor->TextLayout()->RestrictScrollToTopsOfLines( ETrue );
     }
 
-void CNcsSubjectField::SetCursorVisible( TBool aCursorVisible )
+void CNcsSubjectField::SetPhysicsEmulationOngoing( TBool aPhysOngoing )
     {
-    iTextEditor->SetCursorVisible( aCursorVisible );
+    iTextEditor->SetPhysicsEmulationOngoing( aPhysOngoing );
     }
--- a/emailuis/uicomponents/src/fstreevisualizerbase.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/emailuis/uicomponents/src/fstreevisualizerbase.cpp	Tue May 11 15:57:15 2010 +0300
@@ -2535,7 +2535,11 @@
 void CFsTreeVisualizerBase::SetItemsAlwaysExtendedL(TBool aAlwaysExtended)
     {
     FUNC_LOG;
-    if (iFlags.IsSet(EItemsAlwaysExtended) != aAlwaysExtended )
+    // Do not change this to: IsItemsAlwaysExtended() != aAlwaysExtended, because
+    // it will not work. TBool is defined as TInt and thus this comparison
+    // comes out as TInt != TInt, which always evaluates true in this case.
+    if ( ( IsItemsAlwaysExtended() && !aAlwaysExtended ) || 
+         ( !IsItemsAlwaysExtended() && aAlwaysExtended ) )
         {
         iFlags.Assign(EItemsAlwaysExtended, aAlwaysExtended);
         TFsTreeIterator treeIter(
--- a/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h	Tue May 11 15:57:15 2010 +0300
@@ -42,6 +42,7 @@
 class CIpsPlgSmtpService;
 class CIpsPlgSyncStateHandler;
 class CIpsPlgEventHandler;
+class CIpsPlgOperationWait;
 
 /**
  *  FreestyleIpsServices plugin class
@@ -611,8 +612,15 @@
             const TFSMailMsgId& aMailBoxId,
             const TFSMailMsgId& aOriginalMessageId,
             const TDesC& aHeaderDescriptor );
-    
-private:
+
+    /**
+     * Resolves the possible signature text to be added to message body.
+     * 
+     * @return Pointer to the descriptor containing the signature text, or
+     *         NULL if signature adding is not set or signature text is
+     *         of zero length. Ownership to caller.
+     */
+    HBufC* ResolveSignatureTextL( const TFSMailMsgId& aMailBoxId );
 
     /**
     * Maps symbian msv api's folder type to fs folder type
@@ -712,6 +720,10 @@
     // <cmail> delete draft synchronously
     CActiveSchedulerWait iWait;
 	// </cmail>
+    
+    CIpsPlgOperationWait* iWaitDeleteMessage;
+    CMsvEntry* icEntry;
+    CMsvOperation* iMsvOpDeleteMessage;
 	};
 
 #endif /* IPSPLGSOSBASEPLUGIN_H */
--- a/ipsservices/ipssosplugin/src/ipsplgeventhandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgeventhandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -1196,12 +1196,7 @@
 // ---------------------------------------------------------------------------
 TUid CIpsPlgEventHandler::MtmId() const
     {
-    TUid ret = KSenduiMtmImap4Uid;
-    if ( iBasePlugin.MtmId().iUid == KIpsPlgPop3PluginUidValue )
-        {
-        ret = KSenduiMtmPop3Uid;
-        }
-    return ret;
+    return iBasePlugin.MtmId();
     }
 //</cmail>
 // ----------------------------------------------------------------------------
@@ -1329,6 +1324,7 @@
         }
 
     RPointerArray<MFSMailEventObserver> observers;
+    CleanupClosePushL( observers );  // not owning classes
     MailboxObserversL( aAccount, observers );
 
     if ( find != KErrNotFound )
@@ -1342,7 +1338,7 @@
         obs->SetKeyAndActivateL( aSettingKey, observers );
         iIPSSettingsObservers.AppendL( obs );
         }
-    observers.Close();
+    CleanupStack::PopAndDestroy( &observers );
     }
 
 // ----------------------------------------------------------------------------
--- a/ipsservices/ipssosplugin/src/ipsplgimap4plugin.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgimap4plugin.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,6 +19,7 @@
 
 #include "emailtrace.h"
 #include "ipsplgheaders.h"
+#include <baseplugincommonutils.h>     // CleanupResetAndDestroyPushL
 
 const TInt KConnectOpPriority = CActive::EPriorityStandard;
 
@@ -663,7 +664,7 @@
         if( folder )
      	    {
      	    CleanupStack::PushL( folder );
-     	    aFolderList.Append( folder );
+     	    aFolderList.AppendL( folder );
      	    CleanupStack::Pop( folder );
      	    }
         
@@ -673,7 +674,7 @@
         if( folder )
      	    {
      	    CleanupStack::PushL( folder );
-     	    aFolderList.Append( folder );
+     	    aFolderList.AppendL( folder );
      	    CleanupStack::Pop( folder );
      	    } 	    
      	    
@@ -683,7 +684,7 @@
         if( folder )
      	    {
      	    CleanupStack::PushL( folder );
-     	    aFolderList.Append( folder );
+     	    aFolderList.AppendL( folder );
      	    CleanupStack::Pop( folder );
      	    } 	   
         
--- a/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssosplugin/src/ipsplgsosbaseplugin.cpp	Tue May 11 15:57:15 2010 +0300
@@ -30,6 +30,7 @@
 _LIT8( KRequest, "REQUEST" );
 _LIT8( KResponse, "RESPONSE" );
 _LIT8( KCancel, "CANCEL" );
+_LIT( KLineFeed, "\r\n");
 
 #ifdef __WINS__
 _LIT( KEmulatorIMEI, "123456789012345" );
@@ -64,6 +65,22 @@
 CIpsPlgSosBasePlugin::~CIpsPlgSosBasePlugin()
     {
     FUNC_LOG;
+    if ( iMsvOpDeleteMessage )
+        {
+        iMsvOpDeleteMessage->Cancel();
+        }
+    
+    if ( iWaitDeleteMessage )
+        {
+        iWaitDeleteMessage->Cancel();
+        }
+    
+    delete iMsvOpDeleteMessage;
+    iMsvOpDeleteMessage = NULL;
+    delete iWaitDeleteMessage;
+    iWaitDeleteMessage = NULL;
+    delete icEntry;
+    icEntry = NULL;
     if ( iWait.IsStarted() )
         {
         iWait.AsyncStop();
@@ -1743,7 +1760,7 @@
 void CIpsPlgSosBasePlugin::DeleteMessagesByUidL(
     const TFSMailMsgId& /*aMailBoxId*/,
     const TFSMailMsgId& /*aFolderId*/,
-	const RArray<TFSMailMsgId>& aMessages )
+    const RArray<TFSMailMsgId>& aMessages )
     {
     FUNC_LOG;
     CMsvEntrySelection* sel=new(ELeave) CMsvEntrySelection;
@@ -1754,49 +1771,93 @@
     TMsvId service;
 
     TMsvEntry parentEntry;
-
-   for(TInt i=0; i<count; i++)
+    
+    // simulation of canceling deletion operation
+    if ( !count ) 
         {
-        iSession->GetEntry( aMessages[i].Id(), service, tEntry );
-
-        //make sure that only messages get deleted.
-        if( tEntry.iType == KUidMsvMessageEntry )
+        if ( iMsvOpDeleteMessage )
             {
-            iSession->GetEntry( tEntry.Parent( ), service, parentEntry );
-
-            CMsvEntry *cEntry = CMsvEntry::NewL(
-                        *iSession, tEntry.Id(), TMsvSelectionOrdering() );
-            CleanupStack::PushL( cEntry );
-            CIpsPlgOperationWait* wait = CIpsPlgOperationWait::NewLC( );
-            // Sets bit 32 of iMtmData1, used when msg deleted in Offline
-            // and status hasn't updated to server (client entry still exists)
-            tEntry.SetLocallyDeleted( ETrue );
-            CMsvOperation* msvOp = cEntry->ChangeL( tEntry, wait->iStatus );
-            CleanupStack::PushL(msvOp);
-            wait->Start();
-            sel->AppendL( tEntry.Id() );
-            CleanupStack::PopAndDestroy( 3, cEntry );
+            iMsvOpDeleteMessage->Cancel();
+            }
+        
+        if ( iWaitDeleteMessage )
+            {
+            iWaitDeleteMessage->Cancel();
             }
-        }
-
-    CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewL( *this );
-    CleanupStack::PushL( watcher );
-    CMsvOperation* op = CIpsPlgDeleteRemote::NewL( *iSession,
-        watcher->iStatus, *sel );
-    watcher->SetOperation( op );
-
-    // make draft deletion synchronous so that empty drafts are not left after application close
-    if ( parentEntry.Id() == KMsvDraftEntryIdValue && count == 1 )
-        {
-        iWait.Start();
-        CleanupStack::PopAndDestroy( watcher );
+        
+        delete iMsvOpDeleteMessage;
+        iMsvOpDeleteMessage = NULL;
+        delete iWaitDeleteMessage;
+        iWaitDeleteMessage = NULL;
+        delete icEntry;
+        icEntry = NULL;
         }
     else
         {
-        iOperations.AppendL( watcher );
-        CleanupStack::Pop( watcher );
+        for( TInt i = 0; i < count; i++ )
+            {
+            iSession->GetEntry( aMessages[i].Id(), service, tEntry );
+            
+            //make sure that only messages get deleted.
+            if( tEntry.iType == KUidMsvMessageEntry )
+                {
+                if(iMsvOpDeleteMessage)
+                    {
+                    iMsvOpDeleteMessage->Cancel();
+                    delete iMsvOpDeleteMessage;
+                    iMsvOpDeleteMessage = NULL;
+                    }
+                
+                if ( iWaitDeleteMessage )
+                    {
+                    iWaitDeleteMessage->Cancel();
+                    delete iWaitDeleteMessage;
+                    iWaitDeleteMessage = NULL;
+                    }
+
+                delete icEntry;
+                icEntry = NULL;
+            
+                iSession->GetEntry( tEntry.Parent( ), service, parentEntry );
+
+                icEntry = CMsvEntry::NewL( 
+                        *iSession, tEntry.Id(), TMsvSelectionOrdering() );
+                
+                
+                // priority slightly increased not to pause the function longer than needed
+                iWaitDeleteMessage = CIpsPlgOperationWait::NewL( CActive::EPriorityStandard+1 );
+                // Sets bit 32 of iMtmData1, used when msg deleted in Offline
+                // and status hasn't updated to server (client entry still exists)
+                tEntry.SetLocallyDeleted( ETrue );
+                
+                iMsvOpDeleteMessage = icEntry->ChangeL( tEntry, 
+                        iWaitDeleteMessage->iStatus );
+                        
+                iWaitDeleteMessage->Start();
+                
+                sel->AppendL( tEntry.Id() );
+                }
+            }
+
+        CIpsPlgSingleOpWatcher* watcher = CIpsPlgSingleOpWatcher::NewLC( *this );
+
+        CMsvOperation* op = CIpsPlgDeleteRemote::NewL( *iSession, 
+                watcher->iStatus, *sel );
+        watcher->SetOperation( op );
+
+        // make draft deletion synchronous so that empty drafts are not left after application close
+        if ( parentEntry.Id() == KMsvDraftEntryIdValue && count == 1 )
+            {
+            iWait.Start();
+            CleanupStack::PopAndDestroy( watcher );
+            }
+        else
+            {
+            iOperations.AppendL( watcher );
+            CleanupStack::Pop( watcher );
+            }
         }
-
+    
     CleanupStack::PopAndDestroy( sel );
     }
 
@@ -2177,14 +2238,37 @@
                             textBodyPart->FetchedContentSize() );
                     TPtr bPtr( body->Des() );
                     origMsgTextBodyPart->GetContentToBufferL( bPtr, 0 );
-                    HBufC* content = HBufC::NewLC(
-                            hPtr.Length() + bPtr.Length() );
-                    TPtr cPtr( content->Des() );                        
+                    TInt contentLength = hPtr.Length() + bPtr.Length() + 
+                            KLineFeed().Length();
+                    HBufC* signatureText = NULL;
+                    // if signature resolving leaves, ignore it, i.e., 
+                    // continue without signature adding
+                    TRAP_IGNORE( signatureText = 
+                            ResolveSignatureTextL( aMailBoxId ) );
+                    if ( signatureText ) 
+                        {
+                        CleanupStack::PushL( signatureText );
+                        contentLength += signatureText->Length() +
+                                KLineFeed().Length();
+                        }
+                    HBufC* content = HBufC::NewLC( contentLength );
+                    TPtr cPtr( content->Des() );
+                    if ( signatureText )
+                        {
+                        cPtr.Append( *signatureText );
+                        // extra empty line between signature and original txt
+                        cPtr.Append( KLineFeed );
+                        }
+                    cPtr.Append( KLineFeed );
                     cPtr.Append( hPtr );
                     cPtr.Append( bPtr );
                     textBodyPart->SetContent( cPtr );
                     textBodyPart->SaveL();
                     CleanupStack::PopAndDestroy( content );
+                    if ( signatureText )
+                        {
+                        CleanupStack::PopAndDestroy( signatureText );
+                        }
                     CleanupStack::PopAndDestroy( body );
                     CleanupStack::PopAndDestroy( origMsgTextBodyPart );
                     }
@@ -2196,6 +2280,25 @@
 
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
+HBufC* CIpsPlgSosBasePlugin::ResolveSignatureTextL( 
+        const TFSMailMsgId& aMailBoxId )
+    {
+    FUNC_LOG;
+    HBufC* signatureText = NULL;
+        
+    if ( iSettingsApi && iSession )
+        {
+        TMsvEntry entry;
+        TMsvId serv;
+        iSession->GetEntry( aMailBoxId.Id(), serv, entry );
+        signatureText = iSettingsApi->SignatureTextL( entry );
+        }
+
+    return signatureText;
+    }
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 void CIpsPlgSosBasePlugin::DisconnectL(
     const TFSMailMsgId& aMailBoxId,
     MFSMailRequestObserver& aObserver,
--- a/ipsservices/ipssossettings/bwins/ipssossettingsu.def	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/bwins/ipssossettingsu.def	Tue May 11 15:57:15 2010 +0300
@@ -71,4 +71,5 @@
 	?UpdateMode@CIpsSetDataExtension@@QBE?AW4TIpsSetDataAoUpdateModes@@XZ @ 70 NONAME ; enum TIpsSetDataAoUpdateModes CIpsSetDataExtension::UpdateMode(void) const
 	?NewLC@CIpsSetDataExtension@@SAPAV1@XZ @ 71 NONAME ; class CIpsSetDataExtension * CIpsSetDataExtension::NewLC(void)
 	?Protocol@CIpsSetDataExtension@@QBE?AVTUid@@XZ @ 72 NONAME ; class TUid CIpsSetDataExtension::Protocol(void) const
+	?SignatureTextL@CIpsSetDataApi@@QAEPAVHBufC16@@ABVTMsvEntry@@@Z @ 73 NONAME ; class HBufC16 * CIpsSetDataApi::SignatureTextL(class TMsvEntry const &)
 
--- a/ipsservices/ipssossettings/eabi/IPSSOSSETTINGSU.DEF	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/eabi/IPSSOSSETTINGSU.DEF	Tue May 11 15:57:15 2010 +0300
@@ -122,4 +122,5 @@
 	_ZTV27CIpsSetUiSubscriptionDialog @ 121 NONAME
 	_ZTV31CSubscriptionDialogActiveHelper @ 122 NONAME
 	_ZTV9CIpsSetUi @ 123 NONAME
+	_ZN14CIpsSetDataApi14SignatureTextLERK9TMsvEntry @ 124 NONAME
 
--- a/ipsservices/ipssossettings/inc/ipssetdataapi.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/inc/ipssetdataapi.h	Tue May 11 15:57:15 2010 +0300
@@ -167,6 +167,17 @@
             TMsvEntry& aService, 
             const TDesC& aMailboxName );
     
+    /**
+     * Returns pointer to descriptor containing signature text if signature
+     * has been set to be added to outgoing mails. Otherwise returns NULL
+     * pointer.
+     * Ownership of the descriptor is passed to the caller.
+     * @param aService Service entry for which signature text setting is 
+     * *               resolved.
+     * @return Pointer to descriptor containing the signature text.
+     */
+    IMPORT_C HBufC* SignatureTextL( const TMsvEntry& aService );
+    
 private:
 
     /**
--- a/ipsservices/ipssossettings/inc/ipssetuiitemaccesspoint.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/inc/ipssetuiitemaccesspoint.h	Tue May 11 15:57:15 2010 +0300
@@ -109,6 +109,13 @@
         * @return HBufC* Access point name
         */
         HBufC* AccessPointNameLC( TInt aIndex );
+        
+        /**
+         * Returns Wap index based on its Id.
+         *
+         * @return Index of the wap.
+         */
+         void InitializeSelectionL();        
     
     protected:  // Constructors
     
@@ -149,14 +156,7 @@
         * @param aBearerFilter Filter for supported bearers.
         */
         void InitializeL( const TInt aBearerFilter );
-         
-        /**
-        * Returns Wap index based on its Id.
-        *
-        * @return Index of the wap.
-        */
-        void InitializeSelectionL();
-         
+        
         /**
         * Returns Wap index based on its Id.
         *
--- a/ipsservices/ipssossettings/inc/ipssetutilsconsts.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/inc/ipssetutilsconsts.h	Tue May 11 15:57:15 2010 +0300
@@ -110,7 +110,8 @@
 
 // default values for ipssetdataextension
 //<cmail> cmail has different default value
-const TInt KIpsSetExtDefaultAlwaysOnlineState = EMailAoOff;
+//The default value for sync interval is 1 hour, so ao state should be always on.
+const TInt KIpsSetExtDefaultAlwaysOnlineState = EMailAoAlways;
 //</cmail>
 const TInt KIpsSetExtDefaultEmailNotificationState = EMailEmnOff;
 const TBool KIpsSetExtDefaultHideMsgs = EFalse;
--- a/ipsservices/ipssossettings/src/ipssetdataapi.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/src/ipssetdataapi.cpp	Tue May 11 15:57:15 2010 +0300
@@ -30,6 +30,7 @@
 #include <etel.h>                       // RTelServer
 #include <etelmm.h>                     // RMobilePhone
 #include <cemailaccounts.h>
+#include <txtrich.h>
 
 #include "ipssetdatastorer.h"
 #include "ipssetdata.h"
@@ -45,7 +46,7 @@
 #include "ipssetwizardadapter.h"
 
 #include "ipssetwizardsettingscenrepkeys.h" 
-
+#include "ipssetdatasignature.h"
 
 const TInt KIpsDataApiMaxPassLen = 256;
 const TInt KWizardDataPopIndicator = 0;
@@ -735,6 +736,31 @@
     
     CleanupStack::PopAndDestroy( 2, settingsData ); // dataManager
     }
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+EXPORT_C HBufC* CIpsSetDataApi::SignatureTextL( const TMsvEntry& aService )
+    {
+    FUNC_LOG;
+    HBufC* signatureText( NULL );
+    CIpsSetData* settingsData = CIpsSetData::NewLC();
+    CIpsSetDataManager* dataManager = CIpsSetDataManager::NewLC( iSession );
+    dataManager->LoadEmailSettingsL( aService, *settingsData );
+    // the IncludeSignature returns zero in case that inclusion is ON..
+    if ( !settingsData->IncludeSignature() )
+        {
+        CRichText* rText = settingsData->Signature().iRichText;
+        if ( rText )
+            {
+            signatureText = HBufC::NewL( KIpsSetUiMaxSettingsSignatureLength );
+            TPtr sPtr = signatureText->Des();
+            rText->Extract( sPtr, 0, KIpsSetUiMaxSettingsSignatureLength );
+            }
+        }
+    CleanupStack::PopAndDestroy( 2, settingsData ); // dataManager
+    return signatureText;
+    }
+
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 void CIpsSetDataApi::GetImapChildFoldersL(
--- a/ipsservices/ipssossettings/src/ipssetgwizardadapter.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/ipsservices/ipssossettings/src/ipssetgwizardadapter.cpp	Tue May 11 15:57:15 2010 +0300
@@ -26,6 +26,7 @@
 //</cmail>
 #include <centralrepository.h>      // CRepository
 #include <AlwaysOnlineManagerClient.h>
+#include <cmdestination.h> 
 
 #include "ipssetwizardadapter.h"
 #include "ipssetdatamanager.h"
@@ -414,7 +415,56 @@
     aSetData.SetUserAuthentication( CIpsSetData::EUseIncoming );
 
     iap = SetIAPByNameL( iRecomendedAP );
-    aSetData.SetIapL( iap, iap );
+    
+    TBool setIAP = ETrue;
+	//if IAP isn't set by SettingWizard, we try to get the SNAP.
+    if ( iap.iIAP <= 0 )
+        {
+        //Use SNAP when we got it and it does contain access point.
+        //For other situations as below, we set 'ask when need' or default IAP
+        //1. defConnValue.iType == ECmDefConnAskOnce
+        //2. Got SNAP, but it does not contain any acess point
+        //3. Got default IAP when defConnValue.iType == ECmDefConnConnectionMethod
+        iap.iDialogPref = ECommDbDialogPrefPrompt;
+        iap.iIAP = 0;		 
+
+        RCmManager cmmgr;
+        cmmgr.OpenLC();
+        TCmDefConnValue defConnValue;
+        cmmgr.ReadDefConnL( defConnValue );
+		//Check default connection is destination or connection method
+        if ( defConnValue.iType == ECmDefConnDestination )
+            {
+            //Get SNAP from cmmgr
+            RCmDestination destination;
+            CleanupClosePushL( destination );
+            destination = cmmgr.DestinationL( defConnValue.iId );
+			//check if SNAP has IAPs
+            if ( destination.ConnectionMethodCount() > 0 )
+                {
+                //if SNAP contain access point, we use SNAP
+                CImIAPPreferences* iapPref = CImIAPPreferences::NewLC();
+                iapPref->SetSNAPL( defConnValue.iId );
+              
+                aSetData.SetIapL( *iapPref, *iapPref );
+                CleanupStack::PopAndDestroy( iapPref );
+				 
+                setIAP = EFalse;
+                }
+                CleanupStack::PopAndDestroy( &destination );			 
+            }
+        else if( defConnValue.iType == ECmDefConnConnectionMethod ) 
+            {
+            iap.iDialogPref = ECommDbDialogPrefDoNotPrompt;
+            iap.iIAP = defConnValue.iId;
+            }
+        CleanupStack::PopAndDestroy( &cmmgr );
+        }
+		//If no valid IAP or destination, set zero.
+        if ( setIAP )
+            {
+            aSetData.SetIapL( iap, iap );		 		 
+            }
     // EIpsSetDataOutSecurityAuth
     // EIpsSetDataOutSecurityAuth
     }
@@ -517,6 +567,8 @@
     TImIAPChoice iap;
     TBuf<KWizardMaxUidValue> buf;
     CIpsSetUiItemAccessPoint* ipsSetAP = CIpsSetUiItemAccessPoint::NewLC();
+    //Initial IAP list
+    ipsSetAP->InitializeSelectionL();
     
     //<cmail>
     iapcount = ipsSetAP->iIapList.Count();
--- a/meetingrequest/mragnversit2/inc/esmrcleanuppointerarray.inl	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mragnversit2/inc/esmrcleanuppointerarray.inl	Tue May 11 15:57:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005 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"
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  A class for simplifying cleanup of RPointerArrays
-*     
+*
 *
 */
 
@@ -23,19 +23,19 @@
 @param aRef The RPointerArray to be cleaned up.
 @internalTechnology
 */
-template <class T>	
+template <class T>
 inline void TCleanupPointerArray<T>::PushL(T& aRef)
 	{
 	CleanupStack::PushL(TCleanupItem(&ResetAndDestroy, &aRef));
 	}
-	
+
 /**
 Takes a pointer to an RPointerArray and calls ResetAndDestroy on it.
 @param aPtr The RPointerArray
 @internalTechnology
 */
 template <class T>
-inline void TCleanupPointerArray<class T>::ResetAndDestroy(TAny* aPtr)
+inline void TCleanupPointerArray<T>::ResetAndDestroy(TAny* aPtr)
 	{
 	reinterpret_cast<T *>(aPtr)->ResetAndDestroy();
 	}
@@ -52,4 +52,4 @@
 	TCleanupPointerArray<T>::PushL(aRef);
 	}
 
-// End of file.
\ No newline at end of file
+// End of file.
--- a/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcplugincreatenewmrcmd.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcplugincreatenewmrcmd.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 
 #include "mmrbcplugincommand.h"
 #include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 
 class MCalenServices;
 class CESMRViewerController;
--- a/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginnewcaleventcommand.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginnewcaleventcommand.h	Tue May 11 15:57:15 2010 +0300
@@ -23,8 +23,8 @@
 
 #include <e32base.h>
 #include <calentry.h>
-#include <coneresloader.h>
-#include <magnentryui.h>
+#include <ConeResLoader.h>
+#include <MAgnEntryUi.h>
 
 class MCalenServices;
 class CESMRViewerController;
--- a/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginopenmrviewercmd.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/inc/cmrbcpluginopenmrviewercmd.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 
 #include "mmrbcplugincommand.h"
 #include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 
 class MCalenServices;
 class CESMRViewerController;
--- a/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincmdhandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincmdhandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
 #include "cmrbcpluginnewcaleventcommand.h"
 
 #include <calenservices.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <calencommands.hrh>
 #include <calenlauncher.h>
 #include "emailtrace.h"
--- a/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincreatenewmrcmd.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcplugincreatenewmrcmd.cpp	Tue May 11 15:57:15 2010 +0300
@@ -23,14 +23,14 @@
 
 #include <calenservices.h>
 #include <calencommands.hrh>
-#include <caleninterimutils2.h>
-#include <cmrviewers.h>
+#include <CalenInterimUtils2.h>
+#include <CMRViewers.h>
 #include <calentry.h>
 #include <caluser.h>
 #include <cmrmailboxutils.h>
 #include <ct/rcpointerarray.h>
 #include <aknlists.h>
-#include <aknpopup.h>
+#include <aknPopup.h>
 #include <utf.h>
 #include <bldvariant.hrh>
 
--- a/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginnewcaleventcommand.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginnewcaleventcommand.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,10 +29,10 @@
 #include <calentry.h>
 #include <eikappui.h>
 #include <eikcmobs.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 #include <calenservices.h>
-#include <aknglobalnote.h>
-#include <caleninterimutils2.h>
+#include <AknGlobalNote.h>
+#include <CalenInterimUtils2.h>
 #include <calencommandhandler.h>
 #include <bccaleventpolicies.rsg>
 #include <data_caging_path_literals.hrh>
--- a/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginopenmrviewercmd.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/bcmrevent/src/cmrbcpluginopenmrviewercmd.cpp	Tue May 11 15:57:15 2010 +0300
@@ -24,14 +24,14 @@
 
 #include <calenservices.h>
 #include <calencommands.hrh>
-#include <caleninterimutils2.h>
-#include <cmrviewers.h>
+#include <CalenInterimUtils2.h>
+#include <CMRViewers.h>
 #include <calentry.h>
 #include <caluser.h>
 #include <cmrmailboxutils.h>
 #include <ct/rcpointerarray.h>
 #include <aknlists.h>
-#include <aknpopup.h>
+#include <aknPopup.h>
 #include <utf.h>
 #include <calentryview.h>
 #include <calinstanceview.h>
@@ -92,7 +92,7 @@
     }
 }
 
-//TODO:- displace after nokia provide RIGHT CalenActionUiUtils::FindPossibleInstance
+
 CCalInstance* FindPossibleInstanceL(
         const TCalenInstanceId& aId, CCalInstanceView& aInstanceView )
         {
--- a/meetingrequest/mrbcplugin/group/mrbcplugin.mmp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/group/mrbcplugin.mmp	Tue May 11 15:57:15 2010 +0300
@@ -57,7 +57,7 @@
 LIBRARY                 eikcoctl.lib
 LIBRARY                 calinterimapi.lib
 LIBRARY                 caleninterimutils2.lib
-LIBRARY                 FeatDiscovery.lib
+LIBRARY                 featdiscovery.lib
 
 #if defined( ENABLE_TRACES ) && defined( TRACE_INTO_FILE )
 LIBRARY                 flogger.lib
--- a/meetingrequest/mrbcplugin/src/cmrbcplugin.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrbcplugin/src/cmrbcplugin.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,10 +29,10 @@
 #include <eikmenup.h>
 #include <bautils.h>
 #include <ecom/ecom.h>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
 #include <ct/rcpointerarray.h>
 #include <data_caging_path_literals.hrh>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <calencommands.hrh>
 #include <featdiscovery.h>
 #include <bldvariant.hrh>
@@ -150,7 +150,7 @@
                 }
             break;
             }
-            
+
         default:
             {
             enabled = EFalse;
@@ -482,7 +482,7 @@
         {
         CMRBCEventPlugin* eventPlugin = PluginByUidL(
                 TUid::Uid( KMRBCMREventPluginImplementationUID ) );
-        
+
         if ( eventPlugin )
             {
             cmdHandler = eventPlugin->CommandHandler();
@@ -494,7 +494,7 @@
         for ( TInt i(0); i < pluginCount && !cmdHandler; ++i )
             {
             TMRBCPluginCommand pluginCommand;
-    
+
             TInt err = iPluginResources[i]->Command( aCommand, pluginCommand );
             if ( KErrNone == err )
                 {
@@ -502,10 +502,10 @@
                 if ( pluginCommand.CheckEntryType() )
                     {
                     iEntryLoader->UpdateEntryFromDatabaseL();
-    
+
                     TBCPluginEventType eventType(
                             EventTypeL( *iServices, iEntryLoader->Entry() ) );
-    
+
                     if ( iPluginResources[i]->SupportsType( eventType)
                          && IsCommandSupportedForEntryTypeL( aCommand, eventType ) )
                         {
@@ -529,7 +529,7 @@
 CMRBCEventPlugin* CMRBCPlugin::PluginByUidL( TUid aUid )
     {
     CMRBCEventPlugin* plugin = NULL;
-    
+
     for ( TInt i = 0; i < iPluginResources.Count() && !plugin; ++i )
         {
         if ( iPluginResources[ i ]->PluginImplUid() == aUid )
@@ -537,7 +537,7 @@
             plugin = &( iPluginResources[ i ]->PluginL() );
             }
         }
-    
+
     return plugin;
     }
 
--- a/meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.h	Tue May 11 15:57:15 2010 +0300
@@ -79,7 +79,7 @@
         TUid iDtor_ID_Key;	
 	};
 
-#include <ccalremoteattachmentapi.inl>
+#include "ccalremoteattachmentapi.inl"
 	
 #endif // CCALREMOTEATTACHMENTAPI_H
 
--- a/meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.inl	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcalremoteattachment/api/inc/ccalremoteattachmentapi.inl	Tue May 11 15:57:15 2010 +0300
@@ -11,11 +11,11 @@
 *
 * Contributors:
 *
-* Description: 
+* Description:
 *
 */
 
-#include <calremoteattachmentapidefs.h>
+#include "calremoteattachmentapidefs.h"
 #include <ecom/ecom.h>
 
 // simple wrapper class with array deletion on close
@@ -37,19 +37,19 @@
         const TDesC8& aUri )
     {
     TAny* ptr( NULL );
-    
+
     RImplInfoPtrArrayCalRemoteAttachment implArray;
     CleanupClosePushL( implArray );
-    REComSession::ListImplementationsL( 
+    REComSession::ListImplementationsL(
             TUid::Uid( KCalRemoteAttachmentAPIInterface ),
             implArray );
-    
+
     TInt implCount( implArray.Count() );
     if ( !implCount )
         {
         User::Leave( KErrNotFound );
         }
-    
+
     for ( TInt i(0); i < implCount && !ptr; ++i )
         {
         TPtrC8 datatype( implArray[i]->DataType() );
@@ -59,10 +59,10 @@
             TUid implUid = implArray[i]->ImplementationUid();
             ptr = REComSession::CreateImplementationL( implUid,
                                                        keyOffset,
-                                                       NULL );        
+                                                       NULL );
             }
         }
-    
+
     User::LeaveIfNull( ptr );
     CleanupStack::PopAndDestroy( &implArray );
     return reinterpret_cast<CCalRemoteAttachmentApi*>(ptr);
--- a/meetingrequest/mrcalremoteattachment/api/inc/mcalremoteattachmentinfo.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcalremoteattachment/api/inc/mcalremoteattachmentinfo.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define MCALREMOTEATTACHMENTINFO_H
 
 #include <e32base.h>
-#include <mcalremoteattachment.h>
+#include "mcalremoteattachment.h"
 
 /**
  * MCalRemoteAttachmentInfo encapsulates calendar entry attachment information.
--- a/meetingrequest/mrcalremoteattachment/remoteattachment/inc/ccalremoteattachmentinfo.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcalremoteattachment/remoteattachment/inc/ccalremoteattachmentinfo.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define CCALREMOTEATTACHMENTINFO_H
 
 #include <e32base.h>
-#include <mcalremoteattachmentinfo.h>
+#include "mcalremoteattachmentinfo.h"
 
 class CCalRemoteAttachment;
 
--- a/meetingrequest/mrcasplugin/inc/cesmrcaspluginimpl.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/inc/cesmrcaspluginimpl.h	Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
 #include "cfsccontactactionplugin.h"
 #include "mfscreasoncallback.h"
 #include "cesmrcascontactaction.h"
-#include <cagnentryui.h>
+#include <CAgnEntryUi.h>
 #include <calsession.h>
 #include "mfsccontactsetobserver.h"
 //</cmail>
--- a/meetingrequest/mrcasplugin/inc/cesmrcaspluginuilauncher.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/inc/cesmrcaspluginuilauncher.h	Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
 #define CESMRCASPLUGINUILAUNCHER_H
 
 #include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 #include <badesca.h>
 
 class CCalSession;
--- a/meetingrequest/mrcasplugin/src/cesmrcascontactaction.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/src/cesmrcascontactaction.cpp	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
 
 #include "emailtrace.h"
 #include "cesmrcascontactaction.h"
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <gulicon.h>
 
 // ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrcasplugin/src/cesmrcasplugincontactretriever.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/src/cesmrcasplugincontactretriever.cpp	Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
  *  Description : Implementation of the class CESMRCasPluginImpl.
- *  Version     : %version: e002sa33#6 % << Don't touch! Updated by Synergy at check-out.
+ *  Version     : %version: e002sa32#6.1.1 % << Don't touch! Updated by Synergy at check-out.
  *
  */
 
@@ -27,7 +27,7 @@
 #include <esmrcasplugin.mbg>
 #include <caluser.h>
 
-#include <mvpbkstorecontact.h>
+#include <MVPbkStoreContact.h>
 #include <data_caging_path_literals.hrh>
 #include <badesca.h>
 
@@ -39,10 +39,10 @@
 #include "mfsccontactsetobserver.h"
 #include "tfsccontactactionpluginparams.h"
 //</cmail>
-#include <mvpbkstorecontactfield.h>
-#include <mvpbkfieldtype.h>
-#include <tvpbkfieldversitproperty.h>
-#include <vpbkfieldtype.hrh>
+#include <MVPbkStoreContactField.h>
+#include <MVPbkFieldType.h>
+#include <TVPbkFieldVersitProperty.h>
+#include <VPbkFieldType.hrh>
 
 // Unnamed namespace for local definitions
 namespace { // codescanner::namespace
--- a/meetingrequest/mrcasplugin/src/cesmrcaspluginimpl.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/src/cesmrcaspluginimpl.cpp	Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
  *  Description : Implementation of the class CESMRCasPluginImpl.
- *  Version     : %version: e002sa33#9 % << Don't touch! Updated by Synergy at check-out.
+ *  Version     : %version: e002sa32#9.1.1 % << Don't touch! Updated by Synergy at check-out.
  *
  */
 
@@ -27,17 +27,17 @@
 #include <esmrcasplugindata.rsg>
 #include <esmrcasplugin.mbg>
 
-#include <mvpbkstorecontact.h>
+#include <MVPbkStoreContact.h>
 #include <data_caging_path_literals.hrh>
 #include <coemain.h>
 #include <calsession.h>
 #include <cmrmailboxutils.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <badesca.h>
 
 #include <ecom/implementationproxy.h>
-#include <stringloader.h>
-#include <akniconutils.h>
+#include <StringLoader.h>
+#include <AknIconUtils.h>
 #include <bautils.h>
 //<cmail>
 #include "mfscactionutils.h"
--- a/meetingrequest/mrcasplugin/src/cesmrcaspluginuilauncher.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcasplugin/src/cesmrcaspluginuilauncher.cpp	Tue May 11 15:57:15 2010 +0300
@@ -25,22 +25,22 @@
 #include <badesca.h>
 //<cmail>
 #include "tfsccontactactionpluginparams.h"
-#include <mvpbkstorecontact.h>
-#include <caleninterimutils2.h>
+#include <MVPbkStoreContact.h>
+#include <CalenInterimUtils2.h>
 #include <cmrmailboxutils.h>
 #include <calsession.h>
 #include <calentry.h>
-#include <cagnentryui.h>
+#include <CAgnEntryUi.h>
 #include <caluser.h>
 #include "mfscactionutils.h"
 //</cmail>
-#include <aknpopup.h>
+#include <aknPopup.h>
 #include <aknlists.h>
 #include <utf.h>
 #include <ecom/ecom.h>
 #include "esmrcommands.h"
 #include <esmrcasplugindata.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <aknnotewrappers.h>
 
 
--- a/meetingrequest/mrcmailremoteattachmentplugin/group/mrcmailremoteattachmentplugin.mmp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcmailremoteattachmentplugin/group/mrcmailremoteattachmentplugin.mmp	Tue May 11 15:57:15 2010 +0300
@@ -41,9 +41,6 @@
 USERINCLUDE             ../../../inc
 
 APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE           /epoc32/include/ecom    //TODO: Remove when Cmail headers are fixed
-
-
 
 SOURCEPATH              ../data/
 START RESOURCE          mrcmailremoteattachmentplugin.rss
--- a/meetingrequest/mrcommon/inc/esmrentryhelper.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcommon/inc/esmrentryhelper.h	Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
 
 #include "esmrdef.h"
 #include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 
 class CCalEntry;
 class CCalAttendee;
--- a/meetingrequest/mrcommon/src/esmrentryhelper.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcommon/src/esmrentryhelper.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,9 +29,9 @@
 #include <calrrule.h>
 #include <caluser.h>
 #include <msvids.h>
-#include <msgmailuids.h>
+#include <MsgMailUIDs.h>
 #include <cmrmailboxutils.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 
 // unnamed naespace for local definitions
 namespace { // codescanner::namespace
--- a/meetingrequest/mrcommon/src/esmrhelper.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcommon/src/esmrhelper.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,8 +29,8 @@
 #include <bautils.h>
 #include <coemain.h>
 #include <msvids.h>
-#include <senduiconsts.h>
-#include <caleninterimutils2.h>
+#include <SendUiConsts.h>
+#include <CalenInterimUtils2.h>
 #include <calalarm.h>
 #include <calrrule.h>
 #include <calattachment.h>
@@ -39,8 +39,8 @@
 #include <ct/rcpointerarray.h>
 #include <utf.h>
 #include <aknlists.h>
-#include <aknpopup.h>
-#include <calendarinternalcrkeys.h>
+#include <aknPopup.h>
+#include <CalendarInternalCRKeys.h>
 #include <data_caging_path_literals.hrh>
 //<cmail> hardcoded paths removal
 #include <pathinfo.h>
@@ -1553,8 +1553,6 @@
             }
         case CCalEntry::ETodo:
             {
-            // Todo has only due date => Adding date from that,
-            // Hour, minute and second as default values
             tempStart = aSourceEntry.StartTimeL().TimeLocalL().DateTime();
             tempStart.SetHour( KDefaultMeetingStartHour );
             tempStart.SetMinute( 0 );
--- a/meetingrequest/mrcommon/src/nmrglobalfeaturesettings.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrcommon/src/nmrglobalfeaturesettings.cpp	Tue May 11 15:57:15 2010 +0300
@@ -17,7 +17,7 @@
 
 #include "nmrglobalfeaturesettings.h"
 
-#include <avkoninternalcrkeys.h>
+#include <AvkonInternalCRKeys.h>
 #include <centralrepository.h>
 
 using namespace NMRGlobalFeatureSettings;
--- a/meetingrequest/mrdb/inc/cesmrentrycmditeratorao.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrdb/inc/cesmrentrycmditeratorao.h	Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
 
 //  INCLUDE FILES
 #include <e32base.h>
-#include <cmrutils.h>
+#include <CMRUtils.h>
 
 // FORWARD DECLARATIONS
 class MESMRCalDbMgr;
--- a/meetingrequest/mrdb/src/cesmrcaldbmgr.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrdb/src/cesmrcaldbmgr.cpp	Tue May 11 15:57:15 2010 +0300
@@ -36,9 +36,9 @@
 #include <calentry.h>
 #include <calcommon.h>
 #include <caluser.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <sysutil.h>
-#include <errorui.h>
+#include <ErrorUI.h>
 #include <coemain.h>
 #include <calcalendarinfo.h>
 #include <centralrepository.h>
--- a/meetingrequest/mrgui/data/esmrgui.rss	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/data/esmrgui.rss	Tue May 11 15:57:15 2010 +0300
@@ -22,9 +22,9 @@
 #include <avkon.rh>
 #include <avkon.rsg>
 #include <avkon.loc>
-#include <aiwcommon.rh>
-#include <aiwgenericparam.hrh>
-#include <aiwcommon.hrh> // for service commands
+#include <AiwCommon.rh>
+#include <AiwGenericParam.hrh>
+#include <AiwCommon.hrh> // for service commands
 
 #include <esmrgui.mbg>
 #include <mrui.loc>
--- a/meetingrequest/mrgui/data/mrguiattachmentresources.rss	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/data/mrguiattachmentresources.rss	Tue May 11 15:57:15 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 #include <avkon.loc>
-#include <commondialogs.rh>
+#include <CommonDialogs.rh>
 
 RESOURCE AVKON_LIST_QUERY r_attachment_type_query_dialog
 	{
@@ -33,7 +33,6 @@
 						AVKON_LIST_QUERY_LIST
 							{
 							};
-					// TODO: loc string
 					heading = "Select Option";
 				};
 			}
@@ -183,11 +182,11 @@
     }
 RESOURCE TBUF r_meet_req_attachment_file_kilobyte
     {
-    buf = qtn_meet_req_note_attachment_progress_kilobyte; // TODO: qtn_meet_req_attachment_file_kilobyte;
+    buf = qtn_meet_req_attachment_file_kilobyte;
     }
 RESOURCE TBUF r_meet_req_attachment_file_megabyte
     {
-    buf = qtn_meet_req_note_attachment_progress_megabyte; //TODO: qtn_meet_req_attachment_file_megabyte;
+    buf = qtn_meet_req_attachment_file_megabyte;
     }
 RESOURCE TBUF r_qtn_meet_req_info_already_attached
     {
@@ -223,7 +222,7 @@
  */
 RESOURCE TBUF r_qtn_meet_req_attachments_download_prefix
     {
-    buf = "#%0N% %1U"; //TODO: qtn_meet_req_attachments_download_prefix;
+    buf = qtn_meet_req_attachments_download_prefix;
     }
 RESOURCE TBUF r_meet_req_info_cannot_open_attachment
     {
--- a/meetingrequest/mrgui/group/esmrgui.mmp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/group/esmrgui.mmp	Tue May 11 15:57:15 2010 +0300
@@ -146,7 +146,7 @@
 LIBRARY commonui.lib
 LIBRARY npdlib.lib
 LIBRARY lbs.lib
-LIBRARY FeatDiscovery.lib
+LIBRARY featdiscovery.lib
 LIBRARY gdi.lib
 
 #ifdef RD_USE_MYLOCATIONUI
--- a/meetingrequest/mrgui/inc/cesmraddressinfohandler.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmraddressinfohandler.h	Tue May 11 15:57:15 2010 +0300
@@ -22,8 +22,8 @@
 
 // Includes
 #include <e32base.h>
-#include <mvpbksinglecontactoperationobserver.h>
-#include <aiwcommon.h>
+#include <MVPbkSingleContactOperationObserver.h>
+#include <AiwCommon.h>
 
 #include "resmrstatic.h"
 #include "cesmrcontactmanagerhandler.h"
--- a/meetingrequest/mrgui/inc/cesmreditordialog.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmreditordialog.h	Tue May 11 15:57:15 2010 +0300
@@ -18,9 +18,9 @@
 #ifndef CESMREDITORDIALOG_H
 #define CESMREDITORDIALOG_H
 
-#include <akndialog.h>
+#include <AknDialog.h>
 #include <akntoolbarobserver.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include "mesmruibase.h"
 #include "mesmrresponseobserver.h"
 #include "mesmrfieldeventobserver.h"
@@ -263,7 +263,6 @@
      * Indicates if location has been modified.
      */
     TBool iLocationModified;
-    // TODO: Take this into use when implementing the toolbar
     /// Own: Toolbar handler
     CMRToolbar* iToolbar;
     
--- a/meetingrequest/mrgui/inc/cesmrresponsedialog.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmrresponsedialog.h	Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
 #define CESMRRESPONSEDIALOG_H
 
 // INCLUDES
-#include <akndialog.h>
+#include <AknDialog.h>
 
 // FORWARD DECLARATIONS
 class CAknsBasicBackgroundControlContext;
--- a/meetingrequest/mrgui/inc/cesmrtrackingviewdialog.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmrtrackingviewdialog.h	Tue May 11 15:57:15 2010 +0300
@@ -12,14 +12,14 @@
 * Contributors:
 *
 *  Description : ESMR tracking viewe dialog
-*  Version     : %version: e002sa33#7 %
+*  Version     : %version: e002sa32#7.1.1 %
 *
 */
 #ifndef CESMRTRACKINGVIEWDIALOG_H
 #define CESMRTRACKINGVIEWDIALOG_H
 
 // SYSTEM INCLUDE
-#include <akndialog.h>
+#include <AknDialog.h>
 #include <caluser.h>
 //#include <aknlists.h> 
 
--- a/meetingrequest/mrgui/inc/cesmrview.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmrview.h	Tue May 11 15:57:15 2010 +0300
@@ -184,11 +184,6 @@
                 TInt aResourceId,
                 CEikMenuPane* aMenuPane );
         
-        /*
-         * Relayouts view by calling size changed.
-         */
-        void ReLayout();
-    
         /**
          * Processes event.
          * @param aEvent Reference to event to be processed
@@ -255,6 +250,7 @@
         void LaunchHelpL( const TDesC& aContext );
         void SetTitlePaneObserver();
         TRect CalculateAttachmentIndicatorLayout();
+        TRect ContainerRect() const;
         
     private: // data
         
--- a/meetingrequest/mrgui/inc/cesmrviewerdialog.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cesmrviewerdialog.h	Tue May 11 15:57:15 2010 +0300
@@ -17,9 +17,9 @@
 #ifndef CESMRVIEWERDIALOG_H
 #define CESMRVIEWERDIALOG_H
 
-#include <akndialog.h>
+#include <AknDialog.h>
 #include <akntoolbarobserver.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include "mesmruibase.h"
 #include "mesmrresponseobserver.h"
 #include "resmrstatic.h"
--- a/meetingrequest/mrgui/inc/cmrlistpane.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/inc/cmrlistpane.h	Tue May 11 15:57:15 2010 +0300
@@ -38,7 +38,7 @@
 class MTouchFeedback;
 
 // CLASS DECLARATIONS
-NONSHARABLE_CLASS( CMRListPane ) : 
+NONSHARABLE_CLASS( CMRListPane ) :
         public CCoeControl,
         public MAknLongTapDetectorCallBack,
         public MMRPhysicsObserver,
@@ -47,26 +47,26 @@
     public: // Creation and destruction
         /**
          * Static constructor.
-         * 
+         *
          * @return New instance of this class
          */
         static CMRListPane* NewL( const CCoeControl& aParent,
                                   MESMRFieldStorage& aFactory,
-                                  TAknDoubleSpanScrollBarModel& aScrollModel, 
-                                  CAknDoubleSpanScrollBar& aScroll, 
+                                  TAknDoubleSpanScrollBarModel& aScrollModel,
+                                  CAknDoubleSpanScrollBar& aScroll,
                                   MMRScrollBarObserver& aScrollBarObserver );
         /**
          * Destructor
          */
         ~CMRListPane();
-        
+
     public: // Interface
 
         /**
          * Initializes all fields. Needed when theme changes
          */
         void InitializeL();
-        
+
         /**
          * InternalizeL is used to obtain the data from current CCalEntry.
          * CCalEntry is wrapped inside MESMRCalEntry object. This call is
@@ -86,7 +86,7 @@
          * @see MESMRCalEntry
          */
         void ExternalizeL( MESMRCalEntry& aEntry, TBool aForceValidation = EFalse );
-           
+
         /**
          * Disables or enables relayouting.
          *
@@ -98,57 +98,57 @@
           * Scroll the list to put the responeArea at the top and
           * set the focus on it
           */
-         void InitialScrollL(); // TODO: Fix me. 
-         
+         void InitialScrollL();
+
         /**
          * Return focused field.
          * @return Focused list item or NULL if no focused item
          */
         CESMRField* FocusedField() const;
-        
+
         /**
          * Sets the field focused based on the given field id.
          * @param aFieldId Id of the field to be focused
          */
         void SetControlFocusedL( TESMREntryFieldId aFieldId );
-        
+
         /**
          * Return clicked list item.
          * @return Clicked list item or NULL if no valid clicked item
          */
         CESMRField* ClickedField() const;
-               
+
         /**
          * Sets field to be visible in the list.
          *
          * @param aField - id of the field.
          */
         void ShowControl( TESMREntryFieldId aFieldId );
-        
+
         /**
          * Is field visible or not.
          *
          * @return Boolean ETrue/EFalse
          */
         TBool IsControlVisible( TESMREntryFieldId aFieldId );
-                
+
         /**
          * Get response field type of current event.
          * @Return TESMREntryFieldId
          */
         TESMREntryFieldId GetResponseFieldsFieldId();
-        
+
         /**
          * Activates new fields which has been added into the storage
          * after list pane construction.
          */
         void ReActivateL();
-        
+
     public: // MMRFieldContainerObserver
         void ScrollFieldsUp( TInt aPx );
         void ScrollFieldsDown( TInt aPx );
         void UpdateScrollBarAndPhysics();
-        
+
     public: // From CCoeControl
         TKeyResponse OfferKeyEventL( const TKeyEvent &aKeyEvent,
                                      TEventCode aType );
@@ -159,32 +159,32 @@
         CCoeControl* ComponentControl( TInt aIndex) const;
         void HandlePointerEventL( const TPointerEvent &aPointerEvent );
         void ActivateL();
-        
+
     private: // From MMRPhysicsObserver
         void PhysicsEmulationEnded();
         void UpdateScrollBarDuringOngoingPhysics();
-        
+
     private: // From MAknLongTapDetectorCallBack
         void HandleLongTapEventL(
-                const TPoint& aPenEventLocation, 
+                const TPoint& aPenEventLocation,
                 const TPoint& aPenEventScreenLocation );
-    
+
     private: // Implementation
         CMRListPane( MESMRFieldStorage& aFactory,
-                     TAknDoubleSpanScrollBarModel& aScrollModel, 
-                     CAknDoubleSpanScrollBar& aScroll, 
+                     TAknDoubleSpanScrollBarModel& aScrollModel,
+                     CAknDoubleSpanScrollBar& aScroll,
                      MMRScrollBarObserver& aScrollBarObserver );
         void ConstructL( const CCoeControl& aParent );
         void DoUpdateScrollBar( TInt aFocusPosition = KErrNotFound );
         TInt UpdatedFocusPosition();
-        void SetFocusAfterPointerEventL( 
+        void SetFocusAfterPointerEventL(
                 const TPointerEvent &aPointerEvent );
         void UpdateClickedField( const TPointerEvent &aPointerEvent );
         TBool HiddenFocus();
         void ForwardReceivedPointerEventsToChildrenL();
         void HandleTactileFeedback( const TTouchLogicalFeedback& aType );
         TBool FeedbackScrollMarginExceeded( TInt aMargin );
-        
+
     private: // Data
         /// Ref: Storage for list items.
         MESMRFieldStorage& iFactory;
@@ -200,16 +200,16 @@
         CMRListPanePhysics* iPhysics;
         /// Ref: Observer for updating scroll bar revents
         MMRScrollBarObserver& iScrollBarObserver;
-        /// Not owned: A field which got a pointer down event, 
+        /// Not owned: A field which got a pointer down event,
         /// nulled when focus is changed via keyboard
         CESMRField* iClickedField;
         /// Own: Boolean for disabling SizeChanged handling
         TBool iDisableSizeChanged;
         /// Own: Boolean to check, if physics action is ongoing or not
         TBool iPhysicsActionOngoing;
-        /// Own: Record if the long tapping event have been comsumed, if yes, 
+        /// Own: Record if the long tapping event have been comsumed, if yes,
         /// then do not handle signal pointer event anymore.
-        TBool iLongTapEventConsumed;
+        TBool iLongTapEventInProgess;
         /// Ref: Reference to tactile feedback
         MTouchFeedback* iTactileFeedback;
         /// Own: This records vertical scroll index for tactile feedback
@@ -217,6 +217,6 @@
         /// Own: This records default field height for tactile feedback during scroll
         TInt iDefaultFieldHeight;
     };
-    
+
 #endif // CMRLISTPANE_H
 // End of file
--- a/meetingrequest/mrgui/loc/mrui.loc	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/loc/mrui.loc	Tue May 11 15:57:15 2010 +0300
@@ -1246,7 +1246,7 @@
 // l: fscal_editor_field_text_2
 // r: TB9.2
 //
-#define qtn_meet_req_attachment_file_less_than_kilobyte "%0U (< 1 kB)"
+#define qtn_meet_req_attachment_file_less_than_kilobyte "%0U (Max. 1 kB)"
 
 // d: Heading text for forwarding this occurence or series list popup query
 // l: heading_pane_t1
--- a/meetingrequest/mrgui/mrfieldbuildercommon/bwins/esmrfieldbuildercommonu.def	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/bwins/esmrfieldbuildercommonu.def	Tue May 11 15:57:15 2010 +0300
@@ -14,7 +14,7 @@
 	?GetSelectedLink@CESMRRichTextViewer@@QBEPBVCESMRRichTextLink@@XZ @ 13 NONAME ; class CESMRRichTextLink const * CESMRRichTextViewer::GetSelectedLink(void) const
 	?FieldViewMode@CESMRField@@QBE?AW4TESMRFieldType@@XZ @ 14 NONAME ; enum TESMRFieldType CESMRField::FieldViewMode(void) const
 	?FocusChanged@CESMRRichTextViewer@@UAEXW4TDrawNow@@@Z @ 15 NONAME ; void CESMRRichTextViewer::FocusChanged(enum TDrawNow)
-	?HandlePointerEventL@CESMRField@@EAEXABUTPointerEvent@@@Z @ 16 NONAME ; void CESMRField::HandlePointerEventL(struct TPointerEvent const &)
+	?HandlePointerEventL@CESMRField@@MAEXABUTPointerEvent@@@Z @ 16 NONAME ; void CESMRField::HandlePointerEventL(struct TPointerEvent const &)
 	??1CESMREditor@@UAE@XZ @ 17 NONAME ; CESMREditor::~CESMREditor(void)
 	?NewL@CESMRRichTextViewer@@SAPAV1@PBVCCoeControl@@@Z @ 18 NONAME ; class CESMRRichTextViewer * CESMRRichTextViewer::NewL(class CCoeControl const *)
 	?SetListObserver@CESMRField@@UAEXPAVMESMRListObserver@@@Z @ 19 NONAME ; void CESMRField::SetListObserver(class MESMRListObserver *)
@@ -117,4 +117,6 @@
 	?GetLimitLength@CESMREditor@@QBEHXZ @ 116 NONAME ; int CESMREditor::GetLimitLength(void) const
 	?SetFieldMode@CESMRField@@QAEXW4TESMRFieldMode@@@Z @ 117 NONAME ; void CESMRField::SetFieldMode(enum TESMRFieldMode)
 	?ResetActionMenuL@CESMRRichTextViewer@@QBEXXZ @ 118 NONAME ; void CESMRRichTextViewer::ResetActionMenuL(void) const
+	?SupportsLongTapFunctionalityL@CESMRField@@UAEHABUTPointerEvent@@@Z @ 119 NONAME ; int CESMRField::SupportsLongTapFunctionalityL(struct TPointerEvent const &)
+	?PointerEventOccuresOnALinkL@CESMRRichTextViewer@@QAEHABUTPointerEvent@@@Z @ 120 NONAME ; int CESMRRichTextViewer::PointerEventOccuresOnALinkL(struct TPointerEvent const &)
 
--- a/meetingrequest/mrgui/mrfieldbuildercommon/eabi/esmrfieldbuildercommonu.def	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/eabi/esmrfieldbuildercommonu.def	Tue May 11 15:57:15 2010 +0300
@@ -147,4 +147,5 @@
 	_ZThn8_N15CMRAttachmentUiD1Ev @ 146 NONAME
 	_ZN19CESMRRichTextViewer12SetFocusLinkEi @ 147 NONAME
 	_ZNK19CESMRRichTextViewer12GetFocusLinkEv @ 148 NONAME
-
+	_ZN10CESMRField29SupportsLongTapFunctionalityLERK13TPointerEvent @ 149 NONAME
+	_ZN19CESMRRichTextViewer27PointerEventOccuresOnALinkLERK13TPointerEvent @ 150 NONAME
--- a/meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrfield.h	Tue May 11 15:57:15 2010 +0300
@@ -297,20 +297,20 @@
       * Tests if field control has been activated.
       */
      IMPORT_C TBool IsFieldActivated() const;
-     
+
      /**
       * Provides possibility for field to dynamically
       * intialize context menu.
-      * 
+      *
       * @param aResourceId Context menu resource ID
       * @param aMenuPane Pointer to menu pane
       */
      IMPORT_C virtual void DynInitMenuPaneL(
              TInt aResourceId,
              CEikMenuPane* aMenuPane );
-     
+
      /**
-      * Setter for field view mode. Enumeration TESMRFieldType 
+      * Setter for field view mode. Enumeration TESMRFieldType
       * lists possible view modes.
       * @param aViewMode View mode of the field
       */
@@ -321,25 +321,33 @@
       * @return Field view mode
       */
      IMPORT_C TESMRFieldType FieldViewMode() const;
-     
+
      /**
       * Updates field extension control and takes ownership
       * @param aControl Pointer to extension control.
       */
      IMPORT_C void UpdateExtControlL(
                   CCoeControl* aControl );
-     
+
      /**
-      * Set field as locked field(can't be deleted or edited) 
+      * Set field as locked field(can't be deleted or edited)
       */
      IMPORT_C void virtual LockL();
-     
+
      /**
       * Get lock status of the field
-      * @return ETrue shows field locked EFalse shows field not locked 
+      * @return ETrue shows field locked EFalse shows field not locked
       */
      IMPORT_C TBool IsLocked();
 
+     /**
+      * Finds out if field supports longtap functionality or not
+      * @param aPointerEvent, where the event actually occured
+      * @return ETrue if field supports longtap functionality
+      */
+     IMPORT_C virtual TBool SupportsLongTapFunctionalityL(
+    		 const TPointerEvent &aPointerEvent );
+
 protected:
 
     /**
@@ -416,7 +424,7 @@
     IMPORT_C virtual CCoeControl* ComponentControl( TInt aInd ) const;
     IMPORT_C virtual TSize MinimumSize();
 
-private: // From base class CCoeControl
+protected: // From base class CCoeControl
 
     /**
      *  Implements pointer event handling for fields.
@@ -447,13 +455,13 @@
      * Returns the event observer interface
      */
     IMPORT_C MESMRFieldEventObserver* EventObserver() const;
-    
+
     /**
      * Initiates tactile feedback when called
      */
     IMPORT_C void HandleTactileFeedbackL();
-    
-    
+
+
 private:
     void AquireTactileFeedback();
 
--- a/meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrrichtextviewer.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/inc/cesmrrichtextviewer.h	Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 *  Description : CEikRichTextEditor based Rich Text viewer
-*  Version     : %version: e002sa32#19 %
+*  Version     : %version: e002sa32#19.1.1 %
 *
 */
 
@@ -217,7 +217,7 @@
      * Applies the layout changes to the rich text component.
      */
     IMPORT_C void ApplyLayoutChangesL();
-    
+
     /*
      * Set selected link according to the index in the array.
      * @param aLinkIndex the index of link need to be selected.
@@ -230,6 +230,13 @@
      */
     IMPORT_C TInt GetFocusLink( ) const;
 
+    /*
+     * Finds out if given pointer event occured on a link
+     * @param aPointerEvent, the event to which the possible link areas are compared to
+     * @return TBool, ETrue if pointer event occured on a link
+     */
+    IMPORT_C TBool PointerEventOccuresOnALinkL( const TPointerEvent &aPointerEvent );
+
 protected: // From MEikCommandObserver
 
     /**
--- a/meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentprogressinfo.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentprogressinfo.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define CMRATTACHMENTPROGRESSINFO_H
 
 // INCLUDES
-#include <aknprogressdialog.h>
+#include <AknProgressDialog.h>
 #include <f32file.h>
 
 #include "cmrfilemanager.h"
--- a/meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentui.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/inc/cmrattachmentui.h	Tue May 11 15:57:15 2010 +0300
@@ -21,10 +21,10 @@
 // INCLUDES
 #include <e32base.h>
 #include <f32file.h> // RFs
-#include <mediafiletypes.hrh> // TMediaFileType
-#include <aknprogressdialog.h> // MProgressDialogCallback
-#include <mmgfetchverifier.h>
-#include <maknfileselectionobserver.h>
+#include <MediaFileTypes.hrh> // TMediaFileType
+#include <AknProgressDialog.h> // MProgressDialogCallback
+#include <MMGFetchVerifier.h>
+#include <MAknFileSelectionObserver.h>
 
 // FORWARD DECLARATIONS
 class MESMRCalEntry;
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -30,8 +30,8 @@
 #include <eikenv.h>
 #include <baclipb.h>
 #include <eikbtgpc.h>
-#include <stringloader.h>
-#include <aknutils.h>
+#include <StringLoader.h>
+#include <AknUtils.h>
 #include <touchfeedback.h>
 
 // ======== MEMBER FUNCTIONS ========
@@ -77,8 +77,6 @@
     FUNC_LOG;
     iExtControl = aControl;
 
-    // TODO: This should be made in ConstructL instead as soon we
-    //       get rid of old CESMRLayoutManager.
     iBackground = CMRBackground::NewL();
     this->SetBackground( iBackground );
     }
@@ -825,6 +823,7 @@
 //
 EXPORT_C void CESMRField::LockL()
 	{
+    FUNC_LOG;
 	iLocked = ETrue;
 	}
 
@@ -834,9 +833,21 @@
 //
 EXPORT_C TBool CESMRField::IsLocked()
 	{
+    FUNC_LOG;
 	return iLocked;
 	}
 
+// ---------------------------------------------------------------------------
+// CESMRField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CESMRField::SupportsLongTapFunctionalityL(
+		const TPointerEvent &aPointerEvent )
+	{
+    FUNC_LOG;
+    // Subclasses may override for field specific actions
+	return EFalse;
+	}
 
 // ---------------------------------------------------------------------------
 // CESMRField::HandleTactileFeedbackL
@@ -847,7 +858,7 @@
     FUNC_LOG;
 
     AquireTactileFeedback();
-    
+
     if ( iTactileFeedback && iTactileFeedback->FeedbackEnabledForThisApp() )
         {
         iTactileFeedback->InstantFeedback( ETouchFeedbackBasic );
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrrichtextviewer.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cesmrrichtextviewer.cpp	Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 *  Description : CEikRichTextEditor based Rich Text viewer
-*  Version     : %version: e002sa33#40 %
+*  Version     : %version: e002sa32#41 %
 *
 */
 
@@ -720,7 +720,7 @@
         {
         return linkIndex;
         }
-    
+
     TCursorSelection currentSelection = Selection();
 
     for ( TInt i = 0; i < iLinkList.Count(); ++i )
@@ -743,6 +743,40 @@
     }
 
 // -----------------------------------------------------------------------------
+// CESMRRichTextViewer::PointerEventOccuresOnALinkL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CESMRRichTextViewer::PointerEventOccuresOnALinkL(
+		const TPointerEvent &aPointerEvent )
+    {
+    FUNC_LOG;
+    TBool ret( EFalse );
+
+    RRegion linkArea;
+    CleanupClosePushL( linkArea );
+
+    // Find matching link
+    TInt count( iLinkList.Count() );
+
+    for ( TInt i = 0; i < count; ++i )
+        {
+        CESMRRichTextLink* link = iLinkList[ i ];
+        GetLinkAreaL( linkArea, *link );
+
+        if ( linkArea.Contains( aPointerEvent.iPosition ) )
+            {
+            ret = ETrue;
+            break;
+            }
+        }
+
+    CleanupStack::PopAndDestroy( &linkArea );
+
+    return ret;
+    }
+
+
+// -----------------------------------------------------------------------------
 // CESMRRichTextViewer::CESMRRichTextViewer
 // -----------------------------------------------------------------------------
 //
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentprogressinfo.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentprogressinfo.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,8 +19,8 @@
 
 #include <esmrgui.rsg>
 #include <eikprogi.h>
-#include <aknwaitdialog.h> 
-#include <stringloader.h>
+#include <AknWaitDialog.h> 
+#include <StringLoader.h>
 
 // Unnamed namespace for local definitions
 namespace { // codescanner::namespace
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentui.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrattachmentui.cpp	Tue May 11 15:57:15 2010 +0300
@@ -23,20 +23,20 @@
 #include "cesmrglobalnote.h"
 #include "esmrhelper.h"
 
-#include <mgfetch.h>
+#include <MGFetch.h>
 #include <aknlistquerydialog.h>
 #include <sysutil.h>
 #include <calattachment.h>
-#include <npdapi.h>
-#include <akncommondialogsdynmem.h>
+#include <NpdApi.h>
+#include <AknCommonDialogsDynMem.h>
 #include <apparc.h>
 #include <esmrgui.rsg>
 #include <apgcli.h>
 #include <apmrec.h>
-#include <commoncontentpolicy.h>
+#include <CommonContentPolicy.h>
 #include <ct/rcpointerarray.h>
 #include <aknnotewrappers.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 
 #include "emailtrace.h"
 
@@ -471,8 +471,6 @@
 	{
     FUNC_LOG;
     
-	// TODO: Launch attachment view
-	// read attachments from calentry and populate the listbox
 	}
 
 // ---------------------------------------------------------------------------
@@ -593,7 +591,6 @@
     isProtected = ccp->IsClosedFileL( aFile );
     if ( isProtected )
             {
-            // TODO: Add suitable note to cesmrglobalnote.cpp
             CESMRGlobalNote::ExecuteL
                                 ( CESMRGlobalNote::EESMRAlarmAlreadyPassed );
             }
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrbackground.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrbackground.cpp	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
 #include "cmrbackground.h"
 
 #include "nmrglobalfeaturesettings.h"
-#include <aknutils.h>
+#include <AknUtils.h>
 
 
 // unnamed namespace for local definitions
@@ -121,15 +121,6 @@
                     }
                 }
             }
-        // TODO: Need to be removed after ui designer says that it can be removed.
-    //    else
-    //        {
-    //        if( ctrl.FieldMode() == EESMRFieldModeEdit )
-    //            {
-    //            // Not focused editor field
-    //            DrawFocus( aGc, rect, aControl, EEditorFieldNoFocus );
-    //            }
-    //        }
         }
     }
 
--- a/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrgrid.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuildercommon/src/cmrgrid.cpp	Tue May 11 15:57:15 2010 +0300
@@ -21,17 +21,17 @@
 #include "nmrlayoutmanager.h"
 #include "esmrhelper.h"
 
-#include <stringloader.h>
-#include <akniconarray.h>
-#include <akngrid.h>
-#include <akngridm.h>
+#include <StringLoader.h>
+#include <AknIconArray.h>
+#include <AknGrid.h>
+#include <AknGridM.h>
 #include <aknlists.h>
-#include <aknutils.h>
-#include <aknpopup.h>
+#include <AknUtils.h>
+#include <aknPopup.h>
 #include <avkon.hrh>
 #include <e32base.h>
 #include <gulicon.h>
-#include <aknlayout2scalabledef.h> 
+#include <AknLayout2ScalableDef.h> 
 #include <esmrgui.mbg>
 #include <esmrgui.rsg>
 #include <data_caging_path_literals.hrh>
@@ -235,7 +235,6 @@
     
     // The order of the items should be in line with 
     // CMRAttachmentUi::ResolveAttachmentTypeL switch case items.
-    // TODO: update texts to be read from resource
     HBufC* textImage = StringLoader::LoadLC( 
             R_QTN_MEET_REQ_ATTACHMENT_TYPE_IMAGE );
     gridItemArray->AppendL( _L("0\tImage") /*textImage*/ );
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrsubjectfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrsubjectfield.h	Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
 
 #include <e32cmn.h>
 #include <eikedwob.h>
-#include <aknscontrolcontext.h>
+#include <AknsControlContext.h>
 
 #include "cesmrfield.h"
 #include "nmrbitmapmanager.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdescriptionfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdescriptionfield.h	Tue May 11 15:57:15 2010 +0300
@@ -47,7 +47,7 @@
     // Destructor
     ~CESMRViewerDescriptionField();
 
-public: // From CESMRField
+protected: // From CESMRField
     void InternalizeL( MESMRCalEntry& aEntry );
     void InitializeL();
     void GetCursorLineVerticalPos( TInt& aUpper, TInt& aLower );
@@ -55,6 +55,8 @@
     TBool ExecuteGenericCommandL( TInt aCommand );
     void SetOutlineFocusL( TBool aFocus );
     void HandleLongtapEventL( const TPoint& aPosition );
+    TBool SupportsLongTapFunctionalityL(
+        		 const TPointerEvent &aPointerEvent );
 
 public: // From CCoeControl
     TKeyResponse OfferKeyEventL(const TKeyEvent& aEvent, TEventCode aType );
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdetailedsubjectfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerdetailedsubjectfield.h	Tue May 11 15:57:15 2010 +0300
@@ -48,7 +48,7 @@
      * @return Pointer to created object,
      */
     static CESMRViewerDetailedSubjectField* NewL( );
-    
+
     /**
      * C++ Destructor.
      */
@@ -62,19 +62,21 @@
     void SetTitlePaneObserver( MESMRTitlePaneObserver* aObserver );
 
 
-public: // From CESMRField
+protected: // From CESMRField
     TSize MinimumSize();
     void InternalizeL( MESMRCalEntry& aEntry );
     void InitializeL();
     void ListObserverSet();
     TBool ExecuteGenericCommandL( TInt aCommand );
     void SetOutlineFocusL( TBool aFocus );
-    void GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower); 
+    void GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower);
     void HandleLongtapEventL( const TPoint& aPosition );
     void LockL();
-    
+    TBool SupportsLongTapFunctionalityL(
+        		 const TPointerEvent &aPointerEvent );
+
 public: // From CCoeControl
-    TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, 
+    TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent,
                                        TEventCode aType );
     TInt CountComponentControls() const;
     CCoeControl* ComponentControl( TInt aInd ) const;
@@ -86,7 +88,7 @@
             CEikEdwin* aEdwin,
             TEdwinSizeEvent aType,
             TSize aSize );
-    
+
 protected: // From CESMRRichTextViewer
     TBool HandleRichTextLinkSelection( const CESMRRichTextLink* aLink );
 
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerlocationfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cesmrviewerlocationfield.h	Tue May 11 15:57:15 2010 +0300
@@ -54,7 +54,7 @@
          */
         ~CESMRViewerLocationField( );
 
-    public:// From CESMRField
+    protected:// From CESMRField
         void InternalizeL( MESMRCalEntry& aEntry );
         TSize MinimumSize();
         void InitializeL();
@@ -64,10 +64,13 @@
         void HandleLongtapEventL( const TPoint& aPosition );
         void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
         void LockL();
+        TBool SupportsLongTapFunctionalityL(
+            		 const TPointerEvent &aPointerEvent );
+
     protected:
 		TBool HandleSingletapEventL( const TPoint& aPosition );
 
-    public: // From CCoeControl
+    protected: // From CCoeControl
         TKeyResponse OfferKeyEventL(const TKeyEvent& aEvent, TEventCode aType );
         TInt CountComponentControls() const;
         CCoeControl* ComponentControl( TInt aInd ) const;
@@ -75,11 +78,11 @@
         void SetContainerWindowL( const CCoeControl& aContainer );
         void GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower);
 
-    public: // From MEikEdwinSizeObserver
+    protected: // From MEikEdwinSizeObserver
         TBool HandleEdwinSizeEventL( CEikEdwin* aEdwin, TEdwinSizeEvent aType,
                 TSize aSize );
 
-    public: // From MCoeControlObserver
+    protected: // From MCoeControlObserver
         void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
 
     private: // Implementation
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmralarmonofffield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmralarmonofffield.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #ifndef CMRALARMONOFFFIELD_H
 #define CMRALARMONOFFFIELD_H
 
-#include "CESMRfield.h"
+#include "cesmrfield.h"
 #include "mmrabsolutealarmcontroller.h"
 
 class CMRLabel;
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmropenattachmentcommand.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmropenattachmentcommand.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define CMROPENATTACHMENTCOMMAND_H
 
 #include <e32base.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include "cmrattachmentcommand.h"
 
 // Forward declarations
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrremoveattachmentcommand.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrremoveattachmentcommand.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define CMRREMOVEATTACHMENTCOMMAND_H
 
 #include <e32base.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include "cmrattachmentcommand.h"
 
 // Forward declarations
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrsaveandopenattachmentcommand.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrsaveandopenattachmentcommand.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define CMRSAVEANDOPENATTACHMENTCOMMAND_H
 
 #include <e32base.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
 #include "cmrattachmentcommand.h"
 
 // Forward declarations
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrviewerattachmentfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/inc/cmrviewerattachmentfield.h	Tue May 11 15:57:15 2010 +0300
@@ -40,7 +40,7 @@
 /**
  * CMRViewerAttachmentsField is entry viewer attachment field
  */
-NONSHARABLE_CLASS( CMRViewerAttachmentsField ): 
+NONSHARABLE_CLASS( CMRViewerAttachmentsField ):
         public CESMRField,
         public MEikEdwinSizeObserver,
         public MESMRRichTextObserver
@@ -70,20 +70,22 @@
                  TInt aResourceId,
                  CEikMenuPane* aMenuPane );
     void LockL();
-    
+    TBool SupportsLongTapFunctionalityL(
+        		 const TPointerEvent &aPointerEvent );
+
 protected: // From CCoeControl
     TInt CountComponentControls() const;
     CCoeControl* ComponentControl( TInt aInd ) const;
     void SizeChanged();
     TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
     void SetContainerWindowL( const CCoeControl& aControl );
-    
+
 protected: // From MEikEdwinSizeObserver
     TBool HandleEdwinSizeEventL( CEikEdwin* aEdwin, TEdwinSizeEvent aType, TSize aDesirableEdwinSize);
-    
-public: // From MESMRRichTextObserver
+
+protected: // From MESMRRichTextObserver
     TBool HandleRichTextLinkSelection( const CESMRRichTextLink* aLink );
-    
+
 private: // Implementation
     CMRViewerAttachmentsField();
     void ConstructL();
@@ -98,7 +100,8 @@
     void DynInitMenuPaneForCurrentAttachmentL(
                  CEikMenuPane* aMenuPane );
     TBool IsAttachmentDownloadInProgress( const CCalAttachment& aAttachment );
-    
+    TInt MaxTextLengthInPixelsL();
+
 private: //data
     // Own: Field icon
     CMRImage* iFieldIcon;
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmralarmfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmralarmfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -35,7 +35,7 @@
 //<cmail>
 #include "esmrdef.h"
 //</cmail>
-#include <aknutils.h>
+#include <AknUtils.h>
 
 // DEBUG
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrcheckbox.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrcheckbox.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,7 +29,7 @@
 #include "cesmrgenericfieldevent.h"
 
 #include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <data_caging_path_literals.hrh>
 
 // DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdatefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdatefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -26,7 +26,7 @@
 #include "nmrcolormanager.h"
 #include "nmrbitmapmanager.h"
 
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
 
 #include <eikmfne.h>
 //<cmail>
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdescriptionfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrdescriptionfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,10 +29,10 @@
 //</cmail>
 
 #include <calentry.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <esmrgui.rsg>
-#include <aknutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <eikmfne.h>
 
 // DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrlocationfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrlocationfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
  *  Description : ESMR location field implementation
- *  Version     : %version: e002sa32#53 %
+ *  Version     : %version: e002sa32#53.1.1 %
  *
  */
 
@@ -34,10 +34,10 @@
 #include "mesmrlistobserver.h"
 
 #include <calentry.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <esmrgui.rsg>
 #include <data_caging_path_literals.hrh>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <eikmfne.h>
 #include <aknbutton.h>
 
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriority.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriority.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #include "emailtrace.h"
 #include "cesmrpriority.h"
 #include <barsread.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 
 // ---------------------------------------------------------------------------
 // CESMRPriority::CESMRPriority
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriorityfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrpriorityfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -27,12 +27,12 @@
 
 #include <calentry.h>
 #include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <barsread.h>
 #include <eiklabel.h>
 #include <avkon.hrh>
-#include <aknsconstants.h>
-#include <aknutils.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
 
 #include "emailtrace.h"
 
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrrepeatuntil.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrrepeatuntil.cpp	Tue May 11 15:57:15 2010 +0300
@@ -26,9 +26,9 @@
 #include "nmrbitmapmanager.h"
 
 #include <eikmfne.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <esmrgui.rsg>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
 
 #include "emailtrace.h"
 
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsingletimefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsingletimefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
 #include "nmrcolormanager.h"
 #include "nmrbitmapmanager.h"
 
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <eikmfne.h>
 
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsubjectfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsubjectfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -27,10 +27,10 @@
 #include "mesmrlistobserver.h"
 
 #include <calentry.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
 #include <esmrgui.rsg>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <eikmfne.h>
 
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsyncfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrsyncfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -23,10 +23,10 @@
 #include "nmrlayoutmanager.h"
 
 #include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <barsread.h>
 #include <avkon.hrh>
-#include <aknutils.h>
+#include <AknUtils.h>
 #include <calentry.h>
 // DEBUG
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrtextitem.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrtextitem.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #include "cesmrtextitem.h"
 
 #include <barsread.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 
 // ======== MEMBER FUNCTIONS ========
 
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -26,8 +26,8 @@
 #include <caluser.h>
 #include <calalarm.h>
 #include <calentry.h>
-#include <stringloader.h>
-#include <aknlayout2scalabledef.h>
+#include <StringLoader.h>
+#include <AknLayout2ScalableDef.h>
 #include <esmrgui.rsg>
 
 // DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmtimefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrvieweralarmtimefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -82,7 +82,7 @@
     iLabel->SetParent( this );
     CESMRField::ConstructL( iLabel ); // ownership transfered
 
-    iIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapAlarmClock ); //TODO: Is this correct icon
+    iIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapAlarmClock );
     iIcon->SetParent( this );
     }
 
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdescriptionfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdescriptionfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -85,7 +85,7 @@
         NMRLayoutManager::GetLayoutText( Rect(), NMRLayoutManager::EMRTextLayoutMultiRowTextEditor );
     iRichTextViewer->SetFontL( layoutText.Font() );
     iRichTextViewer->ApplyLayoutChangesL();
-    
+
     if ( IsFocused() )
         {
         iRichTextViewer->FocusChanged( EDrawNow );
@@ -205,18 +205,22 @@
                 Rect(),
                 NMRLayoutManager::EMRTextLayoutTextEditor );
 
-    // Failures are ignored. 
-    TRAP_IGNORE( 
-            // Try setting font 
+    // Failures are ignored.
+    TRAP_IGNORE(
+            // Try setting font
             iRichTextViewer->SetFontL( text.Font() );
             // Try applying changes
             iRichTextViewer->ApplyLayoutChangesL();
             );
 
+    iRichTextViewer->SetRect(
+            TRect( viewerRect.iTl,
+                    TSize( viewerRect.Width(), iSize.iHeight ) ) );
+
     if ( iRichTextViewer->Size().iWidth != richTextViewerWidth )
         {
-        // Most of this case is screen orientation, in this case we need to 
-        // Record the index of focusing link, after updating link array, then 
+        // Most of this case is screen orientation, in this case we need to
+        // Record the index of focusing link, after updating link array, then
         // reset the focusing to original one.
         TInt focusingIndex = iRichTextViewer->GetFocusLink();
         if ( KErrNotFound != focusingIndex )
@@ -225,7 +229,7 @@
             //wake up current contact menu selection by calling this
             iRichTextViewer->FocusChanged(ENoDrawNow);
             }
-        } 
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -402,14 +406,14 @@
         const TPoint& aPosition )
     {
     FUNC_LOG;
-    
+
     if ( iRichTextViewer->Rect().Contains( aPosition ) )
         {
         if( iRichTextViewer->LinkSelectedL() )
         	{
-			HandleTactileFeedbackL();        
+			HandleTactileFeedbackL();
         	}
-        		
+
         }
     }
 
@@ -580,5 +584,26 @@
     return *iUrlParser;
     }
 
+// ---------------------------------------------------------------------------
+// CESMRViewerDescriptionField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+TBool CESMRViewerDescriptionField::SupportsLongTapFunctionalityL(
+		const TPointerEvent &aPointerEvent )
+	{
+    FUNC_LOG;
+    TBool ret( EFalse );
+
+    if ( iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
+        {
+        if( iRichTextViewer->PointerEventOccuresOnALinkL( aPointerEvent ) )
+        	{
+			ret = ETrue;
+        	}
+        }
+
+    return ret;
+	}
+
 //EOF
 
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerdetailedsubjectfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -117,7 +117,7 @@
     FUNC_LOG;
     iFieldIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapOccasion );
     iFieldIcon->SetParent( this );
-    
+
     iRichTextViewer = CESMRRichTextViewer::NewL( this );
     CESMRField::ConstructL( iRichTextViewer ); // ownership transferred
     iRichTextViewer->SetEdwinSizeObserver( this );
@@ -143,17 +143,17 @@
 TSize CESMRViewerDetailedSubjectField::MinimumSize()
     {
     TRect parentRect( Parent()->Rect() );
-    
-    TRect fieldRect = 
+
+    TRect fieldRect =
        NMRLayoutManager::GetFieldLayoutRect( parentRect, 1 ).Rect();
 
-    TRect viewerRect( NMRLayoutManager::GetLayoutText( 
-       fieldRect, 
+    TRect viewerRect( NMRLayoutManager::GetLayoutText(
+       fieldRect,
        NMRLayoutManager::EMRTextLayoutTextEditor ).TextRect() );
-    
+
     // Adjust field size so that there's room for expandable editor.
     fieldRect.Resize( 0, iSize.iHeight - viewerRect.Height() );
-    
+
     return fieldRect.Size();
     }
 
@@ -166,13 +166,13 @@
     {
     FUNC_LOG;
     // Setting Font for the rich text viewer
-    TAknLayoutText text = NMRLayoutManager::GetLayoutText( 
-            Rect(), 
+    TAknLayoutText text = NMRLayoutManager::GetLayoutText(
+            Rect(),
             NMRLayoutManager::EMRTextLayoutTextEditor );
-    
+
     iRichTextViewer->SetFontL( text.Font() );
     iRichTextViewer->ApplyLayoutChangesL();
-        
+
     // This is called so theme changes will apply when changing theme "on the fly"
     if ( IsFocused() )
         {
@@ -193,24 +193,24 @@
             aEntry.Type() );
 
     CCalEntry& entry = aEntry.Entry();
- 
+
     if( !IsLocked() )
     	{
     	if( entry.PriorityL() == EFSCalenMRPriorityHigh )
     		{
-    		iPriorityIcon = CMRImage::NewL( 
+    		iPriorityIcon = CMRImage::NewL(
     				NMRBitmapManager::EMRBitmapPriorityHigh, ETrue );
     		iPriorityIcon->SetParent( this );
     		}
     	if( entry.PriorityL() == EFSCalenMRPriorityLow )
     		{
-    		iPriorityIcon = CMRImage::NewL( 
+    		iPriorityIcon = CMRImage::NewL(
     				NMRBitmapManager::EMRBitmapPriorityLow, ETrue );
     		iPriorityIcon->SetParent( this );
     		}
     	}
-    
-    
+
+
     if ( MESMRCalEntry::EESMRCalEntryMeetingRequest == entryType )
         {
         MESMRMeetingRequestEntry* mrEntry =
@@ -261,14 +261,14 @@
 
     // if the entry isn't anniversary let's change the icon.
     if ( CCalEntry::EAnniv  != aEntry.Entry().EntryTypeL() )
-        {               	
+        {
         delete iFieldIcon;
         iFieldIcon = NULL;
 
         iFieldIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapSubject );
         iFieldIcon->SetParent( this );
 
-        DrawDeferred();                
+        DrawDeferred();
         }
     iDisableRedraw = ETrue;
     }
@@ -290,22 +290,22 @@
 // ---------------------------------------------------------------------------
 //
 TBool CESMRViewerDetailedSubjectField::HandleEdwinSizeEventL(
-        CEikEdwin* aEdwin, 
-        TEdwinSizeEvent /*aType*/, 
+        CEikEdwin* aEdwin,
+        TEdwinSizeEvent /*aType*/,
         TSize aSize )
     {
     FUNC_LOG;
     TBool reDraw( EFalse );
-       
+
     // Let's save the required size for the iRichTextViewer
     iSize = aSize;
-    
+
     if ( iObserver && aEdwin == iRichTextViewer )
        {
        iObserver->ControlSizeChanged( this );
        reDraw = ETrue;
        }
-    
+
     return reDraw;
     }
 
@@ -337,12 +337,12 @@
         iRichTextViewer->LinkSelectedL();
         isUsed = ETrue;
         }
-    else if ( aCommand == EAknCmdOpen )    	
-    	{            
+    else if ( aCommand == EAknCmdOpen )
+    	{
     	if ( IsLocked() )
     		{
 			HandleTactileFeedbackL();
-			
+
     		CESMRGlobalNote::ExecuteL(
     				CESMRGlobalNote::EESMRUnableToEdit );
     		isUsed = ETrue;
@@ -360,12 +360,12 @@
     FUNC_LOG;
     CESMRField::SetOutlineFocusL ( aFocus );
     iRichTextViewer->SetFocus( aFocus );
-    
+
     if( aFocus )
         {
         SetMiddleSoftkeyL();
         }
-    
+
     else
         {
         //need to tell action menu that focus has changed
@@ -382,7 +382,7 @@
         TInt& aLower )
     {
     FUNC_LOG;
-    
+
     aLower = iRichTextViewer->CurrentLineNumber() * iRichTextViewer->RowHeight();
     aUpper = aLower - iRichTextViewer->RowHeight();
     }
@@ -395,7 +395,7 @@
         const TPoint& aPosition )
     {
     FUNC_LOG;
-    
+
     if ( iRichTextViewer->Rect().Contains( aPosition ) )
         {
         iRichTextViewer->LinkSelectedL();
@@ -413,9 +413,9 @@
 		{
 		return;
 		}
-	
+
 	CESMRField::LockL();
-	
+
 	delete iPriorityIcon;
 	iPriorityIcon = NULL;
 	iPriorityIcon = CMRImage::NewL( NMRBitmapManager::EMRBitmapLockField, ETrue );
@@ -445,7 +445,7 @@
         }
     }
 
-    
+
 // ---------------------------------------------------------------------------
 // CESMRViewerDetailedSubjectField::HandleRichTextLinkSelection
 // ---------------------------------------------------------------------------
@@ -456,7 +456,7 @@
     TBool result = EFalse;
 
     // No implementation yet: waiting for UI spec.
-    
+
     return result;
     }
 
@@ -476,12 +476,12 @@
         {
         ++count;
         }
-    
+
     if ( iPriorityIcon )
         {
         ++count;
         }
-    
+
     return count;
     }
 
@@ -489,7 +489,7 @@
 // CESMRViewerDetailedSubjectField::ComponentControl
 // ---------------------------------------------------------------------------
 //
-CCoeControl* CESMRViewerDetailedSubjectField::ComponentControl( 
+CCoeControl* CESMRViewerDetailedSubjectField::ComponentControl(
         TInt aIndex ) const
     {
     switch ( aIndex )
@@ -500,7 +500,7 @@
             return iRichTextViewer;
         case 2:
             return iPriorityIcon;
-            
+
         default:
             return NULL;
         }
@@ -516,24 +516,24 @@
     TInt richTextViewerWidth = iRichTextViewer->Size().iWidth;
     TRect rect( Rect() );
 
-    TAknLayoutRect rowLayoutRect( 
+    TAknLayoutRect rowLayoutRect(
             NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 ) );
     TRect rowRect( rowLayoutRect.Rect() );
-    
+
     // Layouting field icon
     if( iFieldIcon )
         {
-        TAknWindowComponentLayout iconLayout( 
-            NMRLayoutManager::GetWindowComponentLayout( 
+        TAknWindowComponentLayout iconLayout(
+            NMRLayoutManager::GetWindowComponentLayout(
                     NMRLayoutManager::EMRLayoutSingleRowAColumnGraphic ) );
         AknLayoutUtils::LayoutControl( iFieldIcon, rowRect, iconLayout );
         }
-    
+
     // Layouting priority icon
     if( iPriorityIcon )
         {
-        TAknWindowComponentLayout iconLayout( 
-                NMRLayoutManager::GetWindowComponentLayout( 
+        TAknWindowComponentLayout iconLayout(
+                NMRLayoutManager::GetWindowComponentLayout(
                     NMRLayoutManager::EMRLayoutSingleRowDColumnGraphic ) );
         AknLayoutUtils::LayoutImage( iPriorityIcon, rowRect, iconLayout );
         }
@@ -542,32 +542,32 @@
 
     if( iPriorityIcon )
         {
-        viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect, 
+        viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
                     NMRLayoutManager::EMRTextLayoutSingleRowEditorText );
         }
     else
         {
-        viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect, 
+        viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
                     NMRLayoutManager::EMRTextLayoutTextEditor );
         }
-    
+
     // Layouting viewer field
     TRect viewerRect( viewerLayoutText.TextRect() );
 
     // Resize height according to actual height required by edwin.
     viewerRect.Resize( 0, iSize.iHeight - viewerRect.Height() );
-    iRichTextViewer->SetRect( viewerRect );  
-        
+    iRichTextViewer->SetRect( viewerRect );
+
     // Layouting focus
-    TRect bgRect( viewerRect );    
-    
+    TRect bgRect( viewerRect );
+
     // Move focus rect so that it's relative to field's position.
     bgRect.Move( -Position() );
     SetFocusRect( bgRect );
-    
-    // Failures are ignored. 
-    TRAP_IGNORE( 
-            // Try setting font 
+
+    // Failures are ignored.
+    TRAP_IGNORE(
+            // Try setting font
             iRichTextViewer->SetFontL( viewerLayoutText.Font() );
             // Try applying changes
             iRichTextViewer->ApplyLayoutChangesL();
@@ -575,8 +575,8 @@
 
     if ( iRichTextViewer->Size().iWidth != richTextViewerWidth )
         {
-        // Most of this case is screen orientation, in this case we need to 
-        // Record the index of focusing link, after updating link array, then 
+        // Most of this case is screen orientation, in this case we need to
+        // Record the index of focusing link, after updating link array, then
         // reset the focusing to original one.
         TInt focusingIndex = iRichTextViewer->GetFocusLink();
         if ( KErrNotFound != focusingIndex )
@@ -592,12 +592,33 @@
 // CESMRViewerDetailedSubjectField::SetContainerWindowL
 // ---------------------------------------------------------------------------
 //
-void CESMRViewerDetailedSubjectField::SetContainerWindowL( 
+void CESMRViewerDetailedSubjectField::SetContainerWindowL(
         const CCoeControl& aContainer )
     {
     CCoeControl::SetContainerWindowL( aContainer );
-    iRichTextViewer->SetContainerWindowL( aContainer );    
+    iRichTextViewer->SetContainerWindowL( aContainer );
     iRichTextViewer->SetParent( this );
     }
 
+// ---------------------------------------------------------------------------
+// CESMRViewerDetailedSubjectField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+TBool CESMRViewerDetailedSubjectField::SupportsLongTapFunctionalityL(
+		const TPointerEvent &aPointerEvent )
+	{
+    FUNC_LOG;
+    TBool ret( EFalse );
+
+    if ( iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
+        {
+        if( iRichTextViewer->PointerEventOccuresOnALinkL( aPointerEvent ) )
+        	{
+			ret = ETrue;
+        	}
+        }
+
+    return ret;
+	}
+
 //EOF
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerlocationfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerlocationfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -235,19 +235,6 @@
 
             break;
             }
-        case EAknCmdOpen:
-            {
-            // Open command is handled only when field is locked
-            if ( IsLocked() )
-            	{
-				HandleTactileFeedbackL();
-
-            	CESMRGlobalNote::ExecuteL(
-            			CESMRGlobalNote::EESMRUnableToEdit );
-            	isUsed = ETrue;
-            	}
-            break;
-            }
         default:
             {
             break;
@@ -406,8 +393,8 @@
 
     if ( iRichTextViewer->Size().iWidth != richTextViewerWidth )
         {
-        // Most of this case is screen orientation, in this case we need to 
-        // Record the index of focusing link, after updating link array, then 
+        // Most of this case is screen orientation, in this case we need to
+        // Record the index of focusing link, after updating link array, then
         // reset the focusing to original one.
         TInt focusingIndex = iRichTextViewer->GetFocusLink();
         if ( KErrNotFound != focusingIndex )
@@ -416,7 +403,7 @@
             //wake up current contact menu selection by calling this
             iRichTextViewer->FocusChanged(ENoDrawNow);
             }
-        }  
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -565,32 +552,41 @@
 	{
 	TBool ret( EFalse );
 
-	if( iLocked )
+	// Button events are handled by HandleControlEvent.
+	// Tap on link is handled by rich text viewer.
+	if ( !iFieldButton->Rect().Contains( aPosition )
+		 && !iRichTextViewer->GetSelectedLink() )
 		{
 		HandleTactileFeedbackL();
 
-		CESMRGlobalNote::ExecuteL(
-			CESMRGlobalNote::EESMRUnableToEdit );
+		NotifyEventL( EAknSoftkeyContextOptions );
 
-		// Field locked, let's consume the event
+		// Event is always consumed, if we come inside this if-clause
 		ret = ETrue;
 		}
-	else
-		{
-		// Button events are handled by HandleControlEvent.
-		// Tap on link is handled by rich text viewer.
-		if ( !iFieldButton->Rect().Contains( aPosition )
-		     && !iRichTextViewer->GetSelectedLink() )
-			{
-			NotifyEventL( EAknSoftkeyContextOptions );
-
-			ret = ETrue;
-
-			HandleTactileFeedbackL();
-			}
-		}
 
     return ret;
 	}
 
+// ---------------------------------------------------------------------------
+// CESMRViewerLocationField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+TBool CESMRViewerLocationField::SupportsLongTapFunctionalityL(
+		const TPointerEvent &aPointerEvent )
+	{
+    FUNC_LOG;
+    TBool ret( EFalse );
+
+    if ( iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
+        {
+        if( iRichTextViewer->PointerEventOccuresOnALinkL( aPointerEvent ) )
+        	{
+			ret = ETrue;
+        	}
+        }
+
+    return ret;
+	}
+
 //EOF
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerpriorityfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerpriorityfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
 
 #include <calentry.h>
 #include <eikenv.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <esmrgui.rsg>
 
 // DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencedatefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencedatefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -28,8 +28,8 @@
 #include <eikenv.h>
 #include <avkon.rsg>
 #include <avkon.hrh>
-#include <stringloader.h>
-#include <aknutils.h>
+#include <StringLoader.h>
+#include <AknUtils.h>
 #include <esmrgui.rsg>
 #include <caltime.h>
 // DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerrecurrencefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,8 +29,8 @@
 #include <calentry.h>
 #include <eikenv.h>
 #include <eikedwin.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
 #include <esmrgui.rsg>
 
 // DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstartdatefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstartdatefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -34,10 +34,10 @@
 #include <calentry.h>
 #include <eikenv.h>
 #include <eikedwin.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
-#include <aknutils.h>
-#include <aknlayout2scalabledef.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
+#include <AknLayout2ScalableDef.h>
 
 // ======== LOCAL FUNCTIONS ========
 namespace // codescanner::namespace
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstopdatefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewerstopdatefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -26,7 +26,7 @@
 #include "cesmrglobalnote.h"
 
 #include <esmrgui.rsg>
-#include <aknutils.h>
+#include <AknUtils.h>
 #include <eiklabel.h>
 #include <caluser.h>
 #include <calalarm.h>
@@ -34,8 +34,8 @@
 #include <calentry.h>
 #include <eikenv.h>
 #include <eikedwin.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
 #include "esmrfieldbuilderdef.h"
 
 // ======== LOCAL FUNCTIONS ========
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewersyncfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewersyncfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -24,8 +24,8 @@
 #include "cesmrglobalnote.h"
 
 #include <calentry.h>
-#include <stringloader.h>
-#include <aknlayout2scalabledef.h>
+#include <StringLoader.h>
+#include <AknLayout2ScalableDef.h>
 
 #include <esmrgui.rsg>
 // DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewertimefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cesmrviewertimefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -31,10 +31,10 @@
 #include <calentry.h>
 #include <eikenv.h>
 #include <eikedwin.h>
-#include <stringloader.h>
-#include <aknsconstants.h>
-#include <aknutils.h>
-#include <aknlayout2scalabledef.h>
+#include <StringLoader.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
+#include <AknLayout2ScalableDef.h>
 #include <esmrgui.rsg>
 // DEBUG
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmralarmonofffield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmralarmonofffield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -24,10 +24,10 @@
 #include "mesmrfieldvalidator.h"
 #include "nmrlayoutmanager.h"
 
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <avkon.hrh>
 #include <esmrgui.rsg>
-#include <aknutils.h>
+#include <AknUtils.h>
 
 
 // ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentcommandhandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentcommandhandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -36,8 +36,8 @@
 #include <calattachment.h>
 #include <f32file.h>
 #include <apgcli.h>
-#include <documenthandler.h>
-#include <stringloader.h>
+#include <DocumentHandler.h>
+#include <StringLoader.h>
 #include <AknGlobalNote.h>
 
 // DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentsfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrattachmentsfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -27,14 +27,14 @@
 #include "cesmrrichtextlink.h"
 #include "cmrattachmentcommandhandler.h"
 
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <calentry.h>
 #include <calattachment.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <esmrgui.rsg>
 #include <gulicon.h>
 #include <ct/rcpointerarray.h>
-#include <aknbiditextutils.h>
+#include <AknBidiTextUtils.h>
 
 // DEBUG
 #include "emailtrace.h"
@@ -44,7 +44,6 @@
 namespace { // codescanner::namespace
 //CONSTANTS
 
-// TODO: Read default text from resource
 _LIT( KAddAttachment, "Add attachment" );
 _LIT( KNewLine, "\f" );
 
@@ -141,7 +140,6 @@
     iRichTextViewer->SetLinkObserver (this );
     iRichTextViewer->SetParent( this );
 
-    // TODO: read from resource
     iTitle->SetTextL( KAddAttachment );
 
     // Draw bg instead of using skin bg
@@ -479,7 +477,7 @@
 TBool CMRAttachmentsField::ExecuteGenericCommandL( TInt aCommand )
     {
     FUNC_LOG;
-    // TODO: Changes from other fields have to be implemented here
+
     TBool handled( EFalse );
 
     // From cesmrattachmentfield
@@ -620,7 +618,6 @@
         delete attachmentSize;
         attachmentSize = NULL;
 
-        // TODO: correct icon zise to correct one. Ask from UI specifier.
         TSize iconSize( 20, 20);
         maxLineWidth -= iconSize.iWidth;
 
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrmulticalenfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrmulticalenfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -26,12 +26,12 @@
 #include "cesmrglobalnote.h"
 #include <calinstance.h>
 #include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <barsread.h>
 #include <avkon.hrh>
-#include <aknutils.h>
+#include <AknUtils.h>
 #include <calentry.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 // DEBUG
 #include "emailtrace.h"
 #include "cesmrcaldbmgr.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmropenattachmentcommand.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmropenattachmentcommand.cpp	Tue May 11 15:57:15 2010 +0300
@@ -20,10 +20,10 @@
 #include <calattachment.h>
 #include <f32file.h>
 #include <esmrgui.rsg>
-#include <npdapi.h>
+#include <NpdApi.h>
 #include <aknnotewrappers.h>
-#include <stringloader.h>
-#include <documenthandler.h>
+#include <StringLoader.h>
+#include <DocumentHandler.h>
 
 // DEBUG
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveandopenattachmentcommand.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveandopenattachmentcommand.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,12 +19,12 @@
 #include <calentry.h>
 #include <calattachment.h>
 #include <f32file.h>
-#include <documenthandler.h>
+#include <DocumentHandler.h>
 #include <coemain.h>
 #include <esmrgui.rsg>
-#include <npdapi.h>
+#include <NpdApi.h>
 #include <aknnotewrappers.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 
 // DEBUG
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveattachmentcommand.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrsaveattachmentcommand.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,12 +19,12 @@
 #include <calentry.h>
 #include <calattachment.h>
 #include <f32file.h>
-#include <documenthandler.h>
+#include <DocumentHandler.h>
 #include <coemain.h>
 #include <esmrgui.rsg>
-#include <npdapi.h>
+#include <NpdApi.h>
 #include <aknnotewrappers.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 
 // DEBUG
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrtimecontainer.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrtimecontainer.cpp	Tue May 11 15:57:15 2010 +0300
@@ -26,10 +26,10 @@
 #include <layoutmetadata.cdl.h>
 #include <eikmfne.h>
 #include <avkon.hrh>
-#include <aknutils.h>
-#include <aknsframebackgroundcontrolcontext.h>
-#include <aknsdrawutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknUtils.h>
+#include <AknsFrameBackgroundControlContext.h>
+#include <AknsDrawUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
 
 // DEBUG
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrunifiededitorfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrunifiededitorfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -25,12 +25,12 @@
 #include "cesmrglobalnote.h"
 
 #include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <barsread.h>
 #include <avkon.hrh>
-#include <aknutils.h>
+#include <AknUtils.h>
 #include <calentry.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 // DEBUG
 #include "emailtrace.h"
 
--- a/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrviewerattachmentfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderplugin/src/cmrviewerattachmentfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -30,14 +30,14 @@
 #include "mcalremoteattachmentoperation.h"
 #include "cesmrglobalnote.h"
 
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <calentry.h>
 #include <calattachment.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <esmrgui.rsg>
 #include <gulicon.h>
 #include <ct/rcpointerarray.h>
-#include <aknbiditextutils.h>
+#include <AknBidiTextUtils.h>
 #include <badesca.h>
 
 // DEBUG
@@ -263,7 +263,7 @@
         {
         ++count;
         }
-    
+
     if ( iLockIcon )
     	{
     	++count;
@@ -302,7 +302,7 @@
     FUNC_LOG;
     TRect rect( Rect() );
 
-    TAknLayoutRect rowLayoutRect(    		
+    TAknLayoutRect rowLayoutRect(
             NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 ) );
     TRect rowRect( rowLayoutRect.Rect() );
 
@@ -318,22 +318,22 @@
     // Layouting lock icon
     if( iLockIcon )
         {
-        TAknWindowComponentLayout iconLayout( 
-                NMRLayoutManager::GetWindowComponentLayout( 
+        TAknWindowComponentLayout iconLayout(
+                NMRLayoutManager::GetWindowComponentLayout(
                     NMRLayoutManager::EMRLayoutSingleRowDColumnGraphic ) );
         AknLayoutUtils::LayoutImage( iLockIcon, rowRect, iconLayout );
         }
-        
+
 	// Layouting viewer rect
     TAknLayoutText viewerLayoutText;
     if( iLockIcon )
     	{
-    	viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect, 
+    	viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
     			NMRLayoutManager::EMRTextLayoutSingleRowEditorText );
     	}
     else
     	{
-    	viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect, 
+    	viewerLayoutText = NMRLayoutManager::GetLayoutText( rowRect,
     			NMRLayoutManager::EMRTextLayoutTextEditor );
     	}
 
@@ -342,7 +342,7 @@
     // Resize height according to actual height required by edwin.
     viewerRect.Resize( 0, iSize.iHeight - viewerRect.Height() );
     iRichTextViewer->SetRect( viewerRect );
-    
+
     // Layouting focus
     TRect bgRect( 0, 0, 0, 0 );
     if( iAttachmentCount > 1 )
@@ -364,7 +364,7 @@
     // Move focus rect so that it's relative to field's position.
     bgRect.Move( -Position() );
     SetFocusRect( bgRect );
-    
+
     // Failures are ignored.
     TRAP_IGNORE(
 				// Set font
@@ -458,7 +458,7 @@
 TBool CMRViewerAttachmentsField::ExecuteGenericCommandL( TInt aCommand )
     {
     FUNC_LOG;
-    // TODO: Changes from other fields have to be implemented here
+
     TBool handled( EFalse );
 
     //handle locked field first
@@ -468,7 +468,7 @@
         		aCommand == EAknCmdOpen )
     		{
 			HandleTactileFeedbackL();
-    	
+
     		CESMRGlobalNote::ExecuteL(
     				CESMRGlobalNote::EESMRUnableToEdit );
     		return ETrue;
@@ -489,7 +489,7 @@
             iAttachmentCommandHandler->HandleAttachmentCommandL(
                     aCommand,
                     *currentLink );
-            
+
     		HandleTactileFeedbackL();
             }
         else
@@ -497,7 +497,7 @@
             iAttachmentCommandHandler->HandleRemoteAttachmentCommandL(
                     aCommand,
                     *currentLink );
-            
+
     		HandleTactileFeedbackL();
             }
 
@@ -538,7 +538,7 @@
         {
         TRAP_IGNORE( NotifyEventL( EMRLaunchAttachmentContextMenu ));
         ret = ETrue;
-        
+
         TRAP_IGNORE( HandleTactileFeedbackL() );
         }
 
@@ -576,56 +576,51 @@
     attachmentLinks.ReserveL( iAttachmentCount );
     for ( TInt i = 0; i < iAttachmentCount; ++i )
         {
-        CCalAttachment* att = iEntry->Entry().AttachmentL( i ); // Ownership not gained
+		CCalAttachment* attachment = iEntry->Entry().AttachmentL( i ); // Ownership not gained
 
-        // Reducing space required by file size information from
-        // max line width, so that file name can be trimmed to correct
-        // length
-        TInt maxLineWidth = layoutText.TextRect().Width();
-        const CFont* font = layoutText.Font();
+		const CFont* font = layoutText.Font();
+		TInt maxFileNameLengthInPixels( MaxTextLengthInPixelsL() );
 
-        HBufC* attachmentSize = AttachmentNameAndSizeL( KNullDesC(), *att );
-        TInt attachmentSizeLength = attachmentSize->Length();
-        maxLineWidth -= font->TextWidthInPixels( *attachmentSize );
-        delete attachmentSize;
-        attachmentSize = NULL;
+		// Size information needs to be reduced from max filename length
+		HBufC* attachmentSizeOnly(
+				AttachmentNameAndSizeL( KNullDesC(), *attachment ) );
+		TInt sizeInformationLengthInPixels(
+				font->TextWidthInPixels( *attachmentSizeOnly ) );
+		maxFileNameLengthInPixels -= sizeInformationLengthInPixels;
 
-        // TODO: correct icon zise to correct one. Ask from UI specifier.
-        TSize iconSize( 20, 20);
-        maxLineWidth -= iconSize.iWidth;
-
-        // Trimming file name to fit to one line
-        TPtrC text = att->Label();
-        HBufC* clippedTextHBufC = ClipTextLC( text, *font, maxLineWidth );
-        TPtr clippedText = clippedTextHBufC->Des();
-        clippedText.Trim();
+		// Trimming file name to fit to one line
+		TPtrC text = attachment->Label();
+		HBufC* clippedTextHBufC = ClipTextLC(
+				text, *font, maxFileNameLengthInPixels );
+		TPtr clippedText = clippedTextHBufC->Des();
+		clippedText.Trim();
 
         if ( clippedText.Length() > 0 )
             {
-            // Creating rich text link
-            CESMRRichTextLink* link = CESMRRichTextLink::NewL(
-                    buffer.Length(),
-                    clippedText.Length() + attachmentSizeLength,
-                    text,
-                    CESMRRichTextLink::ETypeAttachment,
-                    CESMRRichTextLink::ETriggerKeyRight );
-            CleanupStack::PushL( link );
-            attachmentLinks.AppendL( link );
-            CleanupStack::Pop( link );
+			HBufC* buf = AttachmentNameAndSizeL( clippedText, *attachment );
+			CleanupStack::PushL( buf );
 
-            HBufC* buf = AttachmentNameAndSizeL( clippedText, *att );
-            CleanupStack::PushL( buf );
+			// Creating rich text link
+			CESMRRichTextLink* link = CESMRRichTextLink::NewL(
+					buffer.Length(),
+					buf->Length(),
+					text,
+					CESMRRichTextLink::ETypeAttachment,
+					CESMRRichTextLink::ETriggerKeyRight );
+			CleanupStack::PushL( link );
+			attachmentLinks.AppendL( link );
+			CleanupStack::Pop( link );
 
-            // Append attachment name and size with line feed to buffer
-            buffer.ReAllocL( buffer.Length() +
-                             clippedText.Length() +
-                             buf->Length() +
-                             KNewLine().Length() );
+			// Append attachment name and size with line feed to buffer
+			buffer.ReAllocL( buffer.Length() +
+							 clippedText.Length() +
+							 buf->Length() +
+							 KNewLine().Length() );
 
-            buffer.Append( buf->Des() );
-            buffer.Append( KNewLine );
+			buffer.Append( buf->Des() );
+			buffer.Append( KNewLine );
 
-            CleanupStack::PopAndDestroy( buf );
+			CleanupStack::PopAndDestroy( buf );
             }
 
         CleanupStack::PopAndDestroy( clippedTextHBufC );
@@ -744,7 +739,7 @@
         attachmentStrings->AppendL( aDes );
 
         stringholder = StringLoader::LoadLC(
-                R_MEET_REQ_ATTACHMENT_FILE_LESS_THAN_KILOBYTE , 
+                R_MEET_REQ_ATTACHMENT_FILE_LESS_THAN_KILOBYTE ,
                 *attachmentStrings );
         }
     else
@@ -959,7 +954,7 @@
     FUNC_LOG;
     TInt commandInProgress(
            iAttachmentCommandHandler->CurrentCommandInProgress() );
-    
+
     // Get selected attachment
     CCalAttachment* selectedAttachment = NULL;
 
@@ -980,21 +975,21 @@
 
     ASSERT( selectedAttachment );
 
-    
+
     /*
      * Case 1: Download in progress
      */
     if( commandInProgress )
     	{
-		// A) If selected attachment is remote attachment and download is in progress 
+		// A) If selected attachment is remote attachment and download is in progress
 		// or attachment is queued for downloading
-		if( selectedAttachment->Type() == CCalAttachment::EUri && 
+		if( selectedAttachment->Type() == CCalAttachment::EUri &&
 				EESMRViewerSaveAllAttachments == commandInProgress )
 			{
 			aMenuPane->SetItemDimmed(
 					EESMRViewerOpenAttachment,
 					ETrue );
-		
+
 			aMenuPane->SetItemDimmed(
 				EESMRViewerSaveAttachment,
 				ETrue );
@@ -1003,7 +998,7 @@
 					EESMRViewerSaveAllAttachments,
 					ETrue );
 			}
-		
+
 		// B) If selected attachment is local attachment
 		else if( selectedAttachment->Type() == CCalAttachment::EFile )
 			{
@@ -1011,7 +1006,7 @@
 			aMenuPane->SetItemDimmed(
 					EESMRViewerCancelAttachmentDownload,
 					ETrue );
-			
+
 			// If attachment count is one, hide 'Save All' also
 			if ( iAttachmentCount == 1 )
 				{
@@ -1020,11 +1015,11 @@
 						ETrue );
 				}
 			}
-		
+
 		// C) If selected attachment is Uri, and some other command is in progress
 		// than save all
-		else if( selectedAttachment->Type() == CCalAttachment::EUri && 
-				commandInProgress != EESMRViewerSaveAllAttachments ) 
+		else if( selectedAttachment->Type() == CCalAttachment::EUri &&
+				commandInProgress != EESMRViewerSaveAllAttachments )
 			{
 			// If this attachment is the one being downloaded
 			if( IsAttachmentDownloadInProgress( *selectedAttachment ) )
@@ -1032,25 +1027,25 @@
 				aMenuPane->SetItemDimmed(
 					EESMRViewerOpenAttachment,
 					ETrue );
-			
+
 				aMenuPane->SetItemDimmed(
 					EESMRViewerSaveAttachment,
 					ETrue );
-		
+
 				aMenuPane->SetItemDimmed(
 						EESMRViewerSaveAllAttachments,
 						ETrue );
 				}
-			
-			
+
+
 			// if this attacment is not the one being downloaded
 			else
-				{			
+				{
 				// Always hide cancel attachment download item
 				aMenuPane->SetItemDimmed(
 						EESMRViewerCancelAttachmentDownload,
 						ETrue );
-				
+
 				// If attachment count is one, hide 'Save All' also
 				if ( iAttachmentCount == 1 )
 					{
@@ -1061,7 +1056,7 @@
 				}
 			}
     	}
-    
+
     /*
      * Case 2: No download in progress
      */
@@ -1071,7 +1066,7 @@
 		aMenuPane->SetItemDimmed(
 				EESMRViewerCancelAttachmentDownload,
 				ETrue );
-    
+
 		// If attachment count is one, hide 'Save All' also
 		if ( iAttachmentCount == 1 )
 			{
@@ -1086,16 +1081,16 @@
 // CMRViewerAttachmentsField::IsAttachmentDownloadInProgress
 // ---------------------------------------------------------------------------
 //
-TBool CMRViewerAttachmentsField::IsAttachmentDownloadInProgress( 
+TBool CMRViewerAttachmentsField::IsAttachmentDownloadInProgress(
 		const CCalAttachment& aAttachment )
 	{
     TBool ret( EFalse );
-	
+
     RPointerArray<MCalRemoteAttachmentOperation>& remoteOperations(
                     iAttachmentCommandHandler->RemoteOperations() );
 
     TPtrC currentAttachmentName( aAttachment.Label() );
-    
+
 	TInt downloadOperationCount( remoteOperations.Count() );
 	if ( downloadOperationCount )
 		{
@@ -1106,7 +1101,7 @@
 			remoteOperations[i]->AttachmentInformation();
 
 			TPtrC label( attachInfo.AttachmentLabel() );
-			
+
 			if ( label.Compare( currentAttachmentName ) == 0 )
 				{
 				ret = ETrue;
@@ -1117,4 +1112,53 @@
     return ret;
 	}
 
+// ---------------------------------------------------------------------------
+// CMRViewerAttachmentsField::SupportsLongTapFunctionalityL
+// ---------------------------------------------------------------------------
+//
+TBool CMRViewerAttachmentsField::SupportsLongTapFunctionalityL(
+		const TPointerEvent &aPointerEvent )
+	{
+    FUNC_LOG;
+    TBool ret( EFalse );
+
+    if ( iRichTextViewer->Rect().Contains( aPointerEvent.iPosition ) )
+        {
+        if( iRichTextViewer->PointerEventOccuresOnALinkL( aPointerEvent ) )
+        	{
+			ret = ETrue;
+        	}
+        }
+
+    return ret;
+	}
+
+// ---------------------------------------------------------------------------
+// CMRViewerAttachmentsField::MaxTextLengthInPixelsL
+// ---------------------------------------------------------------------------
+//
+TInt CMRViewerAttachmentsField::MaxTextLengthInPixelsL()
+    {
+    FUNC_LOG;
+    /*
+     * RichTextViewer length cannot be used here directly, since
+     * this value is not always available. Value needs to be calculated.
+     */
+    TRect tempFieldRect( TPoint( 0, 0 ), MinimumSize() );
+
+    // Rich Text viewer width is the same as other common rich text components
+    // width
+    TAknLayoutRect rowLayoutRect(
+            NMRLayoutManager::GetFieldRowLayoutRect( tempFieldRect, 1 ) );
+    TRect rowRect( rowLayoutRect.Rect() );
+
+    TAknLayoutText layoutText( NMRLayoutManager::GetLayoutText(
+    		rowRect,
+            NMRLayoutManager::EMRTextLayoutTextEditor ) );
+
+    TRect tempRichTextViewerRect( layoutText.TextRect() );
+
+	return tempRichTextViewerRect.Width();
+    }
+
 //EOF
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsitem.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsitem.h	Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,7 @@
 #include <e32base.h>
 #include <cntdef.h>
 
-#include <cpcsdefs.h> // TPsMatchLocation
+#include <CPcsDefs.h> // TPsMatchLocation
 
 // FORWARD DECLARATIONS
 class MVPbkContactLink;
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclslistshandler.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclslistshandler.h	Tue May 11 15:57:15 2010 +0300
@@ -22,8 +22,8 @@
 #include <e32base.h>
 #include <cntdef.h>                     // TContactItemId
 #include <bamdesca.h>                   // MDesCArray
-#include <cpbkcontactitem.h>
-#include <cpcsdefs.h>
+#include <CPbkContactItem.h>
+#include <CPcsDefs.h>
 
 #include "cesmrclsitem.h"
 #include "resmrstatic.h"
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsmatchobserver.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrclsmatchobserver.h	Tue May 11 15:57:15 2010 +0300
@@ -23,9 +23,9 @@
 #include <e32base.h>
 #include <cntdef.h>
 
-#include <mpsresultsobserver.h>
-#include <cpsrequesthandler.h>
-#include <cpcsdefs.h>
+#include <MPsResultsObserver.h>
+#include <CPsRequestHandler.h>
+#include <CPcsDefs.h>
 
 // FORWARD DECLARATIONS
 class CRepository;
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrncseditor.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrncseditor.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define CESMRNCSEDITOR_H
 
 #include <eikrted.h>
-#include <aknutils.h>
+#include <AknUtils.h>
 
 /**
  *  CESMRNcsEditor is a specialised CEikRichTextEditor for 
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerattendeesfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerattendeesfield.h	Tue May 11 15:57:15 2010 +0300
@@ -49,7 +49,7 @@
      */
     ~CESMRViewerAttendeesField( );
 
-public: // From CCoeControl
+protected: // From CCoeControl
     TInt CountComponentControls( ) const;
     CCoeControl* ComponentControl( TInt aInd ) const;
     void SizeChanged( );
@@ -57,7 +57,7 @@
     void SetContainerWindowL(const CCoeControl& aContainer);
     TSize MinimumSize();
 
-public: // From CESMRField
+protected: // From CESMRField
     void InitializeL();
     void SetOutlineFocusL( TBool aFocus );
     void InternalizeL( MESMRCalEntry& aEntry );
@@ -65,13 +65,12 @@
     void GetCursorLineVerticalPos(TInt& aUpper, TInt& aLower);
     void ListObserverSet( );
     TBool ExecuteGenericCommandL( TInt aCommand );
-    void HandleLongtapEventL( const TPoint& aPosition );
 
-public: // From MEikEdwinSizeObserver
+protected: // From MEikEdwinSizeObserver
     TBool HandleEdwinSizeEventL(CEikEdwin* aEdwin, TEdwinSizeEvent aType,
             TSize aDesirableEdwinSize );
 
-public: // From MESMRRichTextObserver
+protected: // From MESMRRichTextObserver
     TBool HandleRichTextLinkSelection(const CESMRRichTextLink* aLink );
 
 private: // Implementation
@@ -87,14 +86,14 @@
     CMRLabel* iTitle;
     // Not own: Container for all the attendees
     CESMRRichTextViewer* iRichTextViewer;
-    // Size of the field when after field has expanded.
+    // Size of the field after field has been expanded.
     TSize iExpandedSize;
     // Size of the title
     TSize iTitleSize;
     // Inofrmation about attendee type
     CCalAttendee::TCalRole iRole;
     // Not owned. Attendee list.
-    RPointerArray<CCalAttendee> iCalAttendees;    
+    RPointerArray<CCalAttendee> iCalAttendees;
     // Show all attendees.
     TBool iShowAllAttendees;
     };
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerfromfield.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/cesmrviewerfromfield.h	Tue May 11 15:57:15 2010 +0300
@@ -35,7 +35,7 @@
  * Field for showing the "from" information. In other words this field shows
  * that who sent/organized this meeting request.
  */
-NONSHARABLE_CLASS( CESMRViewerFromField ) : public CESMRField, 
+NONSHARABLE_CLASS( CESMRViewerFromField ) : public CESMRField,
                                                    MEikEdwinSizeObserver
     {
     public:
@@ -45,39 +45,38 @@
          * @return New viewer from field object
          */
         static CESMRViewerFromField* NewL( );
-    
+
         /**
          * C++ Destructor.
          */
         ~CESMRViewerFromField( );
-    
-    public: // From CESMRField
+
+    protected: // From CESMRField
         void InternalizeL( MESMRCalEntry& aEntry );
         void InitializeL();
         TBool ExecuteGenericCommandL( TInt aCommand );
         void SetOutlineFocusL( TBool aFocus );
-        void HandleLongtapEventL( const TPoint& aPosition );
-    
-    public: // From CCoeControl
+
+    protected: // From CCoeControl
         TKeyResponse OfferKeyEventL(
-                const TKeyEvent& aEvent, 
+                const TKeyEvent& aEvent,
                 TEventCode aType );
         TInt CountComponentControls() const;
         CCoeControl* ComponentControl( TInt aInd ) const;
         void SizeChanged();
         TSize MinimumSize();
         void SetContainerWindowL(const CCoeControl& aContainer);
-        
-    public: // From MEikEdwinSizeObserver
-        TBool HandleEdwinSizeEventL( 
-                CEikEdwin* aEdwin, 
+
+    protected: // From MEikEdwinSizeObserver
+        TBool HandleEdwinSizeEventL(
+                CEikEdwin* aEdwin,
                 TEdwinSizeEvent aType,
                 TSize aSize );
-    
+
     private: // Implementation
         CESMRViewerFromField( );
         void ConstructL( );
-    
+
     private: // data
         // Not own: Actual text of this field, not owned
         CESMRRichTextViewer* iRichTextViewer;
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/resmrpluginextensionstatic.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/inc/resmrpluginextensionstatic.h	Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
 
 #include <e32base.h>
 //<cmail>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
 //</cmail>
 
 class TESMRPluginExtensionData;
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/CESMRFieldBuilderPluginExtension.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,9 +29,9 @@
 #include "cesmrresponsefield.h"
 #include "cesmrviewerfromfield.h"
 #include "cesmrfieldbuilderinterface.h"
-#include "CFSMailCommon.h"
+#include "cfsmailcommon.h"
 
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 
 // DEBUG
 #include "emailtrace.h"
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrattendeefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrattendeefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -17,7 +17,7 @@
 #include "cesmrattendeefield.h"
 //<cmail>
 #include "esmrcommands.h"
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
 //</cmail>
 #include "cesmrncspopuplistbox.h"
 #include "cesmrncsemailaddressobject.h"
@@ -31,9 +31,9 @@
 #include "cmrimage.h"
 #include "cmrbutton.h"
 
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <calentry.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <esmrgui.rsg>
 #include <aknbutton.h>
 #include <gulicon.h>
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsitem.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsitem.cpp	Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
 #include "cesmrclsitem.h"// CESMRClsItem
 
 #include "esmrfieldbuilderdef.h"
-#include <mvpbkcontactlink.h>
+#include <MVPbkContactLink.h>
 
 // ======== MEMBER FUNCTIONS ========
 
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclslistshandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclslistshandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -20,20 +20,20 @@
 
 #include <eikenv.h>                                 // CEikonEnv
 #include <centralrepository.h>                      // CRepository
-#include <aknfepinternalcrkeys.h>                   // KCRUidAknFep
-#include <cpbkcontactengine.h>                      // CPbkContactEngine
-#include <cpbkcontactitem.h>                        // CPbkContactItem, TPbkContactItemField
+#include <AknFepInternalCRKeys.h>                   // KCRUidAknFep
+#include <CPbkContactEngine.h>                      // CPbkContactEngine
+#include <CPbkContactItem.h>                        // CPbkContactItem, TPbkContactItemField
 #include <aknnotewrappers.h>                        // CAknErrorNote
 //<cmail>
-#include "CFSMailBox.h"                             // cfsmailbox
+#include "cfsmailbox.h"                             // cfsmailbox
 //</cmail>
-#include <cpsrequesthandler.h>
-#include <cpssettings.h>
-#include <cpcsdefs.h>
-#include <vpbkeng.rsg>
+#include <CPsRequestHandler.h>
+#include <CPsSettings.h>
+#include <CPcsDefs.h>
+#include <VPbkEng.rsg>
 #include <e32const.h>                               // TLanguage
 
-#include <cvpbkcontactmanager.h>
+#include <CVPbkContactManager.h>
 
 #include "mesmrclslistsobserver.h"
 #include "cesmrclsmatchobserver.h"
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsmatchobserver.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrclsmatchobserver.cpp	Tue May 11 15:57:15 2010 +0300
@@ -22,17 +22,17 @@
 #include "esmrfieldbuilderdef.h"
 
 // for PCS support
-#include <cpsrequesthandler.h>
-#include <cpssettings.h>
-#include <cpsquery.h>
-#include <cpsqueryitem.h>
-#include <cpcsdefs.h>
-#include <mvpbkcontactlink.h>
-#include <cvpbkcontactmanager.h>
+#include <CPsRequestHandler.h>
+#include <CPsSettings.h>
+#include <CPsQuery.h>
+#include <CPsQueryItem.h>
+#include <CPcsDefs.h>
+#include <MVPbkContactLink.h>
+#include <CVPbkContactManager.h>
 #include <aknnotewrappers.h>
 #include <centralrepository.h>                          // CRepository
-#include <aknfepinternalcrkeys.h>                       // KCRUidAknFep, KAknFepPredTxtFlag
-#include <vpbkeng.rsg>
+#include <AknFepInternalCRKeys.h>                       // KCRUidAknFep, KAknFepPredTxtFlag
+#include <VPbkEng.rsg>
 
 //Constants
 
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrconflictpopup.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrconflictpopup.cpp	Tue May 11 15:57:15 2010 +0300
@@ -18,8 +18,8 @@
 #include "mesmrcalentry.h"
 #include "mesmrmeetingrequestentry.h"
 
-#include <akninfopopupnotecontroller.h>
-#include <stringloader.h>
+#include <AknInfoPopupNoteController.h>
+#include <StringLoader.h>
 #include <eikenv.h>
 #include <esmrgui.rsg>
 #include <avkon.rsg>
@@ -230,10 +230,6 @@
             CEikonEnv::Static()-> // codescanner::eikonenvstatic
                 HandleError(error);
             }
-        
-        // TODO: use XML layout data. Use this one popup_preview_text_window
-        /*iNote->SetPositionAndAlignment( CESMRLayoutManager::ConflictPopupPosition(),
-                EHLeftVCenter );*/
         iNote->ShowInfoPopupNote();
     }
 
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrinputmodeobserver.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrinputmodeobserver.cpp	Tue May 11 15:57:15 2010 +0300
@@ -21,10 +21,10 @@
 #include "cesmrclslistshandler.h"
 
 #include <e32cmn.h>                             // TUid
-#include <aknfepinternalcrkeys.h>               // KCRUidAknFep, KAknFepPredTxtFlag
+#include <AknFepInternalCRKeys.h>               // KCRUidAknFep, KAknFepPredTxtFlag
 #include <centralrepository.h>                  // CRepository
 
-#include <cpcsdefs.h>                           // PCS TKeyboardModes enum
+#include <CPcsDefs.h>                           // PCS TKeyboardModes enum
 #include <eikenv.h>
 
 // Unnamed namespace for local definitions
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncsaifeditor.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncsaifeditor.cpp	Tue May 11 15:57:15 2010 +0300
@@ -18,12 +18,12 @@
 #include "emailtrace.h"
 #include "cesmrncsaifeditor.h"
 
-#include <aknsdrawutils.h>
+#include <AknsDrawUtils.h>
 #include <s32mem.h>
 #include <txtrich.h>
 #include <baclipb.h>
-#include <ptidefs.h>
-#include <stringloader.h>
+#include <PtiDefs.h>
+#include <StringLoader.h>
 #include <eikedwin.h>
 #include <txtclipboard.h>
 
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncseditor.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncseditor.cpp	Tue May 11 15:57:15 2010 +0300
@@ -22,13 +22,13 @@
 #include <avkon.hrh>
 #include <aknenv.h>         // CAknEnv
 #include <txtrich.h>
-#include <aknutils.h>       // AknLayoutUtils
+#include <AknUtils.h>       // AknLayoutUtils
 #include <txtglobl.h>
 
-#include <aknsconstants.h>
-#include <aknsutils.h>
-#include <aknsskininstance.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsConstants.h>
+#include <AknsUtils.h>
+#include <AknsSkinInstance.h>
+#include <AknsBasicBackgroundControlContext.h>
 
 
 // ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncspopuplistbox.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrncspopuplistbox.cpp	Tue May 11 15:57:15 2010 +0300
@@ -22,11 +22,11 @@
 #include "nmrcolormanager.h"
 
 #include <eikclbd.h>
-#include <aknslayeredbackgroundcontrolcontext.h>
-#include <stringloader.h>                       // StringLoader
+#include <AknsLayeredBackgroundControlContext.h>
+#include <StringLoader.h>                       // StringLoader
 #include <ct/rcpointerarray.h>
 //text truncation
-#include <aknbiditextutils.h>//line wrapping and mirroring
+#include <AknBidiTextUtils.h>//line wrapping and mirroring
 #include <aknlayoutscalable_apps.cdl.h> //xml layout data for applications
 #include <aknlayoutscalable_avkon.cdl.h> //xml layout data of avkon components
 #include <esmrgui.rsg>
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrresponsefield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrresponsefield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -25,7 +25,7 @@
 
 #include "cesmrlistquery.h"
 #include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <caluser.h>
 
 // DEBUG
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackingfieldlabel.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackingfieldlabel.cpp	Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
 #include <avkon.hrh>
 #include <caluser.h>
 #include <calentry.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <esmrgui.rsg>
 
 // ======== MEMBER FUNCTIONS ========
@@ -76,11 +76,7 @@
 void CESMRTrackingFieldLabel::InitializeL()
     {
     FUNC_LOG;
-    // TODO: Do not use old layout manager anymore
-    //iTitleSize = iLayout->FieldSize ( EESMRFieldAttendeeLabel );
-    
-    // TODO: use XML Data
-    //iTitle->SetFont( iLayout->Font (iCoeEnv, EESMRFieldAttendeeLabel ) );
+
     }
 
 // ---------------------------------------------------------------------------
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackstatus.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrtrackstatus.cpp	Tue May 11 15:57:15 2010 +0300
@@ -32,11 +32,11 @@
 #include <calentry.h>
 #include <caluser.h>
 #include <eikenv.h>
-#include <stringloader.h>
-#include <aknsutils.h>
-#include <aknutils.h>
-#include <aknsconstants.h>
-#include <aknbiditextutils.h>
+#include <StringLoader.h>
+#include <AknsUtils.h>
+#include <AknUtils.h>
+#include <AknsConstants.h>
+#include <AknBidiTextUtils.h>
 #include <esmrgui.rsg>
 #include <data_caging_path_literals.hrh>
 #include <e32cmn.h>
@@ -45,10 +45,6 @@
 // DEBUG
 #include "emailtrace.h"
 
-// TODO: THIS WHOLE CLASS NEEDS TO BE REIMPLEMENTED USING XML LAYOUT DATA
-// IF THIS IS TAKEN INTO USE
-
-
 // ======== MEMBER FUNCTIONS ========
 
 // ---------------------------------------------------------------------------
@@ -142,18 +138,6 @@
             }
         iAddress = attendee[currentIndex]->Address().AllocL();
         }
-
-    // TODO: set font with XML data
-    //const CFont* font = iLayout->Font (iCoeEnv, iFieldId );        
-    //TInt maxLineWidth = iLabel->Size().iWidth;        
-    //maxLineWidth -= KIconSize.iWidth;
-    
-    //HBufC* clippedTextHBufC = ClipTextLC( text, *font, maxLineWidth );
-    //TPtr clippedText = clippedTextHBufC->Des();
-    //clippedText.Trim();
-    //iLabel->SetTextL( clippedText );
-    //CleanupStack::PopAndDestroy( clippedTextHBufC );
-    //clippedTextHBufC = NULL;
     
     NMRBitmapManager::TMRBitmapId bitmapId;
     
@@ -303,29 +287,10 @@
 
     if( aFocused )
         {
-        // TODO: correct this
         User::LeaveIfError( 
                 NMRBitmapManager::GetSkinBasedBitmap( 
                         NMRBitmapManager::EMRBitmapRightClickArrow, 
                             iActionMenuIcon, iActionMenuIconMask, TSize(20, 20) ) );
-
-        // TODO: USE XML LAYOUT DATA AND CMRIMAGE
-        // Even if creating mask failed, bitmap can be used (background is just not displayed correctly)
-        /*if( iActionMenuIcon )
-            {
-            iIcon = new (ELeave) CEikImage;
-            iIcon->SetPictureOwnedExternally(ETrue);
-            iIcon->SetPicture( iActionMenuIcon, iActionMenuIconMask );
-
-            TRect rect = Rect ( );*/
-            
-            // TODO: use layout data 
-            /*TInt iconTopMargin = ( rect.Height() - KIconSize.iHeight ) / 2;
-            TPoint iconPos( rect.iBr.iX - KIconSize.iWidth - KIconBorderMargin,
-                                rect.iBr.iY - iconTopMargin - KIconSize.iHeight);
-            iIcon->SetPosition ( iconPos );
-            iIcon->SetSize ( KIconSize );*/           
-            //}
         }
     }
 
@@ -340,14 +305,6 @@
     if ( iIcon )
         {
         TRect rect = Rect ( );
-        // TODO: use XML layout
-        /*
-        TInt iconTopMargin = ( rect.Height() - KIconSize.iHeight ) / 2;
-        TPoint iconPos( rect.iBr.iX - KIconSize.iWidth - KIconBorderMargin,
-                            rect.iBr.iY - iconTopMargin - KIconSize.iHeight);
-
-        iIcon->SetPosition ( iconPos );
-        iIcon->SetSize ( KIconSize );*/
         }
     }
 
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerattendeesfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerattendeesfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -251,10 +251,10 @@
     TRect bgRect( 0, 0, 0, 0 );
     if( iCalAttendees.Count() > 1 )
     	{
-    	bgRect.SetRect( 
-    			TPoint( viewerRect.iTl.iX, 
-    					viewerRect.iTl.iY - FocusMargin() ), 
-    					TPoint( viewerRect.iBr.iX, 
+    	bgRect.SetRect(
+    			TPoint( viewerRect.iTl.iX,
+    					viewerRect.iTl.iY - FocusMargin() ),
+    					TPoint( viewerRect.iBr.iX,
     							viewerRect.iBr.iY + FocusMargin() ) );
     	}
     else
@@ -268,11 +268,11 @@
     // Move focus rect so that it's relative to field's position.
     bgRect.Move( -Position() );
     SetFocusRect( bgRect );
-    
+
     iRichTextViewer->SetRect( viewerRect );
 
-    // Failures are ignored. 
-    TRAP_IGNORE( 
+    // Failures are ignored.
+    TRAP_IGNORE(
             iRichTextViewer->SetFontL( viewerLayoutText.Font() );
             if( iCalAttendees.Count() > 0 )
                 {
@@ -280,15 +280,15 @@
                 }
             iRichTextViewer->ApplyLayoutChangesL();
             );
-    
+
     // Update AttendeesList only if iRichTextViewer width was changed.
     // This happens when screen orientation changes e.g. This check
     // also prevents recursive calls to UpdateAttendeesListL since
     // it causes edwin size changed event.
     if ( iRichTextViewer->Size().iWidth != richTextViewerWidth )
         {
-        // Most of this case is screen orientation, in this case we need to 
-        // Record the index of focusing link, after updating link array, then 
+        // Most of this case is screen orientation, in this case we need to
+        // Record the index of focusing link, after updating link array, then
         // reset the focusing to original one.
         TInt focusingIndex = iRichTextViewer->GetFocusLink();
         // Ignore leave, there's nothing we can do if leave occurs.
@@ -360,7 +360,6 @@
     {
     // Parent rect will be list area later --> no need to calculate it manually.
     TRect parentRect = Parent()->Rect();
-    // TODO: Remove this after new list area is completed. See previous comment.
     TRect contentRect = NMRLayoutManager::GetLayoutRect(
             parentRect, NMRLayoutManager::EMRLayoutListArea ).Rect();
     // We have two lines;  title and richtextviewer.
@@ -408,21 +407,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CESMRViewerAttendeesField::HandleLongtapEventL
-// -----------------------------------------------------------------------------
-//
-void CESMRViewerAttendeesField::HandleLongtapEventL( const TPoint& aPosition )
-    {
-    FUNC_LOG;
-    
-    if ( iRichTextViewer->Rect().Contains( aPosition ) )
-        {
-        iRichTextViewer->LinkSelectedL();
-		HandleTactileFeedbackL();
-        }
-    }
-
-// -----------------------------------------------------------------------------
 // CESMRViewerAttendeesField::HandleEdwinSizeEventL
 // -----------------------------------------------------------------------------
 //
@@ -547,7 +531,6 @@
             NMRLayoutManager::EMRTextLayoutTextEditor );
     const CFont* font = text.Font();
 
-    // TODO: correct icon zise to correct one. Ask from UI specifier.
     TSize iconSize( 20, 20);
 
     TInt maxLineWidth = iRichTextViewer->LayoutWidth();
@@ -678,21 +661,21 @@
     FUNC_LOG;
     // Calculates the line spacing based on default one line layout data
     TInt lineSpacing( 0 );
-    
+
     TRect rect( Rect() );
-    
+
     TAknLayoutRect rowLayoutRect =
         NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 );
     TRect rowRect = rowLayoutRect.Rect();
 
-    TAknLayoutText labelLayout = 
-     NMRLayoutManager::GetLayoutText( 
+    TAknLayoutText labelLayout =
+     NMRLayoutManager::GetLayoutText(
              rect, NMRLayoutManager::EMRTextLayoutTextEditor );
-    
+
     TRect defaultTextRect = labelLayout.TextRect();
-    
+
     TInt difference = rowRect.Height() - defaultTextRect.Height();
-    
+
     lineSpacing = difference * 2;
 
     return lineSpacing;
@@ -707,28 +690,28 @@
     FUNC_LOG;
     // Calculates focus margin based on default one line layout data
     TInt focusMagin( 0 );
-    
+
     TRect rect( Rect() );
-    
+
     TAknLayoutRect rowLayoutRect =
         NMRLayoutManager::GetFieldRowLayoutRect( rect, 1 );
     TRect rowRect = rowLayoutRect.Rect();
 
-    TAknLayoutText labelLayout = 
-     NMRLayoutManager::GetLayoutText( 
+    TAknLayoutText labelLayout =
+     NMRLayoutManager::GetLayoutText(
              rect, NMRLayoutManager::EMRTextLayoutTextEditor );
-    
+
     TRect defaultTextRect = labelLayout.TextRect();
-    
-    TAknLayoutRect bgLayoutRect = 
-        NMRLayoutManager::GetLayoutRect( 
+
+    TAknLayoutRect bgLayoutRect =
+        NMRLayoutManager::GetLayoutRect(
                 rect, NMRLayoutManager::EMRLayoutTextEditorBg );
     TRect defaultBgRect( bgLayoutRect.Rect() );
 
     TInt difference = defaultBgRect.Height() - defaultTextRect.Height();
-    
+
     focusMagin = TReal( difference / 2 );
-    
+
     return focusMagin;
     }
 
--- a/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerfromfield.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrviewerfromfield.cpp	Tue May 11 15:57:15 2010 +0300
@@ -25,10 +25,10 @@
 
 #include <calentry.h>
 #include <caluser.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <eikenv.h>
 #include <avkon.hrh>
-#include <aknutils.h>
+#include <AknUtils.h>
 #include <esmrgui.rsg>
 
 // DEBUG
@@ -73,7 +73,7 @@
             Rect(), NMRLayoutManager::EMRTextLayoutMultiRowTextEditor );
     iRichTextViewer->SetFontL( editorRect.Font() );
     iRichTextViewer->ApplyLayoutChangesL();
-    
+
     const CFont* topicFont =
         AknLayoutUtils::FontFromId( EAknLogicalFontPrimaryFont, NULL );
     iFieldTopic->SetFont( topicFont );
@@ -157,9 +157,9 @@
             editorRect.TextRect().iTl.iX, editorRect.TextRect().iTl.iY );
     TSize prefSize( editorRect.TextRect().Width(), iExpandedSize.iHeight );
     TRect viewerRect( tlPoint, prefSize );
-    // Failures are ignored. 
-    TRAP_IGNORE( 
-            // Try setting font 
+    // Failures are ignored.
+    TRAP_IGNORE(
+            // Try setting font
             iRichTextViewer->SetFontL( editorRect.Font() );
             // Try applying changes
             iRichTextViewer->ApplyLayoutChangesL();
@@ -346,21 +346,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// CESMRViewerFromField::HandleLongtapEventL
-// ---------------------------------------------------------------------------
-//
-void CESMRViewerFromField::HandleLongtapEventL( const TPoint& aPosition )
-    {
-    FUNC_LOG;
-    
-    if ( iRichTextViewer->Rect().Contains( aPosition ) )
-        {
-        iRichTextViewer->LinkSelectedL();
-		HandleTactileFeedbackL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
 // CESMRViewerFromField::SetContainerWindowL()
 // ---------------------------------------------------------------------------
 //
--- a/meetingrequest/mrgui/mrlocationplugin/inc/cesmrlocationpluginimpl.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrlocationplugin/inc/cesmrlocationpluginimpl.h	Tue May 11 15:57:15 2010 +0300
@@ -22,7 +22,7 @@
 
 #include <e32base.h>
 //<cmail>
-#include "aknserverapp.h"
+#include "AknServerApp.h"
 //</cmail>
 
 #include "cesmrlocationplugin.h"
--- a/meetingrequest/mrgui/mrlocationplugin/src/cesmrlocationpluginimpl.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/mrlocationplugin/src/cesmrlocationpluginimpl.cpp	Tue May 11 15:57:15 2010 +0300
@@ -23,8 +23,8 @@
 #include <mnproviderfinder.h>
 #include <mnprovider.h>
 #include <mnmapview.h>
-#include <epos_cposlandmark.h>
-#include <stringloader.h>
+#include <EPos_CPosLandmark.h>
+#include <StringLoader.h>
 #include <esmrgui.rsg>
 #include <ct/rcpointerarray.h>
 #include <calentry.h>
--- a/meetingrequest/mrgui/src/cesmraddressinfohandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmraddressinfohandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -20,22 +20,22 @@
 #include "cesmraddressinfohandler.h"
 
 #include <eikenv.h>
-#include <aiwservicehandler.h>
-#include <aiwcontactselectiondatatypes.h>
-#include <stringloader.h>
+#include <AiwServiceHandler.h>
+#include <AiwContactSelectionDataTypes.h>
+#include <StringLoader.h>
 #include <aknnotewrappers.h>
 #include <calentry.h>
 #include <esmrgui.rsg>
 
 //Virtual Phonebook
-#include <cvpbkcontactmanager.h>
-#include <mvpbkcontactoperationbase.h>
-#include <mvpbkstorecontact.h>
-#include <mvpbkfieldtype.h>
-#include <vpbkeng.rsg>
-#include <cvpbkcontactfielditerator.h>
-#include <mvpbkcontactfieldtextdata.h>
-#include <mvpbkcontactlink.h>
+#include <CVPbkContactManager.h>
+#include <MVPbkContactOperationBase.h>
+#include <MVPbkStoreContact.h>
+#include <MVPbkFieldType.h>
+#include <VPbkEng.rsg>
+#include <CVPbkContactFieldIterator.h>
+#include <MVPbkContactFieldTextData.h>
+#include <MVPbkContactLink.h>
 
 #include "cesmrdynamicitemselectionlist.h"
 #include "cesmrlocationpluginhandler.h"
--- a/meetingrequest/mrgui/src/cesmrdynamicitemselectionlist.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrdynamicitemselectionlist.cpp	Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
 #include "cesmrdynamicitemselectionlist.h"
 
 #include <aknlists.h>
-#include <aknpopup.h>
+#include <aknPopup.h>
 #include <bautils.h>
 #include <esmrgui.rsg>
 #include <data_caging_path_literals.hrh>
--- a/meetingrequest/mrgui/src/cesmreditordialog.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmreditordialog.cpp	Tue May 11 15:57:15 2010 +0300
@@ -51,21 +51,21 @@
 #include <eikappui.h>
 #include <avkon.hrh>
 #include <eikmenup.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 #include <layoutmetadata.cdl.h>
-#include <akndef.h>
-#include <aknutils.h>
-#include <aknindicatorcontainer.h>
+#include <AknDef.h>
+#include <AknUtils.h>
+#include <AknIndicatorContainer.h>
 #include <aknenv.h>
-#include <akneditstateindicator.h>
+#include <aknEditStateIndicator.h>
 #include <aknnotewrappers.h>
-#include <documenthandler.h>
-#include <npdapi.h>
+#include <DocumentHandler.h>
+#include <NpdApi.h>
 #include <calentry.h>
 #include <calattachment.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <akntitle.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 
 // DEBUG
 #include "emailtrace.h"
@@ -1811,7 +1811,7 @@
 void CESMREditorDialog::DynInitToolbarL ( TInt /*aResourceId*/,
         CAknToolbar* /*aToolbar*/ )
     {
-    // TODO: Not implemented yet
+
     }
 
 // ---------------------------------------------------------------------------
--- a/meetingrequest/mrgui/src/cesmrlocationpluginhandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrlocationpluginhandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,16 +19,16 @@
 #include "esmrconfig.hrh"
 
 #include <calentry.h>
-#include <stringloader.h>
-#include <aknquerydialog.h>
+#include <StringLoader.h>
+#include <AknQueryDialog.h>
 #include <esmrgui.rsg>
 //<cmail>
 #include "cesmrurlparserplugin.h"
 //</cmail>
-#include <clmklandmarkselectordlg.h>
-#include <tlmkitemiddbcombiinfo.h>
-#include <epos_cposlandmark.h>
-#include <aknutils.h>
+#include <CLmkLandmarkSelectorDlg.h>
+#include <TLmkItemIdDbCombiInfo.h>
+#include <EPos_CPosLandmark.h>
+#include <AknUtils.h>
 #include <ct/rcpointerarray.h>
 
 #ifdef RD_USE_MYLOCATIONUI
--- a/meetingrequest/mrgui/src/cesmrmeetingtimevalidator.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrmeetingtimevalidator.cpp	Tue May 11 15:57:15 2010 +0300
@@ -30,7 +30,7 @@
 #include "mesmrfieldeventqueue.h"
 #include "mmrabsolutealarmcontroller.h"
 #include "cesmrgenericfieldevent.h"
-#include "cesmrrecurrenceinfoHandler.h"
+#include "cesmrrecurrenceinfohandler.h"
 
 // Unnamed namespace for local definitions
 namespace { // codescanner::namespace
--- a/meetingrequest/mrgui/src/cesmrresponsedialog.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrresponsedialog.cpp	Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
 #include <eikcolib.h>
 #include <eikappui.h>
 #include <avkon.hrh>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 #include <eikedwin.h>
 #include <esmrgui.rsg>
 #include <calentry.h>
--- a/meetingrequest/mrgui/src/cesmrtitlepane.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrtitlepane.cpp	Tue May 11 15:57:15 2010 +0300
@@ -22,14 +22,14 @@
 //<cmail>
 #include "esmrdef.h"
 //</cmail>
-#include <akniconutils.h>
+#include <AknIconUtils.h>
 #include <gulcolor.h>
-#include <aknutils.h>
-#include <aknsconstants.h>
+#include <AknUtils.h>
+#include <AknsConstants.h>
 #include <aknsconstants.hrh>
-#include <aknsutils.h>
+#include <AknsUtils.h>
 #include <data_caging_path_literals.hrh>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
 
 #include "emailtrace.h"
 
--- a/meetingrequest/mrgui/src/cesmrtrackingview.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrtrackingview.cpp	Tue May 11 15:57:15 2010 +0300
@@ -30,19 +30,19 @@
 
 #include <eiklabel.h>
 #include <avkon.hrh>
-#include <magnentryui.h>
-#include <stringloader.h>
+#include <MAgnEntryUi.h>
+#include <StringLoader.h>
 #include <gulcolor.h>
 #include <eikimage.h>
 #include <esmrgui.rsg>
-#include <akniconutils.h>
+#include <AknIconUtils.h>
 #include <eikenv.h>
-#include <aknsconstants.h>
-#include <aknutils.h>
-#include <aknsdrawutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
+#include <AknsDrawUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <hlplch.h>
-#include <akniconarray.h>
+#include <AknIconArray.h>
 #include <eikclbd.h>
 #include <calentry.h>
 #include <caluser.h>
--- a/meetingrequest/mrgui/src/cesmrtrackingviewdialog.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrtrackingviewdialog.cpp	Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 *  Description : ESMR tracking view dialog
-*  Version     : %version: e002sa33#15 %
+*  Version     : %version: e002sa32#15.1.1 %
 *
 */
 
@@ -20,10 +20,10 @@
 #include "cesmrtrackingviewdialog.h"
 
 // SYSTEM INCLUDE
-#include <aknutils.h>
-#include <stringloader.h>
+#include <AknUtils.h>
+#include <StringLoader.h>
 #include <calentry.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 //<cmail>
 #include "cesmrpolicy.h"
 //</cmail>
--- a/meetingrequest/mrgui/src/cesmruifactory.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmruifactory.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,7 +29,7 @@
 #include <esmrgui.rsg>
 #include <e32base.h>
 #include <eikenv.h>
-#include <coneresloader.h>
+#include <ConeResLoader.h>
 #include <data_caging_path_literals.hrh>
 #include <bautils.h>
 
--- a/meetingrequest/mrgui/src/cesmrview.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrview.cpp	Tue May 11 15:57:15 2010 +0300
@@ -15,10 +15,6 @@
 *
 */
 
-// <cmail> custom sw help files not avilable in Cmail
-//#include <fscale.hlp.hrh> //for custom_sw helps
-//#include <fsmr.hlp.hrh> //for custom_sw helps
-// </cmail>
 #include "cesmrview.h"
 #include "mesmrmeetingrequestentry.h"
 #include "esmrinternaluid.h"
@@ -40,17 +36,17 @@
 
 #include <eiklabel.h>
 #include <avkon.hrh>
-#include <magnentryui.h>
-#include <stringloader.h>
+#include <MAgnEntryUi.h>
+#include <StringLoader.h>
 #include <gulcolor.h>
 #include <eikimage.h>
 #include <esmrgui.rsg>
-#include <akniconutils.h>
+#include <AknIconUtils.h>
 #include <eikenv.h>
-#include <aknsconstants.h>
-#include <aknutils.h>
-#include <aknsdrawutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsConstants.h>
+#include <AknUtils.h>
+#include <AknsDrawUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <hlplch.h>
 #include <csxhelp/cmail.hlp.hrh>
 #include <touchfeedback.h>
@@ -62,10 +58,6 @@
 
 #include "emailtrace.h"
 
-
-// <cmail> Removed profiling. </cmail>
-
-
 // ======== MEMBER FUNCTIONS ========
 
 // ---------------------------------------------------------------------------
@@ -214,7 +206,7 @@
                 delete iAttachmentIndicator;
                 iAttachmentIndicator = NULL;
                 
-                ReLayout();
+                SizeChanged();
                 }            
             }
             break;
@@ -317,9 +309,7 @@
                 else
                     {
                     // Only viewer from Mail supported
-                    // TODO: Change to KFS_VIEWER_HLP_MR_RECEIVED
-                    // when help id is released on wk9 platform
-                    LaunchHelpL( KFS_VIEWER_HLP_MEETING_REQ_VIEW );
+                    LaunchHelpL( KFS_VIEWER_HLP_MR_RECEIVED );
                     }
                 }
             else if ( mrEntry->RoleL() == EESMRRoleOrganizer )
@@ -664,8 +654,13 @@
         {
         return;
         }
-            
-    TRect containerRect( Rect() );
+    
+    // Remove possible intersection with toolbar from container rect
+    TRect containerRect( ContainerRect() );
+    
+    // Now toolbar does not intersect with view, so it must not be taken
+    // into account when calculating other component layouts.
+    containerRect.SetRect( TPoint( 0, 0 ), containerRect.Size() );
     
     // Get the rect of stripe.
     TAknLayoutRect stripeLayoutRect =
@@ -682,14 +677,11 @@
         TRect listareaRect( listareaLayoutRect.Rect() );
 
         // List panes default rect needs to be modified due to
-        // possible toolbar, scrollbar and calendar indication stripe
+        // scrollbar and calendar indication stripe
         
         // Remove stripe width from list pane width
         listareaRect.iTl.iX += iStripeRect.Width();
         
-        // Remove toolbar width from list pane width
-        listareaRect.iBr.iX -= iToolbar.Rect().Width();
-        
         if( iScrollBar )
            {
            TAknLayoutRect scrollareaLayoutRect =
@@ -699,9 +691,6 @@
            // Scroll bar's height is always the same as listpane's height
            scrollareaRect.SetHeight( listareaRect.Height() );
            
-           // Scrollbar needs to be moved to the left side of possible
-           // toolbar
-           scrollareaRect.Move( -iToolbar.Rect().Width(), 0 );
            iScrollBar->SetRect( scrollareaRect );
            
            // Remove scroll bar width from list area's width
@@ -744,8 +733,7 @@
                     scrollWidth = iScrollBar->Rect().Width();
                     }
                 
-                naviArrowRightRect.Move( 
-                        -( iToolbar.Rect().Width() + scrollWidth ), 0 );
+                naviArrowRightRect.Move( scrollWidth, 0 );
     
                 iNaviArrowRight->SetRect( naviArrowRightRect );
                 }
@@ -766,9 +754,7 @@
         
         // The listPane's area should be:
         // X: Should subtract the width of stripe
-        // Y: Should subtract the height of MRToolbar
         listareaRect.iTl.iX += iStripeRect.Width();
-        listareaRect.iBr.iY -= iToolbar.Rect().Height();
                 
         iListPane->SetRect( listareaRect );
         
@@ -799,10 +785,6 @@
                 // stripe width in portrait
                 naviArrowLeftRect.Move( iStripeRect.Width(), 0 );
                 
-                // Left arrow needs to be moved up the amount of
-                // possible toolbar height in portrait
-                naviArrowLeftRect.Move( 0, -iToolbar.Rect().Height() );
-                
                 iNaviArrowLeft->SetRect( naviArrowLeftRect );
                 }
             
@@ -817,11 +799,6 @@
                 // stripe width in portrait
                 naviArrowRightRect.Move( iStripeRect.Width(), 0 );
                 
-                // Right arrow needs to be moved up the amount of
-                // possible toolbar height in portrait
-                naviArrowRightRect.Move( 0, -iToolbar.Rect().Height() );
-                
-                
                 iNaviArrowRight->SetRect( naviArrowRightRect );
                 }
             }
@@ -996,7 +973,6 @@
         case KAknLocalZoomLayoutSwitch:
             {
             SizeChanged();
-            DrawNow();
             break;
             }
         default:
@@ -1108,16 +1084,6 @@
 	}
 
 // ---------------------------------------------------------------------------
-// CESMRView::ReLayout
-// ---------------------------------------------------------------------------
-//
-void CESMRView::ReLayout()
-    {
-    FUNC_LOG;
-    SizeChanged();
-    }
-
-// ---------------------------------------------------------------------------
 // CESMRView::ProcessEventL
 // ---------------------------------------------------------------------------
 //
@@ -1161,7 +1127,7 @@
             iAttachmentIndicator->SetTextL( value->StringValue() );            
             iAttachmentIndicator->MakeVisible( ETrue );
             
-            ReLayout();        
+            SizeChanged();        
             }
         }
     }
@@ -1172,7 +1138,7 @@
 //
 TRect CESMRView::CalculateAttachmentIndicatorLayout()
     {
-    TRect containerRect( Rect() );
+    TRect containerRect( ContainerRect() );
     
     TAknLayoutRect naviArrowLeftLayoutRect =
             NMRLayoutManager::GetLayoutRect( containerRect,
@@ -1194,20 +1160,17 @@
             scrollWidth = iScrollBar->Rect().Width();
             }
         
-        naviArrowRightRect.Move( 
-                -( iToolbar.Rect().Width() + scrollWidth ), 0 );    
+        naviArrowRightRect.Move( scrollWidth, 0 );    
         }
     else
         {
         // Left arrow needs to be moved right the amount of
         // stripe width in portrait
         naviArrowLeftRect.Move( iStripeRect.Width(), 0 );
-        naviArrowLeftRect.Move( 0, -iToolbar.Rect().Height() );
-
+        
         TRect naviArrowRightRect = naviArrowRightLayoutRect.Rect();
         
         naviArrowRightRect.Move( iStripeRect.Width(), 0 );
-        naviArrowRightRect.Move( 0, -iToolbar.Rect().Height() );        
         }   
 
     // Get height for one row 
@@ -1217,9 +1180,6 @@
     TRect rowRect( rowLayout.Rect() );
     
     TRect attachmentIndicatorRect;
-    /*attachmentIndicatorRect.iTl = 
-            TPoint( naviArrowLeftRect.iBr.iX, 
-                    naviArrowLeftRect.iBr.iY - rowRect.Height() ); */
     
     attachmentIndicatorRect.iTl = 
                 TPoint( naviArrowLeftRect.iBr.iX, 
@@ -1232,4 +1192,32 @@
     return attachmentIndicatorRect;
     }
 
+// ---------------------------------------------------------------------------
+// CESMRView::ContainerRect
+// ---------------------------------------------------------------------------
+//
+TRect CESMRView::ContainerRect() const
+    {
+    // Remove possible intersection with toolbar from container rect
+    TRect containerRect( PositionRelativeToScreen(), Rect().Size() );
+    TRect toolbar( iToolbar.Rect() );
+    if ( containerRect.Intersects( toolbar ) )
+        {
+        toolbar.Intersection( containerRect );
+        if ( Layout_Meta_Data::IsLandscapeOrientation() )
+            {
+            containerRect.SetWidth( containerRect.Width() - toolbar.Width() );
+            }
+        else
+            {
+            containerRect.SetHeight( containerRect.Height() - toolbar.Height() );
+            }
+        }
+    // Now toolbar does not intersect with view, so it must not be taken
+    // into account when calculating other component layouts.
+    containerRect.SetRect( TPoint( 0, 0 ), containerRect.Size() );
+    
+    return containerRect;
+    }
+
 // EOF
--- a/meetingrequest/mrgui/src/cesmrviewerdialog.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cesmrviewerdialog.cpp	Tue May 11 15:57:15 2010 +0300
@@ -54,18 +54,18 @@
 #include <eikenv.h>
 #include <eikappui.h>
 #include <avkon.hrh>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 #include <eikmenup.h>
 #include <calentry.h>
 #include <apgtask.h>
 #include <apmstd.h>
 #include <apgcli.h>
-#include <akndef.h>
-#include <aknutils.h>
-#include <stringloader.h>
+#include <AknDef.h>
+#include <AknUtils.h>
+#include <StringLoader.h>
 #include <eikspane.h>
 #include <e32keys.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <w32std.h>
 
 // DEBUG
@@ -196,7 +196,7 @@
         iTitlePane->Rollback();
         delete iTitlePane;
         }
-    
+
     delete iESMRSendUI;
     delete iLocationPluginHandler;
     delete iFeatures;
@@ -240,8 +240,8 @@
     iToolbar = CMRToolbar::NewL();
 
     TRect clientRect;
-    AknLayoutUtils::LayoutMetricsRect( 
-            AknLayoutUtils::EMainPane, 
+    AknLayoutUtils::LayoutMetricsRect(
+            AknLayoutUtils::EMainPane,
             clientRect );
 
     TBool responseReady(EFalse);
@@ -272,14 +272,14 @@
     // Give the strategy to the iView
 
     // storage ownership is transferred to CESMRView
-    iView = CESMRView::NewL( 
-            storage, 
-            *calEntry, 
-            clientRect, 
-            *iFocusStrategy, 
+    iView = CESMRView::NewL(
+            storage,
+            *calEntry,
+            clientRect,
+            *iFocusStrategy,
             *iToolbar,
             this );
-    
+
     iView->SetViewMode( EESMRViewMR );
 
     if ( calEntry->Entry().SummaryL().Length() == 0 )
@@ -335,7 +335,7 @@
             {
             iTitlePane = CESMRTitlePaneHandler::NewL( *iEikonEnv );
             }
-    
+
         HBufC* titleText = StringLoader::LoadLC( titleStringId, iCoeEnv );
         iTitlePane->SetNewTitle( titleText );
         CleanupStack::PopAndDestroy( titleText );
@@ -356,7 +356,7 @@
 
     // Needs to be constructed here
     ConstructToolbarL();
-    
+
     switch ( iInfoProvider.EntryL()->Type() )
     	{
     	case MESMRCalEntry::EESMRCalEntryMeetingRequest:
@@ -364,9 +364,9 @@
     		iView->InitialScrollL();
 
             MESMRMeetingRequestEntry* entry =
-                static_cast<MESMRMeetingRequestEntry*>( 
+                static_cast<MESMRMeetingRequestEntry*>(
                         iInfoProvider.EntryL() );
-    		
+
     		if ( entry->IsOpenedFromMail() )
     		    {
                 iView->SetNaviArrowStatus(
@@ -622,10 +622,10 @@
                         }
                     }
                 }
-            
-            // If entry is recurring, we want to ask from user, if 
+
+            // If entry is recurring, we want to ask from user, if
             // single instance or whole series will be forwarded
-            if( aCommand == EESMRCmdForwardAsMail && 
+            if( aCommand == EESMRCmdForwardAsMail &&
             		iInfoProvider.EntryL()->IsRecurrentEventL() )
             	{
 				SetRecurrenceModRuleL(
@@ -716,7 +716,7 @@
             {
             iView->ProcessEditorCommandL( EMRCmdHideAttachmentIndicator );
             }
-            break;            
+            break;
         default:
         	{
             if ( aCommand >= EESMRCmdActionMenuFirst &&
@@ -821,7 +821,7 @@
             res = HandleMRExitL( aButtonId );
             break;
             }
-            
+
         default:
             {
             if(iExitTriggered)
@@ -894,7 +894,7 @@
                 }
             }
         }
-    
+
     return retValue;
     }
 
@@ -931,7 +931,7 @@
         TInt /*aResourceId*/,
         CAknToolbar* /*aToolbar*/ )
 	{
-	// TODO: Not implemented yet
+
 	}
 
 // ---------------------------------------------------------------------------
@@ -1324,7 +1324,7 @@
             {
             const CESMRPolicy& currentPolicy(
                     iInfoProvider.PolicyProvider().CurrentPolicy() );
-            
+
             aMenuPane->SetItemDimmed(
                     EESMRCmdMailDelete,
                     !iCallback.IsCommandAvailable(
@@ -1537,7 +1537,7 @@
                 static_cast<MESMRBuilderExtension*>( plugin->ExtensionL(uid) );
 
         MESMRCalEntry* calEntry = iInfoProvider.EntryL();
-        
+
         if ( extension && MESMRCalEntry::EESMRCalEntryMeetingRequest == calEntry->Type())
             {
             // Static cast is safe here. We know for sure that entry is MR
@@ -1725,14 +1725,14 @@
 void CESMRViewerDialog::HandleFieldEventL( const MESMRFieldEvent& aEvent )
     {
     FUNC_LOG;
-    
+
     MESMRFieldEvent::TEventType type( aEvent.Type() );
-    
+
     if ( MESMRFieldEvent::EESMRFieldCommandEvent == type )
         {
         ProcessCommandEventL( aEvent );
         }
-    else if ( MESMRFieldEvent::EESMRFieldChangeEvent == type ) 
+    else if ( MESMRFieldEvent::EESMRFieldChangeEvent == type )
         {
         ProcessFieldEventL( aEvent );
         }
@@ -1822,7 +1822,7 @@
          mrEntry = static_cast<MESMRMeetingRequestEntry*>( calEntry );
 
          TBool openedFromEmail( mrEntry->IsOpenedFromMail() );
-         
+
          // If entry is opened from mail, contains remote attachments and
          // mailbox is MfE, we show the query.
          if ( openedFromEmail && mrEntry->ContainsRemoteAttachmentsL() &&
@@ -1856,28 +1856,28 @@
 void CESMRViewerDialog::ConstructToolbarL()
     {
     FUNC_LOG;
-    if( iInfoProvider.EntryL()->Type() == 
+    if( iInfoProvider.EntryL()->Type() ==
             MESMRCalEntry::EESMRCalEntryMeetingRequest )
         {
         MESMRMeetingRequestEntry* entry =
-            static_cast<MESMRMeetingRequestEntry*>( 
+            static_cast<MESMRMeetingRequestEntry*>(
                     iInfoProvider.EntryL() );
-        
-        if( !entry->OccursInPastL() && 
-                !entry->IsEntryOutOfDateL() && 
+
+        if( !entry->OccursInPastL() &&
+                !entry->IsEntryOutOfDateL() &&
                     !entry->IsMeetingCancelledL() )
             {
             if ( entry->RoleL()== EESMRRoleRequiredAttendee ||
                         entry->RoleL()== EESMRRoleOptionalAttendee )
                 {
-                TSize screenSize = 
+                TSize screenSize =
                         iEikonEnv->ScreenDevice()->SizeInPixels();
-            
+
                 TBool isVGA( EFalse );
-                if( ( screenSize.iHeight == KVGAOneSide || 
-                        screenSize.iWidth == KVGAOneSide ) && 
-                            ( screenSize.iHeight == KVGAOtherSide || 
-                              screenSize.iWidth == KVGAOtherSide ) && 
+                if( ( screenSize.iHeight == KVGAOneSide ||
+                        screenSize.iWidth == KVGAOneSide ) &&
+                            ( screenSize.iHeight == KVGAOtherSide ||
+                              screenSize.iWidth == KVGAOtherSide ) &&
                               screenSize.iHeight != screenSize.iWidth )
                     {
                     isVGA = ETrue;
@@ -1892,12 +1892,12 @@
                     iToolbar->InitializeToolbarL(
                             CMRToolbar::EMRViewerAttendee );
                     iToolbar->ShowToolbar( ETrue );
-                    
+
                     // Toolbar created, relayouting needed
-                    iView->ReLayout();
+                    SizeChanged();
                     }
                 }
-            }        
+            }
         }
     }
 
@@ -1908,7 +1908,7 @@
 void CESMRViewerDialog::ProcessCommandEventL( const MESMRFieldEvent& aEvent )
     {
     FUNC_LOG;
-    
+
     TInt* command = static_cast< TInt* >( aEvent.Param( 0 ) );
 
     switch ( *command )
@@ -1954,7 +1954,7 @@
             {
             break;
             }
-        }    
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -1963,8 +1963,8 @@
 //
 void CESMRViewerDialog::ProcessFieldEventL( const MESMRFieldEvent& aEvent )
     {
-    FUNC_LOG;    
+    FUNC_LOG;
     iView->ProcessEventL( aEvent );
     }
-    
+
 // EOF
--- a/meetingrequest/mrgui/src/cmrattachmentindicator.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrattachmentindicator.cpp	Tue May 11 15:57:15 2010 +0300
@@ -18,9 +18,9 @@
 #include "cmrattachmentindicator.h"
 
 #include <biditext.h>
-#include <aknutils.h>
-#include <akniconutils.h>
-#include <aknbiditextutils.h>
+#include <AknUtils.h>
+#include <AknIconUtils.h>
+#include <AknBidiTextUtils.h>
 
 namespace
 {
--- a/meetingrequest/mrgui/src/cmrfieldcontainer.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrfieldcontainer.cpp	Tue May 11 15:57:15 2010 +0300
@@ -776,7 +776,6 @@
         // Field is in edit mode
         if( field->FieldMode() == EESMRFieldModeEdit )
             {
-            // TODO: CORRECT if broken
             TInt viewBottom( parentRect.iBr.iY );
 
             TInt fieldUpper( 0 );
@@ -798,7 +797,7 @@
                 // scroll amount.
                 if ( iFocusedFieldIndex == iFactory.Count()-1 )
                     {
-                    px += KVerticalScrollMargin; // TODO: Fix me! K-value must be removed.
+                    px += KVerticalScrollMargin;
                     }
                 
                 // Scrollbar and physics update is done here
--- a/meetingrequest/mrgui/src/cmrlistpane.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrlistpane.cpp	Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
 #include "nmrlayoutmanager.h"
 
 #include <eikscrlb.h>
-#include <aknutils.h>
+#include <AknUtils.h>
 #include <touchfeedback.h>
 
 //DEBUG
@@ -65,7 +65,7 @@
 // ---------------------------------------------------------------------------
 //
 CMRListPane::CMRListPane( MESMRFieldStorage& aFactory,
-                          TAknDoubleSpanScrollBarModel& aScrollModel, 
+                          TAknDoubleSpanScrollBarModel& aScrollModel,
                           CAknDoubleSpanScrollBar& aScroll,
                           MMRScrollBarObserver& aScrollBarObserver )
     : iFactory( aFactory ),
@@ -94,14 +94,14 @@
 //
 CMRListPane* CMRListPane::NewL( const CCoeControl& aParent,
                                 MESMRFieldStorage& aFactory,
-                                TAknDoubleSpanScrollBarModel& aScrollModel, 
-                                CAknDoubleSpanScrollBar& aScroll, 
+                                TAknDoubleSpanScrollBarModel& aScrollModel,
+                                CAknDoubleSpanScrollBar& aScroll,
                                 MMRScrollBarObserver& aScrollBarObserver )
     {
     FUNC_LOG;
-    CMRListPane* self = new( ELeave )CMRListPane( 
-            aFactory, 
-            aScrollModel, 
+    CMRListPane* self = new( ELeave )CMRListPane(
+            aFactory,
+            aScrollModel,
             aScroll,
             aScrollBarObserver );
     CleanupStack::PushL( self );
@@ -123,7 +123,7 @@
     iLongtapDetector = CAknLongTapDetector::NewL( this );
     iLongtapDetector->SetLongTapDelay( KLongTapDelay );
     iLongtapDetector->SetTimeDelayBeforeAnimation( KLongTapAnimationDelay );
-    
+
     iFieldContainer = CMRFieldContainer::NewL( iFactory, *this );
     iFieldContainer->SetFieldContainerObserver( this );
 
@@ -156,7 +156,7 @@
     {
     FUNC_LOG;
     iFactory.InternalizeL( aEntry );
-    
+
     // This is called to make sure everything is drawn correctly
     DrawDeferred();
     }
@@ -214,10 +214,7 @@
 void CMRListPane::InitialScrollL()
     {
     FUNC_LOG;
-    // TODO: Fix or remove! L-Function called in non-leaving function!
-    // Suggestion: Move functionality to viewerdialog and use existing
-    // functions in listpane to do the required actions.
-    
+
     // Check if the ResponseArea exist
     TESMREntryFieldId id = GetResponseFieldsFieldId();
 
@@ -272,7 +269,7 @@
     {
     FUNC_LOG;
     return 1; // iFieldContainer
-    
+
     }
 
 // ---------------------------------------------------------------------------
@@ -296,13 +293,13 @@
         {
         return;
         }
-   
+
     TSize containerSize( iFieldContainer->MinimumSize() );
     iFieldContainer->SetSize( containerSize );
-    
+
     // Physics:
     iPhysics->InitPhysics();
-    
+
     DoUpdateScrollBar();
     }
 
@@ -318,7 +315,7 @@
 
     // First check if the focused item needs the key event
     response = FocusedField()->OfferKeyEventL( aKeyEvent, aType );
-    
+
     if ( aType == EEventKey
             && response == EKeyWasNotConsumed )
         {
@@ -328,7 +325,7 @@
             case EStdKeyUpArrow:
                 {
                 response = iFieldContainer->MoveFocusUpL( HiddenFocus() );
-                
+
                 // Focus changed via keyboard, iClickedItem is no
                 // longer valid
                 iClickedField = NULL;
@@ -337,7 +334,7 @@
             case EStdKeyDownArrow:
                 {
                 response = iFieldContainer->MoveFocusDownL( HiddenFocus() );
-                
+
                 // Focus changed via keyboard, iClickedItem is no
                 // longer valid
                 iClickedField = NULL;
@@ -349,7 +346,7 @@
                 }
             }
         }
-    
+
     return response;
     }
 
@@ -362,7 +359,7 @@
         const TPoint& /* aPenEventScreenLocation */ )
     {
     FUNC_LOG;
-    iLongTapEventConsumed = EFalse;
+    iLongTapEventInProgess = EFalse;
     // Long tap functionality may vary between fields
     // ==> Command field to execute action related to long tap
     TInt count( iFactory.Count() );
@@ -375,7 +372,7 @@
              && field->Rect().Contains( aPenEventLocation ) )
             {
             field->LongtapDetectedL( aPenEventLocation );
-            iLongTapEventConsumed = ETrue;
+            iLongTapEventInProgess = ETrue;
             break;
             }
         }
@@ -388,11 +385,11 @@
 void CMRListPane::DoUpdateScrollBar( TInt aFocusPosition )
     {
     FUNC_LOG;
-    // Set this lispane's size as scroll bar's window size 
+    // Set this lispane's size as scroll bar's window size
     iScrollModel.SetWindowSize( iSize.iHeight );
     // Set fieldcontainer's height as scrolbar's scroll span
     iScrollModel.SetScrollSpan( iFieldContainer->MinimumSize().iHeight );
-    
+
     // Update scrollbar focus position.
     if( aFocusPosition == KErrNotFound )
         {
@@ -407,7 +404,7 @@
 
     // finally update the new thumb position to view's
     // iScrollBarThumbPosition member.
-    iScrollBarObserver.ScrollBarPositionChanged( 
+    iScrollBarObserver.ScrollBarPositionChanged(
             iScroll.ThumbPosition() );
     }
 
@@ -460,10 +457,10 @@
     FUNC_LOG;
     TPoint point = iFieldContainer->Position();
     point.iY -= aPx;
-    
+
     // This initializes Draw also
     iFieldContainer->SetPosition( point );
-    
+
     // Non-kinetic scrolling executed. Update
     // new position to physics.
     iPhysics->UpdateVerticalScrollIndex( UpdatedFocusPosition() );
@@ -480,7 +477,7 @@
     FUNC_LOG;
     TPoint point = iFieldContainer->Position();
     point.iY += aPx;
-    
+
     // This initializes Draw also
     iFieldContainer->SetPosition( point );
     // Non-kinetic scrolling executed. Update
@@ -499,7 +496,7 @@
     {
     // Update physics world size
     iPhysics->InitPhysics();
-    
+
     // Update scrollbar
     DoUpdateScrollBar();
     }
@@ -528,9 +525,8 @@
 //
 TESMREntryFieldId CMRListPane::GetResponseFieldsFieldId()
     {
-    // TODO: Should be removed. This shouldn't be even a public function!
     CESMRField* rfield = iFactory.FieldById( EESMRFieldResponseArea );
-    
+
     if ( rfield && rfield->IsVisible() && !rfield->IsNonFocusing() )
         {
         return EESMRFieldResponseArea;
@@ -560,10 +556,10 @@
             field->SetListObserver( iFieldContainer );
             }
         }
-    
+
     // This "for" circle can not be mixed with the above one, since the
-    // field->ActivateL() will call some functions which will traverse 
-    // all the fields, but that time, not all the fields have set the 
+    // field->ActivateL() will call some functions which will traverse
+    // all the fields, but that time, not all the fields have set the
     // container window.
     for ( TInt i = 0; i < count; ++i )
         {
@@ -586,40 +582,53 @@
         {
         return;
         }
-   
+
+    // If new down event is received, and
+    // iLongTapEventInProgess flag is still ETrue, we need to
+    // set it back to EFalse -> Long tap event cannot be in progress
+    // in this case anymore.
+    if( aPointerEvent.iType == TPointerEvent::EButton1Down &&
+    		iLongTapEventInProgess )
+    	{
+		iLongTapEventInProgess = EFalse;
+    	}
+
     // Forward all listpane related events to physics api first.
     if ( iPhysics->HandlePointerEventL( aPointerEvent, iPhysicsActionOngoing ) )
         {
         DoUpdateScrollBar();
-        // Physics in action. If long tap detection is active, 
+        // Physics in action. If long tap detection is active,
         // it should be cancelled.
         if( iLongtapDetector->IsActive() )
         	{
 			iLongtapDetector->Cancel();
         	}
         }
-    
+
     if( !iPhysicsActionOngoing )
-    	{    
-		// Offer pointer event to long tap detector if event occures within fields
-		if( iFieldContainer->Rect().Contains( aPointerEvent.iPosition ) )
+    	{
+		UpdateClickedField( aPointerEvent );
+
+		// Offer pointer event to long tap detector if field supports long tap
+		// functionality
+		if( ClickedField()->SupportsLongTapFunctionalityL( aPointerEvent ) )
 			{
 			iLongtapDetector->PointerEventL( aPointerEvent );
 			}
 
 		SetFocusAfterPointerEventL( aPointerEvent );
-		
-        // If longtap event has been handled, then do not handle signal event anymore.
-        if( !iLongTapEventConsumed )
+
+        // If longtap event is in progress, do not pass events to coecontrol
+        if( !iLongTapEventInProgess )
             {
             CCoeControl::HandlePointerEventL( aPointerEvent );
             }
-        else
+        // Longtap event executed after up event ->
+        // Let's set iLongTapEventInProgess to EFalse
+        else if( aPointerEvent.iType == TPointerEvent::EButton1Up )
             {
-            iLongTapEventConsumed = EFalse;
+			iLongTapEventInProgess = EFalse;
             }
-        
-		UpdateClickedField( aPointerEvent );
     	}
     }
 
@@ -633,10 +642,10 @@
     // This ActiveteL is required only for setting the initial position
     // of the field container. After setting the position, physics is
     // initialized with new values also.
-    
+
     CCoeControl::ActivateL();
     iFieldContainer->SetPosition( Position() );
-    
+
     // Physics:
     iPhysics->InitPhysics();
     }
@@ -667,12 +676,12 @@
 
 	// Update the new thumb position to view's
 	// iScrollBarThumbPosition member.
-	iScrollBarObserver.ScrollBarPositionChanged( 
+	iScrollBarObserver.ScrollBarPositionChanged(
 			iScroll.ThumbPosition() );
-	
+
 	iScroll.DrawDeferred();
-	
-	if( FeedbackScrollMarginExceeded( 
+
+	if( FeedbackScrollMarginExceeded(
 			Abs( verticalScrollIndex - iPreviousVerticalScrollIndex ) ) )
 		{
 		HandleTactileFeedback( ETouchFeedbackSlider );
@@ -680,12 +689,12 @@
 		iPreviousVerticalScrollIndex = verticalScrollIndex;
 		}
     }
-	
+
 // ---------------------------------------------------------------------------
 // CESMRField::HandleTactileFeedback
 // ---------------------------------------------------------------------------
 //
-void CMRListPane::HandleTactileFeedback( 
+void CMRListPane::HandleTactileFeedback(
 		const TTouchLogicalFeedback& aType )
 	{
 	FUNC_LOG;
@@ -695,7 +704,7 @@
 		// Aquire tactile feedback pointer from TLS
 		iTactileFeedback = MTouchFeedback::Instance();
 		}
-	
+
 	if ( iTactileFeedback && iTactileFeedback->FeedbackEnabledForThisApp() )
 		{
 		iTactileFeedback->InstantFeedback( aType );
@@ -706,7 +715,7 @@
 // CMRListPane::SetFocusAfterPointerEventL
 // ---------------------------------------------------------------------------
 //
-void CMRListPane::SetFocusAfterPointerEventL( 
+void CMRListPane::SetFocusAfterPointerEventL(
         const TPointerEvent &aPointerEvent )
     {
     FUNC_LOG;
@@ -721,18 +730,18 @@
 					field->Rect().Contains( aPointerEvent.iPosition ) )
 				{
 				CESMRField* focusedField = iFieldContainer->FocusedField();
-	
+
 				if ( field != focusedField )
 					{
 					TBool canLoseFocus(
 							focusedField->OkToLoseFocusL( field->FieldId() ) );
-	
+
 					if ( canLoseFocus )
 						{
 						iFieldContainer->SetControlFocusedL( field->FieldId() );
 						}
 					}
-	
+
 				break;
 				}
 			}
@@ -750,7 +759,7 @@
 
     for( TInt i = 0; i < fieldCount; ++i )
         {
-        if( iFactory.Field( i )->Rect().Contains( 
+        if( iFactory.Field( i )->Rect().Contains(
                 aPointerEvent.iPosition ) )
             {
             if( aPointerEvent.iType == TPointerEvent::EButton1Down )
@@ -769,25 +778,25 @@
     {
     FUNC_LOG;
     TBool hiddenFocus( EFalse );
-    
+
     CESMRField* focusedField( iFieldContainer->FocusedField() );
-    TInt focusedFieldIndex( IndexByFieldId( 
+    TInt focusedFieldIndex( IndexByFieldId(
             iFactory, focusedField->FieldId() ) );
 
     if ( focusedFieldIndex < iFactory.Count() )
         {
         TRect focusedFieldRect( focusedField->Rect() );
         TRect listPaneRect( Rect() );
-        
+
         TInt fieldTopY( focusedFieldRect.iTl.iY );
         TInt fieldBottomY( focusedFieldRect.iBr.iY );
-        
+
         TInt listTopY( listPaneRect.iTl.iY );
         TInt listBottomY( listPaneRect.iBr.iY );
-        
-        if ( ( fieldBottomY > listBottomY || 
-                fieldTopY < listTopY ) && 
-                    focusedFieldRect.Height() < listPaneRect.Height() ) 
+
+        if ( ( fieldBottomY > listBottomY ||
+                fieldTopY < listTopY ) &&
+                    focusedFieldRect.Height() < listPaneRect.Height() )
             {
             hiddenFocus = ETrue;
             }
@@ -801,19 +810,20 @@
 //
 TBool CMRListPane::FeedbackScrollMarginExceeded( TInt aMargin )
     {
+    FUNC_LOG;
 	/*
 	 * This compares given margin to default one row
 	 * field height, and returns ETrue if margin is exceeded.
 	 * Otherwise EFalse.
 	 */
 	TBool ret( EFalse );
-	
+
 	if( !iDefaultFieldHeight )
 		{
-		TAknLayoutRect fieldLayoutRect( 
-			NMRLayoutManager::GetFieldLayoutRect( 
+		TAknLayoutRect fieldLayoutRect(
+			NMRLayoutManager::GetFieldLayoutRect(
 					iFieldContainer->Rect(), 1 ) );
-		
+
 		iDefaultFieldHeight = fieldLayoutRect.Rect().Height();
 		}
 
@@ -821,7 +831,7 @@
 		{
 		ret = ETrue;
 		}
-	
+
     return ret;
     }
 
--- a/meetingrequest/mrgui/src/cmrnaviarrow.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrnaviarrow.cpp	Tue May 11 15:57:15 2010 +0300
@@ -111,8 +111,7 @@
 void CMRNaviArrow::InitNaviArrowsL()
     {
     FUNC_LOG;
-    // Button
-    // TODO: Icons id should be changed to correct one when available
+
     CFbsBitmap* bitMapL( NULL );
     CFbsBitmap* bitMapMaskL( NULL );
     NMRBitmapManager::TMRBitmapId bitmapId;
--- a/meetingrequest/mrgui/src/cmrresponsedialogview.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrresponsedialogview.cpp	Tue May 11 15:57:15 2010 +0300
@@ -16,10 +16,10 @@
 */
 #include "cmrresponsedialogview.h"
 // System includes
-#include <aknsdrawutils.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
+#include <AknsDrawUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
 #include <eikrted.h>
-#include <akndef.h>
+#include <AknDef.h>
 // DEBUG
 #include "emailtrace.h"
 
--- a/meetingrequest/mrgui/src/cmrtoolbar.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrtoolbar.cpp	Tue May 11 15:57:15 2010 +0300
@@ -247,7 +247,7 @@
     
     if( iToolbar && iToolbar->IsShown() )
         {
-        rect = iToolbar->Rect(); 
+        rect.SetRect( iToolbar->PositionRelativeToScreen(), iToolbar->Rect().Size() );
         }
     
     return rect;
--- a/meetingrequest/mrguicommon/inc/cesmrcontactmanagerhandler.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cesmrcontactmanagerhandler.h	Tue May 11 15:57:15 2010 +0300
@@ -21,8 +21,8 @@
 
 #include <e32base.h>
 
-#include <mvpbkcontactstoreobserver.h>
-#include <mvpbkcontactstorelistobserver.h>
+#include <MVPbkContactStoreObserver.h>
+#include <MVPbkContactStoreListObserver.h>
 
 class CVPbkContactManager;
 
--- a/meetingrequest/mrguicommon/inc/cesmrcontactmenuhandler.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cesmrcontactmenuhandler.h	Tue May 11 15:57:15 2010 +0300
@@ -22,8 +22,8 @@
 #include <e32base.h>
 
 #include "cesmrcontactmanagerhandler.h"
-#include <mvpbkcontactfindobserver.h>
-#include <mvpbksinglecontactoperationobserver.h>
+#include <MVPbkContactFindObserver.h>
+#include <MVPbkSingleContactOperationObserver.h>
 //<cmail>
 #include "mfsccontactactionserviceobserver.h"
 #include "fsccontactactionservicedefines.h"
--- a/meetingrequest/mrguicommon/inc/cesmrglobalnote.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cesmrglobalnote.h	Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
 
 //  INCLUDES
 #include <e32base.h>
-#include <aknnotifystd.h>
+#include <AknNotifyStd.h>
 //<cmail>
 #include "esmrdef.h"
 //</cmail>
--- a/meetingrequest/mrguicommon/inc/cmrbutton.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cmrbutton.h	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef CMRButton_H
 #define CMRButton_H
 
-#include <akniconutils.h>
+#include <AknIconUtils.h>
 #include <aknbutton.h>
 
 #include "esmrfieldbuilderdef.h"
--- a/meetingrequest/mrguicommon/inc/cmrimage.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/cmrimage.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define CMRIMAGE_H
 
 //#include <aknsconstants.h>
-#include <akniconutils.h>
+#include <AknIconUtils.h>
 #include <eikimage.h>
 
 #include "esmrfieldbuilderdef.h"
--- a/meetingrequest/mrguicommon/inc/nmrbitmapmanager.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/nmrbitmapmanager.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define NMRBITMAPMANAGER_H
 
 #include <e32base.h>
-#include <aknsitemid.h>
+#include <AknsItemID.h>
 
 // FORWARD DECLARATIONS
 class CFbsBitmap;
--- a/meetingrequest/mrguicommon/inc/nmrcolormanager.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/nmrcolormanager.h	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #define NMRCOLORMANAGER_H
 
 #include <e32base.h>
-#include <aknsitemid.h>
+#include <AknsItemID.h>
 #include <gdi.h> // TRgb
 
 // FORWARD DECLARATIONS
--- a/meetingrequest/mrguicommon/inc/nmrlayoutmanager.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/inc/nmrlayoutmanager.h	Tue May 11 15:57:15 2010 +0300
@@ -19,8 +19,8 @@
 #define NMRLAYOUTMANAGER_H
 
 #include <e32base.h>
-#include <aknutils.h>
-#include <aknlayout2scalabledef.h>
+#include <AknUtils.h>
+#include <AknLayout2ScalableDef.h>
 
 
 namespace NMRLayoutManager
@@ -63,8 +63,6 @@
         EMRLayoutCheckboxIcon,
         
         // Option 6
-        // TODO: 24h time editor
-
         // Option 7
         EMRLayoutSingleRowAColumnGraphic,
         EMRLayoutSingleRowDColumnGraphic,
--- a/meetingrequest/mrguicommon/src/cesmralarm.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmralarm.cpp	Tue May 11 15:57:15 2010 +0300
@@ -17,7 +17,7 @@
 
 #include "cesmralarm.h"
 
-#include <stringloader.h>
+#include <StringLoader.h>
 
 // DEBUG
 #include "emailtrace.h"
--- a/meetingrequest/mrguicommon/src/cesmrconfirmationquery.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrconfirmationquery.cpp	Tue May 11 15:57:15 2010 +0300
@@ -22,14 +22,14 @@
 //<cmail>
 #include "esmrdef.h"
 //</cmail>
-#include <aknquerydialog.h>
+#include <AknQueryDialog.h>
 #include <bautils.h>
 #include <esmrgui.rsg>
 #include <eikenv.h>
 #include <avkon.rsg>
 #include <data_caging_path_literals.hrh>
-#include <stringloader.h>
-#include <aknbiditextutils.h>//line wrapping and mirroring
+#include <StringLoader.h>
+#include <AknBidiTextUtils.h>//line wrapping and mirroring
 #include <aknlayoutscalable_apps.cdl.h> //xml layout data for applications
 #include <aknlayoutscalable_avkon.cdl.h> //xml layout data of avkon components
 #include "esmrhelper.h"//locateresourcefile
--- a/meetingrequest/mrguicommon/src/cesmrcontactlinkiterator.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrcontactlinkiterator.cpp	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
 
 #include "emailtrace.h"
 #include "cesmrcontactlinkiterator.h"
-#include <mvpbkcontactlinkarray.h>
+#include <MVPbkContactLinkArray.h>
 
 // ======== MEMBER FUNCTIONS ========
 
--- a/meetingrequest/mrguicommon/src/cesmrcontactmanagerhandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrcontactmanagerhandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,11 +19,11 @@
 #include "emailtrace.h"
 #include "cesmrcontactmanagerhandler.h"
 
-#include <cvpbkcontactmanager.h>
-#include <cvpbkcontactstoreuriarray.h>
-#include <mvpbkcontactstorelist.h>
-#include <vpbkcontactstoreuris.h>
-#include <tvpbkcontactstoreuriptr.h>
+#include <CVPbkContactManager.h>
+#include <CVPbkContactStoreUriArray.h>
+#include <MVPbkContactStoreList.h>
+#include <VPbkContactStoreUris.h>
+#include <TVPbkContactStoreUriPtr.h>
 
 // ======== MEMBER FUNCTIONS ========
 
--- a/meetingrequest/mrguicommon/src/cesmrcontactmenuhandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrcontactmenuhandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -21,17 +21,17 @@
 #include "cesmrcontactmenuurlhandler.h"
 #include "mmrcontactmenuobserver.h"
 
-#include <cvpbkcontactmanager.h>
-#include <cvpbkcontactlinkarray.h>
-#include <mvpbkcontactstorelist.h>
-#include <mvpbkcontactstore.h>
-#include <mvpbkcontactstoreproperties.h>
-#include <mvpbkstorecontact.h>
-#include <mvpbkfieldtype.h>
-#include <mvpbkcontactoperationbase.h>
-#include <mvpbkcontactfieldtextdata.h>
-#include <tvpbkfieldversitproperty.h>
-#include <cvpbkfieldtyperefslist.h>
+#include <CVPbkContactManager.h>
+#include <CVPbkContactLinkArray.h>
+#include <MVPbkContactStoreList.h>
+#include <MVPbkContactStore.h>
+#include <MVPbkContactStoreProperties.h>
+#include <MVPbkStoreContact.h>
+#include <MVPbkFieldType.h>
+#include <MVPbkContactOperationBase.h>
+#include <MVPbkContactFieldTextData.h>
+#include <TVPbkFieldVersitProperty.h>
+#include <CVPbkFieldTypeRefsList.h>
 
 //<cmail>
 #include "cfsccontactactionservice.h"
@@ -41,9 +41,9 @@
 #include "mfsccontactaction.h"
 #include "mfsccontactactionmenumodel.h"
 
-#include <cvpbkfieldtypeiterator.h>
-#include <cvpbkfieldtypeselector.h>
-#include <vpbkeng.rsg>
+#include <CVPbkFieldTypeIterator.h>
+#include <CVPbkFieldTypeSelector.h>
+#include <VPbkEng.rsg>
 
 #include <esmrgui.rsg>
 #include "esmrcommands.h"
--- a/meetingrequest/mrguicommon/src/cesmrcontactmenuurlhandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrcontactmenuurlhandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -31,14 +31,14 @@
 #include <eikmenup.h>
 #include <coemain.h>
 #include <gulicon.h>
-#include <aknsutils.h>
+#include <AknsUtils.h>
 #include <favouritesdb.h>
 #include <apgtask.h>
 #include <apgcli.h>
-#include <aknquerydialog.h>
+#include <AknQueryDialog.h>
 #include <aknnotewrappers.h>
 // for intranet application opening
-#include <aiwservicehandler.h>
+#include <AiwServiceHandler.h>
 #include <data_caging_path_literals.hrh>
 #include <e32cmn.h>
 
@@ -201,7 +201,6 @@
         //</cmail>
         }
 
-    // TODO: correct to use XML layout
     NMRBitmapManager::GetSkinBasedBitmapLC( 
                     iconID, iconBitmap, iconMaskBitmap, TSize(20,20) );
     
--- a/meetingrequest/mrguicommon/src/cesmrglobalnote.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrglobalnote.cpp	Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,7 @@
 //<cmail>
 #include "esmrdef.h"
 //</cmail>
-#include <aknglobalnote.h>
+#include <AknGlobalNote.h>
 #include <bautils.h>
 #include <esmrgui.rsg>
 #include <eikenv.h>
--- a/meetingrequest/mrguicommon/src/cesmrlistquery.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrlistquery.cpp	Tue May 11 15:57:15 2010 +0300
@@ -24,10 +24,10 @@
 //<cmail>
 #include "esmrdef.h"
 //</cmail>
-#include <aknpopup.h>
+#include <aknPopup.h>
 #include <bautils.h>
 #include <esmrgui.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <data_caging_path_literals.hrh>
 
 #include "esmrgui.hrh"
@@ -784,7 +784,6 @@
     CDesCArrayFlat* itemArray = new(ELeave)CDesCArrayFlat(2);
     CleanupStack::PushL(itemArray);
     
-    // Set title: TODO: Change title
     popupList->SetTitleL(*StringLoader::LoadLC(
             R_QTN_CALENDAR_TASK_CALENDAR_TITLE));
     CleanupStack::PopAndDestroy(); // Resource string
--- a/meetingrequest/mrguicommon/src/cesmrrecurrence.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrrecurrence.cpp	Tue May 11 15:57:15 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 #include "emailtrace.h"
-#include <stringloader.h>
+#include <StringLoader.h>
 #include "cesmrrecurrence.h"
 
 // ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrguicommon/src/cesmrsendui.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cesmrsendui.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,27 +19,25 @@
 #include "cesmrsendui.h"
 #include "esmrvcalexport.h"
 
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <eikenv.h>
-#include <msgbiouids.h>
+#include <MsgBioUids.h>
 #include <sendui.h>
-#include <tsendingcapabilities.h>
-#include <cmessagedata.h>
-#include <cmessageaddress.h>
-#include <senduiconsts.h>
+#include <TSendingCapabilities.h>
+#include <CMessageData.h>
+#include <CMessageAddress.h>
+#include <SendUiConsts.h>
 #include <sysutil.h>
 #include <txtrich.h>
 #include <calsession.h>
-//<cmail> hardcoded paths removal
 #include <pathinfo.h>
-//</cmail>
 
 // Unnamed namespace for local definitions
 namespace {
-//<cmail> hardcoded paths removal from cmail
+
 _LIT( KVCalAttachmentFile, 
 	  "\\private\\10005901\\Calendar.vcs" );
-//</cmail>
+
 
 _LIT( KCalendarDatabaseFilePath, "c:Calendar" );
 
@@ -186,15 +184,13 @@
         User::LeaveIfError( fs.Connect() );
         CleanupClosePushL( fs );
         // must share the handle between processes
-        User::LeaveIfError( fs.ShareProtected() );
-        //<cmail> hardcoded paths removal from cmail
+        User::LeaveIfError( fs.ShareProtected() );        
         TFileName fileName(PathInfo::PhoneMemoryRootPath().Left(2));
         fileName.Append(KVCalAttachmentFile);
         fs.MkDirAll(fileName);
-        //</cmail>
         RFile file;
-        User::LeaveIfError(file.Replace(//<cmail>
-					fs,fileName,EFileWrite | EFileShareAny ));//</cmail>
+        User::LeaveIfError(file.Replace(
+					fs,fileName,EFileWrite | EFileShareAny ));
         CleanupClosePushL(file);
         TInt spaceNeeded = vcal->Size();
         if ( SysUtil::FFSSpaceBelowCriticalLevelL( &fs, spaceNeeded ) )
@@ -205,8 +201,8 @@
 
         User::LeaveIfError(file.Write(*vcal));
 
-        TParse parse;//<cmail>
-        User::LeaveIfError(parse.SetNoWild(fileName,//</cmail>
+        TParse parse;
+        User::LeaveIfError(parse.SetNoWild(fileName,
                                            NULL, NULL));
 
         TRAPD(err, DoSendAsAttachmentHandleL(file));
--- a/meetingrequest/mrguicommon/src/cmrimage.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cmrimage.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #include "esmrhelper.h"
 #include <esmrgui.mbg>
 #include <data_caging_path_literals.hrh>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
 
 
 // ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mrguicommon/src/cmrlabel.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/cmrlabel.cpp	Tue May 11 15:57:15 2010 +0300
@@ -17,9 +17,9 @@
 #include "cmrlabel.h"
 #include "nmrcolormanager.h"
 
-#include <aknutils.h>
-#include <aknsutils.h>
-#include <aknsconstants.h>
+#include <AknUtils.h>
+#include <AknsUtils.h>
+#include <AknsConstants.h>
 #include <aknsconstants.hrh>
 #include <gdi.h>
 
--- a/meetingrequest/mrguicommon/src/esmrvcalexport.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/esmrvcalexport.cpp	Tue May 11 15:57:15 2010 +0300
@@ -23,11 +23,11 @@
 
 #include <esmrgui.rsg> // r_qtn_meet_req_conflict_unnamed
 #include <calentry.h>
-#include <calenexporter.h>
+#include <CalenExporter.h>
 #include <bldvariant.hrh> // For FeatureIds
 #include <eikenv.h>
 #include <featmgr.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <vtoken.h>
 #include <s32mem.h>
 
--- a/meetingrequest/mrguicommon/src/nmrbitmapmanager.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/nmrbitmapmanager.cpp	Tue May 11 15:57:15 2010 +0300
@@ -18,9 +18,9 @@
 #include "nmrbitmapmanager.h"
 #include "esmrhelper.h"
 
-#include <aknsitemid.h>
-#include <aknutils.h>
-#include <aknsutils.h>
+#include <AknsItemID.h>
+#include <AknUtils.h>
+#include <AknsUtils.h>
 #include <esmrgui.mbg>
 #include <data_caging_path_literals.hrh>
 
@@ -153,12 +153,8 @@
             }
         case EMRBitmapBrowser:
             {
-            // TODO: not available
-            // bitmapStruct.iItemId = KAknsIIDQgnMenuBrowserng;
             bitmapStruct.iFallbackIndex = EMbmEsmrguiQgn_menu_browserng;
             bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQgn_menu_browserng_mask;
-            
-            // TODO: remove me asap
             bitmapStruct.iItemId = KAknsIIDQgnMenuIntranet;
             break;
             }
@@ -186,11 +182,6 @@
         case EMRBitmapAlarmClock:
             {
             bitmapStruct.iItemId = KAknsIIDQgnIndiCalendarClockAlarm;
-            // TODO: use new icon
-            //bitmapStruct.iFallbackIndex = EMbmEsmrguiQgn_indi_calendar_clock_alarm;
-            //bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQgn_indi_calendar_clock_alarm_mask;
-            
-            // TODO: remove me asap, not in platform atm.
             bitmapStruct.iFallbackIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_alarm;
             bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_alarm_mask;
             break;
@@ -420,8 +411,6 @@
             bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQgn_prop_cmail_action_attachment_save_all_mask;
             break;
             }
-    
-        // TODO: Needs correct fallbacks
         case EMRBitmapInputCenter:
             {
             bitmapStruct.iItemId = KAknsIIDQsnFrInputCenter;
@@ -484,9 +473,7 @@
             bitmapStruct.iFallbackIndex = EMbmEsmrguiQsn_fr_list_corner_br;
             bitmapStruct.iFallbackMaskIndex = EMbmEsmrguiQsn_fr_list_corner_br_mask;
             break;
-            }
-        
-        // TODO: Needs correct fallbacks
+            }       
         case EMRBitmapSetOptCenter:
             {
             bitmapStruct.iItemId = KAknsIIDQsnFrSetOptCenter;
--- a/meetingrequest/mrguicommon/src/nmrcolormanager.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/nmrcolormanager.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,9 +19,9 @@
 
 #include <gdi.h>
 #include <eikmfne.h>
-#include <aknsitemid.h>
-#include <aknutils.h>
-#include <aknsutils.h>
+#include <AknsItemID.h>
+#include <AknUtils.h>
+#include <AknsUtils.h>
 #include <esmrgui.mbg>
 #include <data_caging_path_literals.hrh>
 
@@ -99,10 +99,7 @@
             {
             colorStruct.iColorGroup = KAknsIIDFsOtherColors;
             colorStruct.iColorIndex = EAknsCIFsOtherColorsCG1; 
-            // TODO: Once feature confirmed by UI specifier, confirm the
-            // correct color
             }
-        // TODO: For testing purposes only; keep as last item during development
         case EMRLastColorItemId:
             {
             colorStruct.iColorGroup = KAknsIIDQsnTextColors;
--- a/meetingrequest/mrguicommon/src/nmrlayoutmanager.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrguicommon/src/nmrlayoutmanager.cpp	Tue May 11 15:57:15 2010 +0300
@@ -17,7 +17,7 @@
 
 #include "nmrlayoutmanager.h"
 
-#include <aknutils.h>
+#include <AknUtils.h>
 #include <aknlayoutscalable_apps.cdl.h>
 #include <aknlayoutscalable_avkon.cdl.h>
 
--- a/meetingrequest/mricalviewer/data/2001846B.rss	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/data/2001846B.rss	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
 
 // INCLUDES
 #include <ecom/registryinfov2.rh>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
 #include "esmrinternaluid.h"
 
 //  RESOURCE DEFINITIONS 
--- a/meetingrequest/mricalviewer/inc/cesmricalviewerremovemrfromcalcmd.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/inc/cesmricalviewerremovemrfromcalcmd.h	Tue May 11 15:57:15 2010 +0300
@@ -25,7 +25,7 @@
 #include "mesmricalviewerobserver.h"
 #include "esmricalviewerdefs.hrh"
 //</cmail>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 
 class CFSMailClient;
 class CESMRUiLauncher;
--- a/meetingrequest/mricalviewer/inc/cesmricalviewerresponsetomrcmd.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/inc/cesmricalviewerresponsetomrcmd.h	Tue May 11 15:57:15 2010 +0300
@@ -26,7 +26,7 @@
 #include "mesmricalviewercallback.h"
 #include "esmricalviewerdefs.hrh"
 //</cmail>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 
 class CFSMailClient;
 class CESMRUiLauncher;
--- a/meetingrequest/mricalviewer/src/cesmricalviewercanviewmr.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewercanviewmr.cpp	Tue May 11 15:57:15 2010 +0300
@@ -21,8 +21,8 @@
 #include "cesmricalviewercanviewmr.h"
 //<cmail>
 #include "esmricalvieweropcodes.hrh"
-#include "CFSMailCommon.h"
-#include "CFSMailMessage.h"
+#include "cfsmailcommon.h"
+#include "cfsmailmessage.h"
 //</cmail>
 
 // ======== MEMBER FUNCTIONS ========
--- a/meetingrequest/mricalviewer/src/cesmricalviewercmdhandler.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewercmdhandler.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,7 +29,7 @@
 
 #include <calsession.h>
 //<cmail>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
 #include "esmricalvieweropcodes.hrh"
 #include "esmricalviewerdefs.hrh"
 //</cmail>
--- a/meetingrequest/mricalviewer/src/cesmricalvieweremailasynccmd.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalvieweremailasynccmd.cpp	Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,7 @@
 //<cmail>
 #include "esmricalvieweropcodes.hrh"
 #include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
 //</cmail>
 #include <calentry.h>
 
--- a/meetingrequest/mricalviewer/src/cesmricalviewerloadmrdatacmd.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewerloadmrdatacmd.cpp	Tue May 11 15:57:15 2010 +0300
@@ -22,7 +22,7 @@
 //<cmail>
 #include "esmricalvieweropcodes.hrh"
 #include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
 //</cmail>
 
 #include "cesmrmrinfoicalretriever.h"
--- a/meetingrequest/mricalviewer/src/cesmricalviewerremovemrfromcalcmd.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewerremovemrfromcalcmd.cpp	Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
 //<cmail>
 #include "esmricalvieweropcodes.hrh"
 #include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
 //</cmail>
 #include <calentry.h>
 
--- a/meetingrequest/mricalviewer/src/cesmricalviewerresolvemrmethodasync.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewerresolvemrmethodasync.cpp	Tue May 11 15:57:15 2010 +0300
@@ -23,7 +23,7 @@
 //<cmail>
 #include "esmricalvieweropcodes.hrh"
 #include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
 //</cmail>
 #include <calentry.h>
 
--- a/meetingrequest/mricalviewer/src/cesmricalviewerresponsetomrcmd.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmricalviewerresponsetomrcmd.cpp	Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
 //<cmail>
 #include "esmricalvieweropcodes.hrh"
 #include <calsession.h>
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
 //</cmail>
 #include <calentry.h>
 
--- a/meetingrequest/mricalviewer/src/cesmrimapicalretriever.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmrimapicalretriever.cpp	Tue May 11 15:57:15 2010 +0300
@@ -39,7 +39,7 @@
 #include <calentry.h>
 #include <caluser.h>
 #include <calalarm.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <s32file.h>
 #include <eikenv.h>
 
--- a/meetingrequest/mricalviewer/src/cesmrimapmailfetcher.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmrimapmailfetcher.cpp	Tue May 11 15:57:15 2010 +0300
@@ -20,10 +20,10 @@
 #include "cesmrimapmailfetcher.h"
 #include "esmricalviewerutils.h"
 //<cmail>
-#include "CFSMailClient.h"
-#include "CFSMailFolder.h"
-#include "CFSMailMessagePart.h"
-#include "CFSMailCommon.h"
+#include "cfsmailclient.h"
+#include "cfsmailfolder.h"
+#include "cfsmailmessagepart.h"
+#include "cfsmailcommon.h"
 #include "esmricalvieweropcodes.hrh"
 //</cmail>
 
--- a/meetingrequest/mricalviewer/src/cesmrmrinfoicalretriever.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmrmrinfoicalretriever.cpp	Tue May 11 15:57:15 2010 +0300
@@ -39,7 +39,7 @@
 #include <calentry.h>
 #include <caluser.h>
 #include <calalarm.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <utf.h>
 
 // Unnamed namespace for local definitions and functions
--- a/meetingrequest/mricalviewer/src/cesmruilauncher.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/cesmruilauncher.cpp	Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
 #include <CalenInterimUtils2.h>
 //<cmail>
 #include "FreestyleEmailUiConstants.h"
-#include "CFSMailMessage.h"
+#include "cfsmailmessage.h"
 #include "fsmtmsuids.h"
 #include <coemain.h>
 #include <coeaui.h>
--- a/meetingrequest/mricalviewer/src/esmricalviewerutils.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mricalviewer/src/esmricalviewerutils.cpp	Tue May 11 15:57:15 2010 +0300
@@ -74,13 +74,6 @@
     FUNC_LOG;
     TBool retValue( EFalse );
 
-    // TODO: This needs to be updated
-    /*if ( aParams.iAttachmentInfo &&
-         aParams.iAttachmentInfo->AttachmentCount() )
-        {
-        retValue = ETrue;
-        } */
-
     return retValue;
     }
 
--- a/meetingrequest/mrmbutilsextension/data/2002137D.rss	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/data/2002137D.rss	Tue May 11 15:57:15 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 #include <ecom/registryinfov2.rh>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
 #include "esmrinternaluid.h"
 
 //  RESOURCE DEFINITIONS
--- a/meetingrequest/mrmbutilsextension/inc/cmrmbutilsmailboxlistener.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/inc/cmrmbutilsmailboxlistener.h	Tue May 11 15:57:15 2010 +0300
@@ -18,8 +18,8 @@
 #ifndef C_MRMBUTILSMAILBOXLISTENER_H
 #define C_MRMBUTILSMAILBOXLISTENER_H
 
-#include "MFSMailEventObserver.h"
-#include "CFSMailCommon.h"
+#include "mfsmaileventobserver.h"
+#include "cfsmailcommon.h"
 
 #include <e32base.h>
 
--- a/meetingrequest/mrmbutilsextension/src/cmrmbutilsextensionimpl.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/src/cmrmbutilsextensionimpl.cpp	Tue May 11 15:57:15 2010 +0300
@@ -19,7 +19,7 @@
 #include "cmrmbutilsextensionimpl.h"
 #include "cmrmbutilsmailboxlistener.h"
 #include "cmrmbutilssettings.h"
-#include "CFSMailClient.h"
+#include "cfsmailclient.h"
 
 #include "emailtrace.h"
 
--- a/meetingrequest/mrmbutilsextension/src/cmrmbutilsmailboxlistener.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/src/cmrmbutilsmailboxlistener.cpp	Tue May 11 15:57:15 2010 +0300
@@ -17,9 +17,9 @@
 
 //INCLUDE FILES
 #include "cmrmbutilsmailboxlistener.h"
-#include "CFSMailCommon.h"
-#include "CFSMailClient.h"
-#include "CFSMailBox.h"
+#include "cfsmailcommon.h"
+#include "cfsmailclient.h"
+#include "cfsmailbox.h"
 #include "fsmtmsuids.h"
 #include "emailtrace.h"
 
--- a/meetingrequest/mrmbutilsextension/src/cmrmbutilssettings.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrmbutilsextension/src/cmrmbutilssettings.cpp	Tue May 11 15:57:15 2010 +0300
@@ -21,8 +21,8 @@
 //
 #include "cmrmbutilssettings.h"
 #include "mrmbutilsextensioncrkeys.h"
-#include "CFSMailBox.h"
-#include "CFSMailClient.h"
+#include "cfsmailbox.h"
+#include "cfsmailclient.h"
 #include "emailtrace.h"
 
 #include <e32std.h>
--- a/meetingrequest/mrpolicy/mrcalentryresolver/data/policies/bccalanniversaryeditor.rss	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrpolicy/mrcalentryresolver/data/policies/bccalanniversaryeditor.rss	Tue May 11 15:57:15 2010 +0300
@@ -27,7 +27,7 @@
     policy_id            = EESMRPolicyAnniversaryEditor;
     policy_mode          = EESMREditMR;
     role_flags           = KEESMRFlagOrganizer;
-    allowed_app          = KEESMRFlagAppEsCalendar;      // TODO: Should there be defined a new value for this?
+    allowed_app          = KEESMRFlagAppEsCalendar;
     field_ids            = r_bccal_anniversary_editor_fields;
     default_commands     = r_bccal_anniversary_editor_def_commands;
     additional_commands  = 0;
--- a/meetingrequest/mrprocessor/inc/mmrentryprocessor.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/inc/mmrentryprocessor.h	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
 #define M_MRENTRYPROCESSOR_H
 
 #include <e32base.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 #include "esmrdef.h"
 #include "tesmrscenariodata.h"
 
--- a/meetingrequest/mrprocessor/mrcaleventplugin/inc/cmrcalentry.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/mrcaleventplugin/inc/cmrcalentry.h	Tue May 11 15:57:15 2010 +0300
@@ -22,7 +22,7 @@
 #include <e32base.h>
 #include <e32std.h>
 #include <caltime.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 #include "mesmrcalentry.h"
 
 class CCalEntry;
--- a/meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcalentry.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcalentry.cpp	Tue May 11 15:57:15 2010 +0300
@@ -32,7 +32,7 @@
 #include <mrcaleventdata.rsg>
 #include <coemain.h>
 #include <e32std.h>
-#include <aknutils.h>
+#include <AknUtils.h>
 #include <data_caging_path_literals.hrh>
 #include <centralrepository.h>
 #include <calentry.h>
@@ -41,9 +41,9 @@
 #include <calrrule.h>
 #include <calinstance.h>
 #include <calinstanceview.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 
-#include <calendarinternalcrkeys.h>
+#include <CalendarInternalCRKeys.h>
 #include <ct/rcpointerarray.h>
 
 #include <calenservices.h>
--- a/meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcaleventprocessor.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/mrcaleventplugin/src/cmrcaleventprocessor.cpp	Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 *  Description : ESMR entry processor implementation
-*  Version     : %version: e002sa33#11 %
+*  Version     : %version: 11.1.1 %
 *
 */
 
@@ -34,8 +34,8 @@
 #include <calrrule.h>
 #include <caluser.h>
 #include <caltime.h>
-#include <caleninterimutils2.h>
-#include <magnentryui.h>
+#include <CalenInterimUtils2.h>
+#include <MAgnEntryUi.h>
 #include <ct/rcpointerarray.h>
 
 /// Unnamed namespace for local definitions
--- a/meetingrequest/mrprocessor/mrprocessorplugin/src/cesmrentryprocessor.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrprocessor/mrprocessorplugin/src/cesmrentryprocessor.cpp	Tue May 11 15:57:15 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 *  Description : ESMR entry processor implementation
-*  Version     : %version: e002sa33#14 %
+*  Version     : %version: 14.1.1 %
 *
 */
 
@@ -37,9 +37,9 @@
 #include <calrrule.h>
 #include <caluser.h>
 #include <caltime.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <cmrmailboxutils.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 #include <ct/rcpointerarray.h>
 
 /// Unnamed namespace for local definitions
--- a/meetingrequest/mrtasks/mrtaskplugin/group/mrtaskplugin.mmp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/group/mrtaskplugin.mmp	Tue May 11 15:57:15 2010 +0300
@@ -59,8 +59,6 @@
 
 APP_LAYER_SYSTEMINCLUDE
 
-SYSTEMINCLUDE /epoc32/include/ecom //TODO: Remove when Cmail headers are fixed
-
 LIBRARY                 esmrcommon.lib
 LIBRARY                 esmrservices.lib
 LIBRARY                 mrguicommon.lib
--- a/meetingrequest/mrtasks/mrtaskplugin/inc/cesmrfsemailmanager.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/inc/cesmrfsemailmanager.h	Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
 
 #include <e32base.h>
 //<cmail>
-#include "CFSMailCommon.h"
+#include "cfsmailcommon.h"
 #include "mmrinfoprocessor.h"
 #include "esmrdef.h"
 //</cmail>
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cesmrfsemailmanager.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cesmrfsemailmanager.cpp	Tue May 11 15:57:15 2010 +0300
@@ -22,13 +22,13 @@
 #include <apgcli.h>
 #include <apmrec.h>
 //<cmail>
-#include "CFSMailClient.h"
-#include "CFSMailBox.h"
-#include "CFSMailMessage.h"
-#include "CFSMailMessagePart.h"
+#include "cfsmailclient.h"
+#include "cfsmailbox.h"
+#include "cfsmailmessage.h"
+#include "cfsmailmessagepart.h"
 #include "mmrinfoprocessor.h"
-#include "CFSMailCommon.h"
-#include "CFSMailPlugin.h"
+#include "cfsmailcommon.h"
+#include "cfsmailplugin.h"
 //</cmail>
 #include <ecom/implementationinformation.h>
 #include "tesmrinputparams.h"
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cesmrmailplaitextformatter.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cesmrmailplaitextformatter.cpp	Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
 
 #include <esmrtasks.rsg>
 #include <cmrmailboxutils.h>
-#include <stringloader.h>
+#include <StringLoader.h>
 #include <calentry.h>
 #include <caluser.h>
 #include <avkon.rsg>
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailreplytask.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailreplytask.cpp	Tue May 11 15:57:15 2010 +0300
@@ -24,7 +24,7 @@
 #include <cmrmailboxutils.h>
 #include <calentry.h>
 //<cmail>
-#include "CFSMailMessage.h"
+#include "cfsmailmessage.h"
 #include <coemain.h>
 #include <coeaui.h>
 #include "FreestyleEmailUiConstants.h"
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailtask.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cesmrsendmrfsmailtask.cpp	Tue May 11 15:57:15 2010 +0300
@@ -16,8 +16,8 @@
 */
 
 
-#include "emailtrace.h"
 #include "cesmrsendmrfsmailtask.h"
+
 #include "cesmrcaldbmgr.h"
 #include "mesmrmeetingrequestentry.h"
 #include "cesmrfsemailmanager.h"
@@ -26,8 +26,7 @@
 #include "cesmrcaluserutil.h"
 #include "cesmrguilistquery.h"
 #include "esmrhelper.h"
-
-
+#include "cesmrfsmailboxutils.h"
 
 #include <coemain.h>
 #include <utf.h>
@@ -37,7 +36,8 @@
 #include <calentry.h>
 #include <calentryview.h>
 #include <calattachment.h>
-#include <cesmrfsmailboxutils.h>
+
+#include "emailtrace.h"
 
 
 // Unnamed namespace for local definitions
--- a/meetingrequest/mrtasks/mrtaskplugin/src/cmrtaskplugin.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrtasks/mrtaskplugin/src/cmrtaskplugin.cpp	Tue May 11 15:57:15 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2009 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"
@@ -35,10 +35,10 @@
 #include "esmrconfig.hrh"
 #include "cesmrcaldbmgr.h"
 //<cmail>
-#include "CFSMailCommon.h"
-#include "CFSMailClient.h"
-#include "CFSMailMessage.h"
-#include "CFSMailBox.h"
+#include "cfsmailcommon.h"
+#include "cfsmailclient.h"
+#include "cfsmailmessage.h"
+#include "cfsmailbox.h"
 //</cmail>
 
 
@@ -104,7 +104,7 @@
 // Queries response query from user.
 // ---------------------------------------------------------------------------
 //
-HBufC* QuerySendResponseQueryFromUserLC(
+HBufC* QuerySendResponseQueryFromUserL(
         TESMRCommand aCommand,
         TESMRResponseType& aResponseType,
         MESMRMeetingRequestEntry& aEntry )
@@ -177,7 +177,7 @@
                 CESMRResponseDialog::NewL( responseMessage );
         CleanupStack::PushL( respDlg );
 
-        TBool dialogRetValue( respDlg->ExecuteDlgLD() );
+        TInt dialogRetValue( respDlg->ExecuteDlgLD() );
         // Dialog has deleted itself --> Only pop from cleanup stack
         CleanupStack::Pop( respDlg );
 
@@ -186,15 +186,23 @@
 			aEntry.Entry().SetStatusL( CCalEntry::ETentative );
             User::Leave( KErrCancel );
             }
-        }
-    if ( responseMessage )
-        {
-        CleanupStack::PushL( responseMessage );
+        else if ( dialogRetValue == EAknCmdExit )
+        	{
+    		aResponseType = EESMRResponseDontSend;
+        	}
+        else if ( !responseMessage
+                  && dialogRetValue == EESMRCmdSendMR )
+            {
+            // Send command is triggered but response is empty
+            aResponseType = EESMRResponsePlain;
+            responseMessage = KNullDesC().AllocL();
+            }
         }
     else
-        {
-        responseMessage = KNullDesC().AllocLC();
-        }
+    	{
+		responseMessage = KNullDesC().AllocL();
+    	}
+
     return responseMessage;
     }
 
@@ -249,7 +257,7 @@
 
     MESMRMeetingRequestEntry& mrEntry =
         static_cast< MESMRMeetingRequestEntry& >( aEntry );
-    
+
     switch (aCommand)
         {
         case EESMRCmdAcceptMR:
@@ -291,7 +299,7 @@
         case EESMRCmdCalendarChange:
             task = CreateMoveMRToCurrentDBTaskL( mrEntry );
             break;
-            
+
         default:
             __ASSERT_DEBUG(EFalse, Panic(EESMRTaskFactoryInvalidTask) );
             User::Leave( KErrNotSupported );
@@ -314,7 +322,7 @@
 
     CESMRCombinedTask* task = NULL;
     TESMRRole role = aEntry.RoleL();
-    
+
     TBool syncObjectPresent( aEntry.IsSyncObjectPresent() );
     TBool isStored( aEntry.IsStoredL() );
 
@@ -328,52 +336,60 @@
         CleanupStack::PushL( task );
 
         TESMRResponseType responseType( EESMRResponsePlain );
-        HBufC* responseMessage = QuerySendResponseQueryFromUserLC(
+        HBufC* responseMessage = QuerySendResponseQueryFromUserL(
                 aCommand,
                 responseType,
                 aEntry );
-        
-        if ( !syncObjectPresent && EESMRCmdDeclineMR != aCommand)
-            {
-            // Entry is stored or deleted from calendar DB if
-            // sync object is not present
-            // Store MR task
-            AppendTaskL( *task,
-                         CESMRStoreMRTask::NewL(
-                         iCalDbMgr,
-                         aEntry,
-                         aEntry.MailboxUtils() ) );
-            }
+
+        // If response message is NULL, it means that user
+        // has cancelled response editing and wants to only exit
+        // application
+        if( responseMessage )
+        	{
+			CleanupStack::PushL( responseMessage );
+
+			if ( !syncObjectPresent && EESMRCmdDeclineMR != aCommand)
+				{
+				// Entry is stored or deleted from calendar DB if
+				// sync object is not present
+				// Store MR task
+				AppendTaskL( *task,
+							 CESMRStoreMRTask::NewL(
+							 iCalDbMgr,
+							 aEntry,
+							 aEntry.MailboxUtils() ) );
+				}
 
-        if ( EESMRResponseDontSend != responseType  ||
-             aEntry.IsSyncObjectPresent() )
-            {
-            // Send MR response via mail freestyle task
-            AppendTaskL( *task,
-                        CESMRSendMRRespFSMailTask::NewL(
-                                aCommand,
-                                iCalDbMgr,
-                                aEntry,
-                                aEntry.MailboxUtils(),
-                                responseType,
-                                *responseMessage ) );
-            }
-        CleanupStack::PopAndDestroy( responseMessage );
-        
-        if ( !syncObjectPresent && EESMRCmdDeclineMR == aCommand && 
-                isStored )
-            {
-            // Entry is deleted from calendar DB if
-            // sync object is not present and entry exits in database
-            // Declined --> Delete MR from cal DB task
-            AppendTaskL( *task,
-                        CESMRDeleteMRFromDbTask::NewL(
-                        iCalDbMgr,
-                        aEntry,
-                        aEntry.MailboxUtils() ) );
-            }
+			if ( EESMRResponseDontSend != responseType )
+				{
+				// Send MR response via mail freestyle task
+				AppendTaskL( *task,
+							CESMRSendMRRespFSMailTask::NewL(
+									aCommand,
+									iCalDbMgr,
+									aEntry,
+									aEntry.MailboxUtils(),
+									responseType,
+									*responseMessage ) );
+				}
+
+			CleanupStack::PopAndDestroy( responseMessage );
 
-        CleanupStack::Pop( task );
+			if ( !syncObjectPresent && EESMRCmdDeclineMR == aCommand &&
+					isStored )
+				{
+				// Entry is deleted from calendar DB if
+				// sync object is not present and entry exits in database
+				// Declined --> Delete MR from cal DB task
+				AppendTaskL( *task,
+							CESMRDeleteMRFromDbTask::NewL(
+							iCalDbMgr,
+							aEntry,
+							aEntry.MailboxUtils() ) );
+				}
+	       	}
+
+		CleanupStack::Pop( task );
         }
     else
         {
@@ -417,7 +433,7 @@
              aCommand == EESMRCmdSendMRUpdate )
             {
             // Send MR response via mail task
-            AppendTaskL( *task, 
+            AppendTaskL( *task,
                         CESMRSendMRFSMailTask::NewL(
                         iCalDbMgr,
                         aEntry,
@@ -562,7 +578,7 @@
         if ( aEntry.AttendeeCountL( attendeeFlags ) && aEntry.IsSentL()
         		&& !aEntry.OccursInPastL() )
         	{
-        	// if enrey doesn't need to send canellation, don't query
+        	// If entry doesn't need to send cancellation, don't query
         	if( aEntry.SendCanellationAvailable())
         		{
         		// Meeting request contains attendees --> Cancellation message
@@ -697,14 +713,14 @@
         __ASSERT_DEBUG( EFalse, Panic( EESMRTaskFactoryIllegalTask ) );
         User::Leave( KErrNotSupported );
         }
-    
+
     // Create combined task
     CESMRCombinedTask* task = CESMRCombinedTask::NewL(
             aEntry,
             CESMRCombinedTask::EESMRTrap );
-    
+
     CleanupStack::PushL( task );
-    
+
     if ( !aEntry.IsOpenedFromMail() )
         {
         // When deleting from the calendar --> Store first modifying entry
@@ -720,7 +736,7 @@
                         aEntry,
                         aEntry.MailboxUtils() ) );
         }
-    
+
     // Delete entry from old db
     AppendTaskL(
             *task,
@@ -728,7 +744,7 @@
                     iCalDbMgr,
                     aEntry,
                     aEntry.MailboxUtils() ) );
-    
+
     // Store entry to current db
     AppendTaskL(
             *task,
@@ -736,7 +752,7 @@
                     iCalDbMgr,
                     aEntry,
                     aEntry.MailboxUtils() ) );
-    
+
     CleanupStack::Pop( task );
     return task;
     }
--- a/meetingrequest/mrurlparserplugin/group/esmrurlparserplugin.mmp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrurlparserplugin/group/esmrurlparserplugin.mmp	Tue May 11 15:57:15 2010 +0300
@@ -44,7 +44,7 @@
 LIBRARY                 ecom.lib
 LIBRARY                 eposlandmarks.lib
 LIBRARY                 lbs.lib
-LIBRARY                 CommonEngine.lib
+LIBRARY                 commonengine.lib
 LIBRARY                 calinterimapi.lib
 LIBRARY                 inetprotutil.lib
 
--- a/meetingrequest/mrurlparserplugin/src/cesmrurlparserpluginimpl.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrurlparserplugin/src/cesmrurlparserpluginimpl.cpp	Tue May 11 15:57:15 2010 +0300
@@ -25,7 +25,7 @@
 #include <EPos_CPosLandmarkParser.h>
 #include <EPos_CPosLmOperation.h>
 #include <lbsposition.h>
-#include <EscapeUtils.h>
+#include <escapeutils.h>
 #include <finditemengine.h>
 #include <calentry.h>
 
--- a/meetingrequest/mrutils/inc/cesmrutils.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrutils/inc/cesmrutils.h	Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
 
 //  INCLUDE FILES
 #include <e32base.h>
-#include <cmrutils.h>
+#include <CMRUtils.h>
 #include "esmrdef.h"
 
 // FORWARD DECLARATIONS
--- a/meetingrequest/mrutils/inc/esmrutilsapiext.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrutils/inc/esmrutilsapiext.h	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef ESMRUTILSAPIEXT_H
 #define ESMRUTILSAPIEXT_H
 
-#include <cmrutils.h>
+#include <CMRUtils.h>
 
 /**
  * Extension API query function.
--- a/meetingrequest/mrutilscalplugin/data/2001E27F.rss	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrutilscalplugin/data/2001E27F.rss	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
 
 // INCLUDES
 #include <ecom/registryinfov2.rh>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
 #include "esmrinternaluid.h"
 
 //  RESOURCE DEFINITIONS
--- a/meetingrequest/mrutilscalplugin/inc/cesmrutilsimpl.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrutilscalplugin/inc/cesmrutilsimpl.h	Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
 #define CESMRUTILSIMPL_H
 
 //  INCLUDE FILES
-#include <cmrutils.h>
+#include <CMRUtils.h>
 
 // FORWARD DECLARATIONS
 class CESMRUtils;
--- a/meetingrequest/mrviewer/inc/cesmrviewerctrl.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewer/inc/cesmrviewerctrl.h	Tue May 11 15:57:15 2010 +0300
@@ -20,8 +20,8 @@
 #define CESMRVIEWERCTRL_H
 
 //  INCLUDES
-#include <magnentryui.h>
-#include <cmrutils.h>
+#include <MAgnEntryUi.h>
+#include <CMRUtils.h>
 #include <e32base.h>
 #include "mmrinfoprovider.h"
 
--- a/meetingrequest/mrviewer/src/cesmrviewerctrl.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewer/src/cesmrviewerctrl.cpp	Tue May 11 15:57:15 2010 +0300
@@ -48,7 +48,7 @@
 
 // From System
 //<cmail>
-#include <cmrutils.h>
+#include <CMRUtils.h>
 #include "esmrutilsapiext.h"
 //</cmail>
 #include <msvstd.h>
@@ -59,7 +59,7 @@
 #include <eikappui.h>
 #include <eikenv.h>
 #include <calentry.h>
-#include <caleninterimutils2.h>
+#include <CalenInterimUtils2.h>
 #include <calcommon.h>
 
 // CONSTANTS
@@ -618,7 +618,7 @@
         case EESMRCmdCalEntryUISend:      // Send calendar entry item
         case EESMRCmdCalEntryUIAddParticipants:  // Add participants to meeting item
             {
-            ASSERT( EFalse ); // TODO: implement when tasks are ready
+            ASSERT( EFalse );
             }
             break;
 
--- a/meetingrequest/mrviewercalplugin/data/2001E27E.rss	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewercalplugin/data/2001E27E.rss	Tue May 11 15:57:15 2010 +0300
@@ -18,7 +18,7 @@
 
 // INCLUDES
 #include <ecom/registryinfov2.rh>
-#include <meetingrequestuids.hrh>
+#include <MeetingRequestUids.hrh>
 #include "esmrinternaluid.h"
 
 //  RESOURCE DEFINITIONS
--- a/meetingrequest/mrviewercalplugin/inc/caleneditorsplugin.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewercalplugin/inc/caleneditorsplugin.h	Tue May 11 15:57:15 2010 +0300
@@ -21,7 +21,7 @@
 
 #include <e32base.h>
 #include <ecom/ecom.h>
-#include <magnentryui.h>
+#include <MAgnEntryUi.h>
 
 /**
  * Resolver for loading correct ECOM Implementation for 
--- a/meetingrequest/mrviewercalplugin/inc/cesmrviewersimpl.h	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewercalplugin/inc/cesmrviewersimpl.h	Tue May 11 15:57:15 2010 +0300
@@ -20,7 +20,7 @@
 #define CESMRVIEWERSIMPL_H		
 
 //  INCLUDES
-#include <cmrviewers.h>
+#include <CMRViewers.h>
 #include <e32base.h>
 
 // FORWARD DECLARATIONS
--- a/meetingrequest/mrviewercalplugin/src/cesmrviewersimpl.cpp	Tue Apr 27 16:20:14 2010 +0300
+++ b/meetingrequest/mrviewercalplugin/src/cesmrviewersimpl.cpp	Tue May 11 15:57:15 2010 +0300
@@ -29,7 +29,7 @@
 
 // From MR Mailbox Utils
 #include <cmrmailboxutils.h>
-#include <cmrutils.h>
+#include <CMRUtils.h>
 
 // From System
 #include <coemain.h>