Revision: 201001
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:16:40 +0200
changeset 2 0bf1d54f37d9
parent 1 d09ac5c1e252
child 3 1324afda5dee
Revision: 201001 Kit: 201003
email/imum/Mtms/Src/SmtpMtmUiData.cpp
email/imum/Utils/Inc/ImumConstants.h
email/imum/conf/imum.confml
email/imum/help/inc/mbxs.hlp.hrh
messagingappbase/mce/group/mce.rss
messagingappbase/mce/help/inc/mce.hlp.hrh
messagingappbase/mce/inc/MceExtraItems.rh
messagingappbase/mce/inc/MceListItem.h
messagingappbase/mce/src/MceIdleMtmLoader.cpp
messagingappbase/mce/src/MceMainViewListItemArray.cpp
messagingappbase/mce/src/MceMainViewListView.cpp
messagingappbase/mce/src/MceMessageListView.cpp
messagingappbase/mce/src/mceui.cpp
messagingappbase/mceextraitems/group/ExtraIconlist_Scalable.txt
messagingappbase/msgeditor/appuisrc/MsgCheckNames.cpp
messagingappbase/msgeditor/appuisrc/MsgEditorAppUi.cpp
messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp
messagingappbase/ncnlist/group/bld.inf
messagingappbase/schemeplugin/inc/BaseHandler.h
messagingappbase/smartmessaging/bva/src/BvaContainer.cpp
messagingappbase/smartmessaging/ringbc/src/RingingToneBioControl.cpp
messagingappbase/smartmessaging/vcalbc/src/VCalendarBioControl.cpp
messagingappbase/smartmessaging/vcardbc/src/vcardvpbutil.cpp
messagingappbase/smartmessaging/wmlbc/inc/WmlBMSubItem30.h
messagingappbase/smartmessaging/wmlbc/inc/WmlBMUtils30.h
messagingappbase/smartmessaging/wmlbc/src/WmlBMSubItem30.cpp
messagingappbase/smartmessaging/wmlbc/src/WmlBMUtils30.cpp
messagingappbase/smilengine/engine/core/smiltimelist.cpp
mmsengine/mmsmessage/src/mmsheaders.cpp
mmsengine/mmsmessage/src/mmsownnumber.cpp
mobilemessaging/audiomsg/data/audiomessage.rss
mobilemessaging/audiomsg/data/audiomessagemtm.rss
mobilemessaging/audiomsg/src/audiomessageappui.cpp
mobilemessaging/audiomsg/src/audiomessageprogressdialog.cpp
mobilemessaging/mmsui/help/inc/mms.hlp.hrh
mobilemessaging/mmsui/notmtmsrc/NotMtmUi.cpp
mobilemessaging/mmsui/viewer/MmsViewer.rss
mobilemessaging/mmsui/viewerinc/UniMmsViewerAppUi.h
mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp
mobilemessaging/msgmedia/help/inc/msg.hlp.hrh
mobilemessaging/postcard/help/inc/postcard.hlp.hrh
mobilemessaging/postcard/postcard/Postcard.rss
mobilemessaging/postcard/postcardsrc/PostcardAppUi.cpp
mobilemessaging/postcard/postcardsrc/PostcardRecipientWrapper.cpp
mobilemessaging/postcard/postcardui/PostcardUi.rss
mobilemessaging/smilui/playersrc/SmilPlayerPresentationController.cpp
mobilemessaging/smsui/help/inc/sms.hlp.hrh
mobilemessaging/smsui/viewer/SmsViewer.rss
mobilemessaging/smsui/viewer/SmsViewer_reg.rss
mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp
mobilemessaging/unieditor/application/data/UniEditor.rss
mobilemessaging/unieditor/application/data/UniEditor_reg.rss
mobilemessaging/unieditor/application/inc/UniEditorApp.hrh
mobilemessaging/unieditor/application/inc/UniEditorAppUi.h
mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp
mobilemessaging/unieditor/application/src/UniEditorInsertOperation.cpp
mobilemessaging/unieditor/application/src/UniEditorObjectsModelObserver.cpp
mobilemessaging/unieditor/application/src/UniEditorSaveOperation.cpp
mobilemessaging/unieditor/help/inc/unif.hlp.hrh
mobilemessaging/unieditor/smsplugin/inc/UniSmsPlugin.h
mobilemessaging/unieditor/smsplugin/src/UniSmsPlugin.cpp
msg_plat/internet_mail_mtm_ui_api/inc/impicmds.h
msg_plat/messaging_center_ui_utilities_api/inc/MtmExtendedCapabilities.hrh
msg_plat/messaging_center_ui_utilities_api/inc/MuiuMsgEditorService.rh
msg_plat/messaging_editor_api/inc/MsgEditor.rh
msg_plat/messaging_editor_api/inc/MsgEditorCommon.h
--- a/email/imum/Mtms/Src/SmtpMtmUiData.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/email/imum/Mtms/Src/SmtpMtmUiData.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -135,13 +135,10 @@
         //
         // --- Support depends on variation ---
         case KUidMsvMtmQuerySupportEditor:
-            aResponse = iFFEmailVariation ? EFalse : ETrue;
-            // FALLTHROUGH
-        case KUidMtmQueryCanCreateNewMsgValue:
-            return iFFEmailVariation ? KErrNotSupported : KErrNone;
-    
-        //
+            aResponse = ETrue;
+            break;
         // --- Supported non-valued capabilities ---
+		case KUidMtmQueryCanCreateNewMsgValue:
         case KUidMtmQuerySupportAttachmentsValue:
         case KUidMtmQueryCanSendMsgValue:
         case KUidMsvMtmQueryMessageInfo:
--- a/email/imum/Utils/Inc/ImumConstants.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/email/imum/Utils/Inc/ImumConstants.h	Mon Jan 18 20:16:40 2010 +0200
@@ -48,8 +48,8 @@
 const TInt32 KImumMboxDefaultInboxUpdateLimit = 50;
 const TInt32 KImumMboxDefaultFolderUpdateLimit = 30;
 const TInt KImumMboxDefaultMailDeletion = TImumDaSettings::EValueDeletionAlwaysAsk;
-const TInt KImumMboxDefaultAutoNotifications = TImumDaSettings::EValueNotificationsOff;
-const TInt KImumMboxDefaultAutoRetrieval = TImumDaSettings::EValueAutoHomeNetwork;
+const TInt KImumMboxDefaultAutoNotifications = TImumDaSettings::EValueNotificationsHome;
+const TInt KImumMboxDefaultAutoRetrieval = TImumDaSettings::EValueAutoOff;
 const TInt KImumMboxDefaultAutoRetrievalDays = TImumDaSettings::EFlagSetAllDays;
 const TInt64 KImumMboxDefaultAutoRetrievalStartHour = 0;
 const TInt64 KImumMboxDefaultAutoRetrievalEndHour = 0;
Binary file email/imum/conf/imum.confml has changed
--- a/email/imum/help/inc/mbxs.hlp.hrh	Thu Jan 07 12:45:05 2010 +0200
+++ b/email/imum/help/inc/mbxs.hlp.hrh	Mon Jan 18 20:16:40 2010 +0200
@@ -1,10 +1,23 @@
+/*
+* Copyright (c) 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+	
 //
-// mbxs.hlp.hrh
-// 
-
-//
-// File generated by CSXHelp Utilities on 2009-04-17
-// 
+// mbxs.hlp.hrh generated by CSXHelp Utilities.
+//           
 
 #ifndef __MBXS_HLP_HRH__
 #define __MBXS_HLP_HRH__
@@ -14,20 +27,14 @@
 _LIT(KMBXS_HLP_SETT_MBX_IN, "MBXS_HLP_SETT_MBX_IN"); // 
 _LIT(KMBXS_HLP_SETT_MBX_IN_OUT, "MBXS_HLP_SETT_MBX_IN_OUT"); // 
 _LIT(KMBXS_HLP_SETT_MBX_OUT, "MBXS_HLP_SETT_MBX_OUT"); // 
-_LIT(KMCE_HLP_MAILBOX_OFFLINE, "MCE_HLP_MAILBOX_OFFLINE"); // 
-_LIT(KMCE_HLP_MAILBOX_ONLINE, "MCE_HLP_MAILBOX_ONLINE"); // 
-_LIT(KMCE_HLP_MESS_SYNC, "MCE_HLP_MESS_SYNC"); // 
-_LIT(KMCE_HLP_MESS_SYNCI, "MCE_HLP_MESS_SYNCI"); // 
-_LIT(KMCE_HLP_MESS_SYNCO, "MCE_HLP_MESS_SYNCO"); // 
-_LIT(KMCE_HLP_MESS_SYNCS, "MCE_HLP_MESS_SYNCS"); // 
 _LIT(KMCE_HLP_SETTINGS_EMAIL, "MCE_HLP_SETTINGS_EMAIL"); // 
-_LIT(KMCE_HLP_SETTINGS_SYNCMAIL, "MCE_HLP_SETTINGS_SYNCMAIL"); // 
 _LIT(KMCE_HLP_SETT_EMAILMAIN, "MCE_HLP_SETT_EMAILMAIN"); // 
 _LIT(KMCE_HLP_SETT_MAILBLIST, "MCE_HLP_SETT_MAILBLIST"); // 
 _LIT(KMCE_HLP_SETT_MAILFOLDER_UPD, "MCE_HLP_SETT_MAILFOLDER_UPD"); // 
 _LIT(KMCE_HLP_SETT_MAIL_ONLI, "MCE_HLP_SETT_MAIL_ONLI"); // 
 _LIT(KMCE_HLP_SETT_MAIL_USER, "MCE_HLP_SETT_MAIL_USER"); // 
-_LIT(KMCE_HLP_SETT_SMAILBLIST, "MCE_HLP_SETT_SMAILBLIST"); // 
 _LIT(KMCE_HLP_SETT_SMAILBOX, "MCE_HLP_SETT_SMAILBOX"); // 
+_LIT(KMCE_HLP_MAILBOX_OFFLINE, "MCE_HLP_MAILBOX_OFFLINE"); // 
+_LIT(KMCE_HLP_MAILBOX_ONLINE, "MCE_HLP_MAILBOX_ONLINE"); // 
 
 #endif 
\ No newline at end of file
--- a/messagingappbase/mce/group/mce.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mce/group/mce.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -481,12 +481,14 @@
         MENU_ITEM
             {
             command = EMceCmdMarkAsReadMsgs;
-            txt = qtn_mce_rm_mark_read_messages;            
+            txt = qtn_mce_rm_mark_read_messages;
+            flags = EEikMenuItemSpecific;
             },
         MENU_ITEM
             {
             command = EMceCmdMarkAsUnreadMsgs;
             txt = qtn_mce_rm_mark_unread_messages;
+            flags = EEikMenuItemSpecific;
             },
         MENU_ITEM
             {
--- a/messagingappbase/mce/help/inc/mce.hlp.hrh	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mce/help/inc/mce.hlp.hrh	Mon Jan 18 20:16:40 2010 +0200
@@ -2,9 +2,9 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Symbian Foundation License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
--- a/messagingappbase/mce/inc/MceExtraItems.rh	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mce/inc/MceExtraItems.rh	Mon Jan 18 20:16:40 2010 +0200
@@ -37,6 +37,7 @@
     WORD    index = -1;
     WORD    icon_index = -1;
     LONG    app_icon_index = -1; // if set, used to find application icon needed if wanted to skin this
+    LTEXT   secondary_text = "";
     }
 
 // End of file
--- a/messagingappbase/mce/inc/MceListItem.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mce/inc/MceListItem.h	Mon Jan 18 20:16:40 2010 +0200
@@ -41,6 +41,7 @@
         TMsvId                  iMsvId;
         TMcePrintableText       iPrintableText;
         TInt                    iIconIndex;
+        TMcePrintableText       iSecondaryText;
 #ifdef RD_MSG_NAVIPANE_IMPROVEMENT
         TInt                    iMessageCount;
 #endif // RD_MSG_NAVIPANE_IMPROVEMENT        
@@ -55,6 +56,7 @@
         TInt                    iApplicationUid;
         TMcePrintableText       iPrintableText;
         TMcePrintableText       iCommandText;
+        TMcePrintableText       iSecondaryText;
     };
     
 typedef CArrayFixFlat<TMceMainViewExtraItem> CMceMainViewExtraItemArray;
--- a/messagingappbase/mce/src/MceIdleMtmLoader.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mce/src/MceIdleMtmLoader.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -208,6 +208,11 @@
         canSend.iUid = KUidMtmQueryCanCreateNewMsgValue;
         canSendResponse = uiData->QueryCapability( canSend, response );      
         }
+        
+    if(cMailVal && aMtmType == KSenduiMtmSmtpUid)
+       {
+       canSendResponse = KErrNotSupported;
+       }
 
     TBool foundPopup = EFalse;
     TBool foundSubmenu = EFalse;
--- a/messagingappbase/mce/src/MceMainViewListItemArray.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mce/src/MceMainViewListItemArray.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -366,7 +366,7 @@
     TUid aApplicationUid )
     {
     TMcePrintableText tempText = aNewItem.iPrintableText; // let's save string
-
+    TMcePrintableText secondarytxt = aNewItem.iSecondaryText;
     aNewItem.iExtraItem = ETrue;
     // make sure it will not be mixed with items in msgs
     TMceBitmapListItem bitmapItem;
@@ -403,6 +403,8 @@
     aNewItem.iPrintableText.AppendNum( index );
     aNewItem.iPrintableText.Append( KColumnListSeparator );
     aNewItem.iPrintableText.Append( tempText );
+    aNewItem.iPrintableText.Append( KColumnListSeparator );
+    aNewItem.iPrintableText.Append( secondarytxt );
 
     InsertL( aIndex, aNewItem );
     }
@@ -1086,7 +1088,18 @@
                         TUid applicationUid;
                         applicationUid.iUid = reader.ReadUint32();
                         extraItem.iApplicationUid = applicationUid.iUid;
-
+                        // secondary text
+                        txt = reader.ReadHBufCL();   //secondary text                       
+                        if(txt)
+                            {
+                            extraItem.iSecondaryText.Copy( *txt );
+                            delete txt;
+                            txt = NULL;
+                            }   
+                        else
+                            {
+                            extraItem.iSecondaryText.Copy(KNullDesC());
+                            }
                         iExtraItemsArray->AppendL( extraItem );
                         extraItem.iCommandId++;
                         }
@@ -1130,6 +1143,7 @@
         tempItem.iExtraItem = ETrue;
         tempItem.iMsvId = extraItem.iCommandId;
        	tempItem.iPrintableText.Copy( extraItem.iPrintableText );
+       	tempItem.iSecondaryText.Copy(extraItem.iSecondaryText);
        	TUid appUid;
        	appUid.iUid = extraItem.iApplicationUid;
        	AddExtraItemWithIconL( tempItem, Count(), extraItem.iIconIndex, appUid );
--- a/messagingappbase/mce/src/MceMainViewListView.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mce/src/MceMainViewListView.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -30,7 +30,7 @@
 #include <eikmenub.h>
 #include <msvids.h>
 #include <featmgr.h>
-#include <SchemeHandler.h>
+#include <schemehandler.h>
 #include <ConeResLoader.h>
 #include <apgcli.h>
 #include <msvstd.hrh>
@@ -809,8 +809,11 @@
 		        iMsgListContainer->ListBox()->DrawDeferred();        
                 }
             }
-
-        CheckMainViewBitmapL( changedFolderId );
+		// Coverty fix, Forward NULL
+        if ( iMsgListContainer )
+           {
+           CheckMainViewBitmapL( changedFolderId );
+           }
         break;
         }
 
--- a/messagingappbase/mce/src/MceMessageListView.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mce/src/MceMessageListView.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -228,6 +228,15 @@
     // Reset the sort order
     iFolderItemArray->Reset();
        }
+	if ( iMsgListContainer &&
+	     iCurrentListType != GetFolderListBoxType())
+	    {
+	    ListboxTypeChangedL();
+	    }
+	else
+	    {
+	    CreateListboxL();        
+	    }	    
     if ( iMsgListContainer )
         {
         iMsgListContainer->SetSortTypeL( iSortOrder, iOrdering );
@@ -276,15 +285,6 @@
         iMceUi->SetDontExitOnNextOperationComplete();
         }
 
-    if ( iMsgListContainer &&
-        iCurrentListType != GetFolderListBoxType())
-        {
-        ListboxTypeChangedL();
-        }
-    else
-        {
-        CreateListboxL();        
-        }
     
     
     if ( iMsgListContainer && aPrevViewId == TDRVIEWID )
--- a/messagingappbase/mce/src/mceui.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mce/src/mceui.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -713,6 +713,17 @@
 
     iUiRegistry=CMtmUiDataRegistry::NewL(*iSession);
 
+   
+    iMceMainView->HandleMsgServerStartupL();
+    
+    CMceDeliveryReportView* view3 = CMceDeliveryReportView::NewL( *iSessionHolder );
+    CleanupStack::PushL( view3 );
+    AddViewL( view3 );      // transfer ownership to CAknAppUi
+    CleanupStack::Pop( view3 );
+
+    iMceDeliveryView = view3;
+
+     
     CMceMessageListView* mceListView = CMceMessageListView::NewL(
         iSession,
         KMsvLocalServiceIndexEntryId,
@@ -725,8 +736,8 @@
     iMceListView = mceListView;
 
 
-    // should be called after creation of iUiRegistry
-    iMceMainView->HandleMsgServerStartupL();
+
+
     
     iAudioMsgEnabled = FeatureManager::FeatureSupported( KFeatureIdAudioMessaging ); // CR : 401-1806
     iPostcardEnabled = FeatureManager::FeatureSupported( KFeatureIdMmsPostcard ) ; // CR : 401-1806
@@ -745,12 +756,7 @@
     iMceListView = mceListView;*/
     iMceListView->HandleMsgServerStartupL();
 
-    CMceDeliveryReportView* view3 = CMceDeliveryReportView::NewL( *iSessionHolder );
-    CleanupStack::PushL( view3 );
-    AddViewL( view3 );      // transfer ownership to CAknAppUi
-    CleanupStack::Pop( view3 );
-
-    iMceDeliveryView = view3;
+
 
     iMceMainView->ListContainer()->ListItems()->SetAlwaysOnline( iAlwaysOnline );
 
@@ -4100,6 +4106,7 @@
 
                 else if ( functionInfo.iFuncId == KMtmUiFunctionDeliveryStatus )
                     {
+                    data.iFlags |= EEikMenuItemSpecific;               
                     aMenuPane.AddMenuItemL( data, EMceCmdUndelete );
                     }
 
--- a/messagingappbase/mceextraitems/group/ExtraIconlist_Scalable.txt	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/mceextraitems/group/ExtraIconlist_Scalable.txt	Mon Jan 18 20:16:40 2010 +0200
@@ -1,3 +1,4 @@
 /c8,8 qgn_menu_mce.svg
 /c8,8 qgn_menu_smsvo.svg
 /c8,8 qgn_menu_wml.svg
+/c8,8 qgn_prop_im_ibox.svg
--- a/messagingappbase/msgeditor/appuisrc/MsgCheckNames.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/msgeditor/appuisrc/MsgCheckNames.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -242,8 +242,12 @@
         {
         PerformAdvancedMatchL( aText, fieldTypes );
         }
-    
-    TInt contactAmount = iFoundContacts->Count();
+     // Coverty fix, Forward NULL , http://ousrv057/cov.cgi?cid=35690 
+    TInt contactAmount;  
+    if(iFoundContacts)
+        {
+        contactAmount = iFoundContacts->Count();
+      	}
 
     // Offer the user a list of matching contacts
     if ( contactAmount > 1 )
--- a/messagingappbase/msgeditor/appuisrc/MsgEditorAppUi.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/msgeditor/appuisrc/MsgEditorAppUi.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -626,8 +626,6 @@
     // to by-pass scanner warning about member variable being stored into
     // cleanup stack blocker is first stored into temporary variable. Storing
     // is allowed here as it is not owned.
-    CAknInputBlock* blocker = CAknInputBlock::NewCancelHandlerLC( this );
-    iInputBlocker = blocker;
 
     CMuiuOperationWait* wait =
         CMuiuOperationWait::NewLC( EActivePriorityWsEvents + 10 );
@@ -638,8 +636,7 @@
 
     wait->Start();
     
-    CleanupStack::PopAndDestroy( 3, iInputBlocker );  // absorber, wait, oper
-    iInputBlocker = NULL;
+    CleanupStack::PopAndDestroy( 2 );  // absorber, wait, oper
     }
 
 // ---------------------------------------------------------
--- a/messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -248,7 +248,8 @@
                 {
                 iPreviouslyFocusedControl = leftArrowIndicator;
                 }
-            else if ( iPreviouslyFocusedControl == leftArrowIndicator )
+            // Coverty fix , Forward NULL, http://ousrv057/cov.cgi?cid=35876
+            else if ( iObserver && iPreviouslyFocusedControl == leftArrowIndicator )
                 {
                 iObserver->HandleNavigationControlEventL( 
                             MMsgNaviPaneControlObserver::EMsgNaviLeftArrowPressed );
@@ -370,11 +371,20 @@
         {
         TAknLayoutRect leftArrowTouchRect;
         leftArrowTouchRect.LayoutRect( Rect(), AknLayoutScalable_Apps::aid_size_touch_mv_arrow_left(iVarientId) );
-        iLeftArrowTouchRect = leftArrowTouchRect.Rect();
     
         TAknLayoutRect rightArrowTouchRect;
         rightArrowTouchRect.LayoutRect( Rect(), AknLayoutScalable_Apps::aid_size_touch_mv_arrow_right(iVarientId) );
-        iRightArrowTouchRect = rightArrowTouchRect.Rect();
+        if ( AknLayoutUtils::LayoutMirrored() )
+        	{
+        		iLeftArrowTouchRect=rightArrowTouchRect.Rect();
+        		iRightArrowTouchRect= leftArrowTouchRect.Rect();
+        	}
+        else
+        	{
+        		iLeftArrowTouchRect=leftArrowTouchRect.Rect();
+        		iRightArrowTouchRect= rightArrowTouchRect.Rect();
+        	}
+ 
         }
     }
         
--- a/messagingappbase/ncnlist/group/bld.inf	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/ncnlist/group/bld.inf	Mon Jan 18 20:16:40 2010 +0200
@@ -33,7 +33,7 @@
 ../conf/s60ncnlist.confml              APP_LAYER_CONFML(s60ncnlist.confml)
 ../conf/s60ncnlist_101F87A8.crml       APP_LAYER_CRML(s60ncnlist_101F87A8.crml)
 ../sis/ncnlist_stub.sis                /epoc32/data/z/system/install/ncnlist_stub.sis
-../loc/ncn.loc                         APP_LAYER_LOC_EXPORT_PATH(Ncn.loc)
+../loc/ncn.loc                         APP_LAYER_LOC_EXPORT_PATH(ncn.loc)
 
 PRJ_MMPFILES
 ../group/Ncnlist.mmp
--- a/messagingappbase/schemeplugin/inc/BaseHandler.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/schemeplugin/inc/BaseHandler.h	Mon Jan 18 20:16:40 2010 +0200
@@ -23,7 +23,7 @@
 
 // INCLUDES
 
-#include <SchemeHandler.h>
+#include <schemehandler.h>
 #include <e32base.h>
 
 // FORWARD DECLARATION
--- a/messagingappbase/smartmessaging/bva/src/BvaContainer.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/smartmessaging/bva/src/BvaContainer.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -181,7 +181,7 @@
                 {
                 return iBioControl;
                 }
-            else
+            else if( iScrollBar )
                 {
                 return iScrollBar->ComponentControl( aIndex );
                 }
--- a/messagingappbase/smartmessaging/ringbc/src/RingingToneBioControl.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/smartmessaging/ringbc/src/RingingToneBioControl.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -71,6 +71,7 @@
 const TInt KShowNotes = 1;
 
 const TInt KFrameExpansion = 10;
+const TInt KMaxVolumeLevel = 10;
 
 // MODULE DATA STRUCTURES
 
@@ -578,7 +579,8 @@
     {
     TInt ringingVol;
     TInt ringingType;
-
+    TInt aMaxVolume;
+	aMaxVolume = iAudioControl->MaxVolume();
 	CRepository* repository = CRepository::NewLC( KCRUidProfileEngine );
 
 	User::LeaveIfError( repository->Get( KProEngActiveRingingVolume, ringingVol ));
@@ -595,8 +597,9 @@
         }
     else
         {
+        TInt result( aMaxVolume * ringingVol / KMaxVolumeLevel ); 
         RDebug::Print(_L("Ringing volume : %d"), ringingVol);
-        iAudioControl->SetVolume(ringingVol);
+        iAudioControl->SetVolume(result);
         }
 #endif
     }
--- a/messagingappbase/smartmessaging/vcalbc/src/VCalendarBioControl.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/smartmessaging/vcalbc/src/VCalendarBioControl.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -44,7 +44,7 @@
 #include <ecom/ecom.h>
 #include <AknDef.h>
 #include <AiwServiceHandler.h>          // CAiwServiceHandler
-#include <smsviewer.rsg>
+#include <SmsViewer.rsg>
 #include <bva.rsg>
 #include <AiwCommon.hrh>
 #include <data_caging_path_literals.hrh>
--- a/messagingappbase/smartmessaging/vcardbc/src/vcardvpbutil.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/smartmessaging/vcardbc/src/vcardvpbutil.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -46,9 +46,9 @@
 #include <MVPbkContactFieldDateTimeData.h>
 #include <CVPbkFieldTypeSelector.h>
 #include <CVPbkContactStoreUri.h>
-#include <stringloader.h>           // StringLoader
-#include <AknNoteWrappers.h>
-#include <pbk2commonui.rsg>
+#include <StringLoader.h>           // StringLoader
+#include <aknnotewrappers.h>
+#include <Pbk2CommonUi.rsg>
 #include "VCardLog.h"
 #include <s32file.h> // for RFileReadStream
 #include <barsread.h> // for ResourceReader
--- a/messagingappbase/smartmessaging/wmlbc/inc/WmlBMSubItem30.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/smartmessaging/wmlbc/inc/WmlBMSubItem30.h	Mon Jan 18 20:16:40 2010 +0200
@@ -25,7 +25,7 @@
 // INCLUDES
 #include "WmlSubItemBase.h"
 
-#include <FavouritesDb.h>
+#include <favouritesdb.h>
 
 // FORWARD DECLARATIONS
 
--- a/messagingappbase/smartmessaging/wmlbc/inc/WmlBMUtils30.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/smartmessaging/wmlbc/inc/WmlBMUtils30.h	Mon Jan 18 20:16:40 2010 +0200
@@ -23,7 +23,7 @@
 #define WMLBMUTILS_H
 
 // INCLUDES
-#include <FavouritesDb.h>
+#include <favouritesdb.h>
 
 // DATA TYPES
 
--- a/messagingappbase/smartmessaging/wmlbc/src/WmlBMSubItem30.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/smartmessaging/wmlbc/src/WmlBMSubItem30.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -27,7 +27,7 @@
 #include "WmlBioControl.pan"
 #include "WmlLog.h"
 
-#include <FavouritesItemList.h>
+#include <favouritesitemlist.h>
 #include <WMLBC.rsg>                    // resource identifiers
 #include <StringLoader.h>               // StringLoader
 #include <msgnamevalue.h>               // CMsgNameValue
--- a/messagingappbase/smartmessaging/wmlbc/src/WmlBMUtils30.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/smartmessaging/wmlbc/src/WmlBMUtils30.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -21,7 +21,7 @@
 // INCLUDE FILES
 
 #include "WmlBMUtils30.h"
-#include <FavouritesItemList.h>         // CFavouritesItemList         
+#include <favouritesitemlist.h>         // CFavouritesItemList         
 
 // ================= MEMBER FUNCTIONS =======================
 
--- a/messagingappbase/smilengine/engine/core/smiltimelist.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/messagingappbase/smilengine/engine/core/smiltimelist.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -179,7 +179,7 @@
 		{
 		iFirst = aRem->Next();
 		}
-	else
+	else if( aPrev )
 		{
 		aPrev->SetNext( aRem->Next() );
 		}
--- a/mmsengine/mmsmessage/src/mmsheaders.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mmsengine/mmsmessage/src/mmsheaders.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -351,14 +351,16 @@
         stream.AssignLC( aStore, KUidMmsApplicationInfoStream ); // pushes 'stream' to the stack
         length = ApplicId().Length();
         stream.WriteInt32L( length );
-        if ( length > 0 )
+        // Coverty fix, Forward NULL , http://ousrv057/cov.cgi?cid=35556
+        if ( length > 0 && iApplicationId )
             {
             stream << iApplicationId->Des();
             }
         
         length = ReplyApplicId().Length();
         stream.WriteInt32L( length );
-        if ( length > 0 )
+        // Coverty fix, Forward NULL , http://ousrv057/cov.cgi?cid=35559
+        if ( length > 0 && iReplyToApplicationId )
             {
             stream << iReplyToApplicationId->Des();
             }
@@ -387,14 +389,16 @@
 
         length = RecommendedRetrievalModeText().Length();
         stream.WriteInt32L( length );
-        if ( length > 0 )
+        // Coverty fix, Forward NULL , http://ousrv057/cov.cgi?cid=35557
+        if ( length > 0 && iRecommendedRetrievalModeText )
             {
             stream << iRecommendedRetrievalModeText->Des();
             }
             
         length = ReplaceCancelId().Length();
         stream.WriteInt32L( length );
-        if ( length > 0 )
+        // Coverty fix, Forward NULL , http://ousrv057/cov.cgi?cid=35558
+        if ( length > 0 && iReplaceCancelId )
             {
             stream << iReplaceCancelId->Des();
             }
--- a/mmsengine/mmsmessage/src/mmsownnumber.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mmsengine/mmsmessage/src/mmsownnumber.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -521,9 +521,13 @@
         {
         iMatch = EFalse;
         iState = EMmsOwnNumberSearching;
-        iOperation = iContactManager->RetrieveContactL(
+		// Coverty fix, Forward NULL
+        if(iResultArray)
+        	{
+        	iOperation = iContactManager->RetrieveContactL(
                 iResultArray->At( iContactToMatch ),
                 *this);
+            }
         iStatus = KRequestPending;
         SetActive();
         }
--- a/mobilemessaging/audiomsg/data/audiomessage.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/audiomsg/data/audiomessage.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -30,15 +30,15 @@
 #include <avkon.mbg>
 #include <audiomessage.mbg>
 #include <avkon.loc>
-#include <DRMCommon.loc>
-#include <Messaging.loc>
+#include <drmcommon.loc>
+#include <messaging.loc>
 #include <appinfo.rh>
 #include <data_caging_paths_strings.hrh>
 #include "audiomessage.hrh"
 #include <muiu.mbg> 
 #include <aknsconstants.hrh>
 #include <audiomessage.loc>
-#include <VoiceRecorder.loc>
+#include <voicerecorder.loc>
 
 RESOURCE RSS_SIGNATURE { }
 RESOURCE TBUF { buf = ""; }
--- a/mobilemessaging/audiomsg/data/audiomessagemtm.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/audiomsg/data/audiomessagemtm.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -28,7 +28,7 @@
 #include <MtmExtendedCapabilities.hrh>
 #include <avkon.loc>
 #include <muiusettingsarray.rh>
-#include <Messaging.loc>
+#include <messaging.loc>
 #include <audiomessage.loc>
 
 
--- a/mobilemessaging/audiomsg/src/audiomessageappui.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/audiomsg/src/audiomessageappui.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -2715,12 +2715,13 @@
     	}
     	
     iWaitDialog->SetCallback( this );	
-    iWaitDialog->SetTextL( *string );
-    iWaitResId = aResourceId;
+    // Coverty fix, Forward NULL , http://ousrv057/cov.cgi?cid=35709 
     if (string)
         {
+        iWaitDialog->SetTextL( *string );
         CleanupStack::PopAndDestroy( string );
         }
+    iWaitResId = aResourceId;
     iWaitDialog->PrepareLC( waitNoteResource );
 
     AMSLOGGER_WRITE( "CAudioMessageAppUi::ShowWaitNoteL <<" );
--- a/mobilemessaging/audiomsg/src/audiomessageprogressdialog.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/audiomsg/src/audiomessageprogressdialog.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -565,7 +565,9 @@
 		case R_AUDIOMESSAGE_PROGRESS_PAUSED:
 		tempBuf = iTextPaused;
 		break;
+		// Coverty fix, Forward NULL; http://ousrv057/cov.cgi?cid=35851
 		default:
+		tempBuf = iTextPlaying;
 		break;		
 		}
 	
--- a/mobilemessaging/mmsui/help/inc/mms.hlp.hrh	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/mmsui/help/inc/mms.hlp.hrh	Mon Jan 18 20:16:40 2010 +0200
@@ -2,9 +2,9 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Symbian Foundation License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
--- a/mobilemessaging/mmsui/notmtmsrc/NotMtmUi.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/mmsui/notmtmsrc/NotMtmUi.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -1495,10 +1495,11 @@
     if ( dialog && *dialog )
         { 
         delete *dialog;
+        // Coverty fix, Forward NULL http://ousrv057/cov.cgi?cid=36247
+        *dialog = NULL;
+  		dialog = NULL;
         } 
-    *dialog = NULL;
-    dialog = NULL;
-    } 
+   	  }
 
 //--------------------------------
 // DecodeProgress
--- a/mobilemessaging/mmsui/viewer/MmsViewer.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/mmsui/viewer/MmsViewer.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -40,6 +40,7 @@
 #include <avkon.loc>
 #include <drmcommon.loc>
 #include <messaging.loc>
+#include <unieditor.loc>
 
 #include <appinfo.rh>
 #include <data_caging_paths_strings.hrh>
@@ -860,6 +861,16 @@
 //----------------------------------------------------
 //
 RESOURCE TBUF r_mmsviewer_cannot_play_videocall_ongoing  { buf = qtn_mms_info_video_call_ongoing_no_media ; }
-
-
+// ---------------------------------------------------------------------------
+//  r_mmsviewer_embedded_object_stylus_menu
+// ---------------------------------------------------------------------------
+//
+RESOURCE STYLUS_POPUP_MENU r_mmsviewer_embedded_object_stylus_menu
+    {
+    items =
+        {
+        STYLUS_POPUP_MENU_ITEM { txt = qtn_mms_om_save; 
+                             command = EMmsViewerSaveObject; }
+        };
+    }
 // End of File
--- a/mobilemessaging/mmsui/viewerinc/UniMmsViewerAppUi.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/mmsui/viewerinc/UniMmsViewerAppUi.h	Mon Jan 18 20:16:40 2010 +0200
@@ -39,6 +39,7 @@
 #include <uniobject.h>
 #include <unidrminfo.h>                 // CUniDrmInfo
 #include <AknNaviDecoratorObserver.h>
+#include <aknlongtapdetector.h> // for long tap
 
 #include "MmsViewer.hrh"                // enumerations
 #include "MmsViewerOperation.h"
@@ -88,6 +89,7 @@
 class CAknVolumeControl;
 class CAknInputBlock;
 class CAknToolbar;
+class CAknStylusPopUpMenu;
 
 // CLASS DECLARATION
 
@@ -109,7 +111,8 @@
     public MAknToolbarObserver,             //toolbar
 #endif
     public MCoeControlObserver,              // of CAknVolumeControl
-    public MUniObjectObserver
+    public MUniObjectObserver,
+    public MAknLongTapDetectorCallBack
     {
     public:  // Constructors and destructor
         
@@ -567,6 +570,13 @@
         * This function handles the situation.
         */
         void HandleImageNoRightsInLaunch( );
+        // From MAknLongTapDetectorCallBack
+        /**
+         * @see MAknLongTapDetectorCallBack
+         */
+        void HandleLongTapEventL(
+            const TPoint& aPenEventLocation, 
+            const TPoint& aPenEventScreenLocation );
 
 
     private: // Functions from base classes
@@ -1116,6 +1126,16 @@
         TInt                        iMaxForwardSlideCount;
         CAknTitlePane*              iTitlePane; 
         CGulIcon*                   iAppIcon;
+        // Own: For long tap detecting
+        CAknLongTapDetector* iLongTapDetector;
+
+        // For long tap handling
+        TBool iTapConsumed;     
+      /** 
+      * Contact image selection stylus popup menu 
+      * Own. 
+      */  
+        CAknStylusPopUpMenu* iEmbeddedObjectStylusPopup;
     };
 
 #endif      //  MMSVIEWERAPPUI_H
--- a/mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -191,6 +191,7 @@
 #include <MsgEditorSettingCacheUpdatePlugin.h>
 #include    <e32property.h>
 #include  <ctsydomainpskeys.h>
+#include <aknstyluspopupmenu.h>
 // CONSTANTS
 
 // following is minimum value for player
@@ -414,6 +415,10 @@
 	    Document( )->PrepareToLaunchL( this );
 		}
     LOGTEXT2(_L16("CMmsViewerAppUi::ConstructL read. iSupportedFeatures 0x%x"), iSupportedFeatures );
+    iLongTapDetector = CAknLongTapDetector::NewL( this );
+    iLongTapDetector->SetTimeDelayBeforeAnimation( KUniLongTapStartDelay );
+    iLongTapDetector->SetLongTapDelay( KUniLongTapTimeDelay );
+    iTapConsumed = EFalse;
     }
 
 // ---------------------------------------------------------
@@ -464,6 +469,15 @@
     delete iSendReadReportOperation;
     delete iIdle;
     delete iAppIcon;
+    if(iLongTapDetector)
+    {
+    delete iLongTapDetector;
+    }
+    if(iEmbeddedObjectStylusPopup)
+    {
+    delete iEmbeddedObjectStylusPopup;
+    iEmbeddedObjectStylusPopup = NULL;
+    }
 
     LOGTEXT(_L8("CMmsViewerAppUi::~CMmsViewerAppUi end") );
     }
@@ -2804,18 +2818,23 @@
                 {
                 TPointerEvent* pointerEvent = static_cast<TPointerEvent*>( aArg2 );
                 CMsgBaseControl* baseControl = static_cast<CMsgBaseControl*>( aArg1 );
-
+                if(iLongTapDetector)
+                {
+                    iLongTapDetector->EnableLongTapAnimation(ETrue);
+                    iLongTapDetector->PointerEventL( *pointerEvent );
+                }
                 if (    pointerEvent
                     &&  pointerEvent->iType == TPointerEvent::EButton1Down )
                     {
                     // We are looking for a valid tap (button down and up)
                     // on a focused object.
-                    iPointerTarget =
-                        baseControl && baseControl->IsFocused() ? baseControl : NULL;
+                    iPointerTarget = baseControl;
+                    iTapConsumed = EFalse;
                     }
-                else if (   pointerEvent
-                        &&  pointerEvent->iType == TPointerEvent::EButton1Up )
+                else if ( (!iTapConsumed) && (pointerEvent
+                        &&  pointerEvent->iType == TPointerEvent::EButton1Up) )
                     {
+                    iTapConsumed = ETrue;
                     if ( baseControl && iPointerTarget == baseControl )
                         {
                         switch( iMskId )
@@ -3426,30 +3445,34 @@
                 __ASSERT_ALWAYS(    ObjectByMediaControl( *iAudio ) || ObjectByMediaControl( *iAudio )->MediaInfo( ), 
                                     Panic( EMmsViewerNullPointer ) );
                 CUniObject* obj = ObjectByMediaControl( *iAudio );
-                if (    iViewerFlags & EProhibitNonDrmMusic 
+                // Coverty fix, Null pointer return, http://ousrv057/cov.cgi?cid=37099
+                if (obj)
+                	{
+                    if (    iViewerFlags & EProhibitNonDrmMusic 
                     &&  !( obj->MediaInfo( )->Protection( ) &
                         ( EFileProtSuperDistributable | EFileProtForwardLocked ) ) )
-                    {
-                    // Prepare buffer for aMimeType
-                    HBufC* mimeBuffer = HBufC::NewLC( obj->MimeType().Length() + KMmsViewerSpace().Length() );
-                    TPtr mimeBufferPtr = mimeBuffer->Des();
-                    mimeBufferPtr.Copy( obj->MimeType() );
-
-                    // FindF() would find "audio/3gpp" in "audio/3gpp2" without
-                    // the added space.
-                    mimeBufferPtr.Append( KMmsViewerSpace );
-
-                    // If result is not KErrNotFound, this MIME-type is indeed on blocked list.
-                    if ( iProhibitMimeTypeBuffer->FindF( mimeBufferPtr ) >= 0 ) 
                         {
-                        ShowInformationNoteL( R_MMSVIEWER_PLAIN_MUSIC_PROHIBITED );
+                        // Prepare buffer for aMimeType
+                        HBufC* mimeBuffer = HBufC::NewLC( obj->MimeType().Length() + KMmsViewerSpace().Length() );
+                        TPtr mimeBufferPtr = mimeBuffer->Des();
+                        mimeBufferPtr.Copy( obj->MimeType() );
+
+                        // FindF() would find "audio/3gpp" in "audio/3gpp2" without
+                        // the added space.
+                        mimeBufferPtr.Append( KMmsViewerSpace );
+
+                        // If result is not KErrNotFound, this MIME-type is indeed on blocked list.
+                        if ( iProhibitMimeTypeBuffer->FindF( mimeBufferPtr ) >= 0 ) 
+                           {
+                           ShowInformationNoteL( R_MMSVIEWER_PLAIN_MUSIC_PROHIBITED );
+                           /* Allocated buffer must be destroyed and pop'd !!! */
+                           CleanupStack::PopAndDestroy( mimeBuffer );
+                            return;
+                           }
                          /* Allocated buffer must be destroyed and pop'd !!! */
                         CleanupStack::PopAndDestroy( mimeBuffer );
-                        return;
                         }
-                         /* Allocated buffer must be destroyed and pop'd !!! */
-                        CleanupStack::PopAndDestroy( mimeBuffer );
-                    }
+                     }
                 if (    IsSilenceL( ) 
                     &&  !ShowConfirmationQueryL( R_QTN_MMS_OBEY_SILENT_MODE ) )
                     {
@@ -5450,6 +5473,43 @@
     CleanupStack::Pop( bitmapMask );
     CleanupStack::Pop( bitmap );
     }
-
+// ---------------------------------------------------------
+// CMmsViewerAppUi::HandleLongTapEventL
+//  Function for handling the long tap events
+// ---------------------------------------------------------
+//
+void CMmsViewerAppUi::HandleLongTapEventL(const TPoint& aPenEventLocation, 
+                                          const TPoint& aPenEventScreenLocation )
+    {
+    CMsgBaseControl* ctrl = iView->FocusedControl(); // ctrl can be NULL.
+    if ( ctrl && 
+         ( ctrl->ControlId() == EMsgComponentIdAudio ||
+                 ctrl->ControlId() == EMsgComponentIdImage ||
+                 ctrl->ControlId() == EMsgComponentIdVideo ||
+                 ctrl->ControlId() == EMsgComponentIdSvg )&&
+                 ((Document()->SmilType()!=ETemplateSmil)&&(Document()->SmilType()!=E3GPPSmil) )) 
+        {
+        TRect rect = ctrl->Rect();
+       
+        
+     
+        if ((!iTapConsumed)&&rect.Contains(aPenEventLocation))
+            {
+            if (iEmbeddedObjectStylusPopup)
+                {
+                delete iEmbeddedObjectStylusPopup;
+                iEmbeddedObjectStylusPopup = NULL;
+                }
+            iEmbeddedObjectStylusPopup = CAknStylusPopUpMenu::NewL(this,aPenEventLocation);
+            TResourceReader reader;
+            iCoeEnv->CreateResourceReaderLC(reader,R_MMSVIEWER_EMBEDDED_OBJECT_STYLUS_MENU );
+            iEmbeddedObjectStylusPopup->ConstructFromResourceL(reader);
+            CleanupStack::PopAndDestroy();
+            iEmbeddedObjectStylusPopup->SetPosition(aPenEventLocation);
+            iEmbeddedObjectStylusPopup->ShowMenu();
+            iTapConsumed = ETrue;
+            }
+        }   
+    }  
 //  End of File
 
--- a/mobilemessaging/msgmedia/help/inc/msg.hlp.hrh	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/msgmedia/help/inc/msg.hlp.hrh	Mon Jan 18 20:16:40 2010 +0200
@@ -2,9 +2,9 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Symbian Foundation License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
--- a/mobilemessaging/postcard/help/inc/postcard.hlp.hrh	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/postcard/help/inc/postcard.hlp.hrh	Mon Jan 18 20:16:40 2010 +0200
@@ -2,9 +2,9 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Symbian Foundation License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
--- a/mobilemessaging/postcard/postcard/Postcard.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/postcard/postcard/Postcard.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -35,16 +35,16 @@
 #include <appinfo.rh>
 #include <data_caging_paths_strings.hrh>
 //LOC Files
-#include <DRMCommon.loc>
-#include <Messaging.loc>
+#include <drmcommon.loc>
+#include <messaging.loc>
 #include <avkon.loc>
 
 #include <AiwCommon.rh>
 #include <AiwGenericParam.hrh>
 
 // Local ones
-#include <Postcard.loc>
-#include <Postcard_branded.loc>
+#include <postcard.loc>
+#include <postcard_branded.loc>
 #include "Postcard.hrh"
 
 //  RESOURCE DEFINITIONS 
--- a/mobilemessaging/postcard/postcardsrc/PostcardAppUi.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/postcard/postcardsrc/PostcardAppUi.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -1773,14 +1773,14 @@
 // ---------------------------------------------------------
 void CPostcardAppUi::DoDelayedExit( TInt aDelayTime )
     {
-    if ( !iIdle )
+    // Coverty fix , Forward NULL http://ousrv057/cov.cgi?cid=36248    
+    if ( iIdle )
         {
-        
-        }
-    iIdle->Cancel();
-    iIdle->Start( aDelayTime,
+        iIdle->Cancel();
+   		iIdle->Start( aDelayTime,
                   aDelayTime, 
                   TCallBack( DelayedExit, this ));
+        }
     }
 
 // ---------------------------------------------------------
--- a/mobilemessaging/postcard/postcardsrc/PostcardRecipientWrapper.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/postcard/postcardsrc/PostcardRecipientWrapper.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -184,8 +184,9 @@
         TInt popupOk = popupList->ExecuteLD();
         TInt itemIndex = listBox->CurrentItemIndex();
         CleanupStack::PopAndDestroy( listBox ); // listBox;
-
-        if ( popupOk )
+        	
+		// Coverty fix, Negative return; http://ousrv057/cov.cgi?cid=36961
+        if ( popupOk && itemIndex > 0)
 	        {
 	        location = foundLocations[ itemIndex ];
 	        }
--- a/mobilemessaging/postcard/postcardui/PostcardUi.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/postcard/postcardui/PostcardUi.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -32,8 +32,8 @@
 #include <avkon.loc>
 #include <muiusettingsarray.rh>
 
-#include <Messaging.loc>
-#include <Postcard_branded.loc>
+#include <messaging.loc>
+#include <postcard_branded.loc>
 
 //  CONSTANTS  
 
--- a/mobilemessaging/smilui/playersrc/SmilPlayerPresentationController.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/smilui/playersrc/SmilPlayerPresentationController.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -54,7 +54,7 @@
 #include <aknnavi.h>
 #include <aknnavide.h>
 
-#include <BrowserLauncher.h>
+#include <browserlauncher.h>
 
 #include <txtetext.h>           // for CPlainText
 #include "SmilTextRenderer.h"
--- a/mobilemessaging/smsui/help/inc/sms.hlp.hrh	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/smsui/help/inc/sms.hlp.hrh	Mon Jan 18 20:16:40 2010 +0200
@@ -2,9 +2,9 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Symbian Foundation License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
--- a/mobilemessaging/smsui/viewer/SmsViewer.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/smsui/viewer/SmsViewer.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -47,6 +47,7 @@
 
 #include <MsgEditor.hrh>   
 #include <muiu.mbg>           // title icon
+#include <aknsconstants.hrh> 
 // RESOURCES
 
 RESOURCE RSS_SIGNATURE { }
@@ -109,6 +110,26 @@
 //
 //----------------------------------------------------
 //
+// Needed by skinning. In toolbar resource definition skin support and bitmap methods are used, in case skin
+// does not support toolbar icons
+RESOURCE AVKON_BUTTON_STATE_EXTENSION r_smsviewer_reply_button_state_extension 
+    { 
+    bmbSkinIdMajor= EAknsMajorGeneric; 
+    bmbSkinIdMinor= EAknsMinorGenericQgnIndiTbMsgReply; 
+    } 
+
+RESOURCE AVKON_BUTTON_STATE_EXTENSION r_smsviewer_forward_button_state_extension 
+    { 
+    bmbSkinIdMajor= EAknsMajorGeneric; 
+    bmbSkinIdMinor= EAknsMinorGenericQgnIndiTbMsgForward; 
+    } 
+
+RESOURCE AVKON_BUTTON_STATE_EXTENSION r_smsviewer_delete_button_state_extension 
+    { 
+    bmbSkinIdMajor= EAknsMajorGeneric; 
+    bmbSkinIdMinor= EAknsMinorGenericQgnIndiMgTbDelete; 
+    } 
+    
 RESOURCE AVKON_TOOLBAR r_smsviewer_app_toolbar
     {
     flags = KAknToolbarFixed; 
@@ -129,6 +150,7 @@
                         bmpfile = BITMAP_DIR"\\muiu.mif";
                         bmpid = EMbmMuiuQgn_indi_tb_msg_reply;
                         bmpmask = EMbmMuiuQgn_indi_tb_msg_reply_mask;
+                        extension = r_smsviewer_reply_button_state_extension; 
                         }  
                     };            
                 };
@@ -148,7 +170,7 @@
                         bmpfile = BITMAP_DIR"\\muiu.mif";
                         bmpid = EMbmMuiuQgn_indi_tb_msg_forward;
                         bmpmask = EMbmMuiuQgn_indi_tb_msg_forward_mask;
-
+                        extension = r_smsviewer_forward_button_state_extension; 
                         }  
                     };            
                 };
@@ -168,6 +190,7 @@
                         bmpfile = BITMAP_DIR"\\muiu.mif";
                         bmpid = EMbmMuiuQgn_indi_mg_tb_delete;
                         bmpmask = EMbmMuiuQgn_indi_mg_tb_delete;
+                        extension = r_smsviewer_delete_button_state_extension; 
                         }  
                     };            
                 };
--- a/mobilemessaging/smsui/viewer/SmsViewer_reg.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/smsui/viewer/SmsViewer_reg.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -17,7 +17,7 @@
 
 
 #include <appinfo.rh>
-#include <smsviewer.rsg>
+#include <SmsViewer.rsg>
 #include <MuiuMsgEditorService.rh>
 #include <MuiuMsgEditorServiceConst.h>
 #include <data_caging_paths_strings.hrh>
--- a/mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -955,7 +955,11 @@
             break;
         case R_FINDITEMMENU_MENU:
             {
-            iFindItemMenu->DisplayFindItemCascadeMenuL( *aMenuPane );
+            // Coverty fix , Forward NULL http://ousrv057/cov.cgi?cid=35945
+            if(iFindItemMenu)
+               {
+               iFindItemMenu->DisplayFindItemCascadeMenuL( *aMenuPane );
+         	   }
             }
             break;
         case R_SMSV_OPTIONSMENUPANE_CLASS0:
@@ -970,7 +974,8 @@
                 {
                 aMenuPane->DeleteMenuItem( EFindItemMenuPlaceHolder );
                 }
-            else
+            // Coverty fix , Forward NULL http://ousrv057/cov.cgi?cid=35945
+            else if(iFindItemMenu)
 	            {              
 	            iFindItemMenu->AddItemFindMenuL( 
                 IsBodyFocused() ? iView->ItemFinder() : 0,
--- a/mobilemessaging/unieditor/application/data/UniEditor.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/application/data/UniEditor.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -1770,5 +1770,16 @@
      {
      buf = qtn_info_popup_sms_size_below_limit;
      }
-
+// ---------------------------------------------------------------------------
+//	r_unieditor_embedded_object_stylus_menu
+// ---------------------------------------------------------------------------
+//
+RESOURCE STYLUS_POPUP_MENU r_unieditor_embedded_object_stylus_menu
+    {
+    items =
+        {
+        STYLUS_POPUP_MENU_ITEM { txt = qtn_mms_om_remove; 
+                             command = EUniCmdRemove; }
+        };
+    }
 // End of File
--- a/mobilemessaging/unieditor/application/data/UniEditor_reg.rss	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/application/data/UniEditor_reg.rss	Mon Jan 18 20:16:40 2010 +0200
@@ -18,7 +18,7 @@
 
 #include <appinfo.rh>
 #include <data_caging_paths_strings.hrh>
-#include <unieditor.rsg>
+#include <UniEditor.rsg>
 #include <MuiuMsgEditorService.rh>
 #include <MuiuMsgEditorServiceConst.h>
 
--- a/mobilemessaging/unieditor/application/inc/UniEditorApp.hrh	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/application/inc/UniEditorApp.hrh	Mon Jan 18 20:16:40 2010 +0200
@@ -93,7 +93,9 @@
         
     // Settings dialog
     EUniCmdSettingsChange,
-    EUniCmdObjectsAttachment
+    EUniCmdObjectsAttachment,
+    //Stylus Menu
+    EUniCmdRemove
     };
 
 enum
--- a/mobilemessaging/unieditor/application/inc/UniEditorAppUi.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/application/inc/UniEditorAppUi.h	Mon Jan 18 20:16:40 2010 +0200
@@ -44,6 +44,7 @@
 
 #include <eikedwob.h>                   // for MEikEdwinObserver
 
+#include <aknlongtapdetector.h> // for long tap
 // Needed by inline functions
 #include "uniobjectlist.h"
 #include "unidatamodel.h"
@@ -91,6 +92,7 @@
 class CUniEditorVCardOperation;
 class CUniEditorHeader;
 class CAknToolbarExtension;
+class CAknStylusPopUpMenu;
 
 // CLASS DECLARATION
 
@@ -110,7 +112,8 @@
     public MEikEdwinObserver,
     public MProgressDialogCallback,
     public MPenUiActivationHandler,
-    public MCenRepNotifyHandlerCallback
+    public MCenRepNotifyHandlerCallback,
+    public MAknLongTapDetectorCallBack
     {
     public:  // Constructors and destructor
         
@@ -381,6 +384,13 @@
         * 2nd phase constructor.
         */
         void ConstructL(); 
+    	// From MAknLongTapDetectorCallBack
+        /**
+         * @see MAknLongTapDetectorCallBack
+         */
+        void HandleLongTapEventL(
+            const TPoint& aPenEventLocation, 
+            const TPoint& aPenEventScreenLocation );
 
     private:
     
@@ -1351,6 +1361,17 @@
         //Korean Req: 415-5434
         HBufC*                     iPopupSmsSizeAboveLimitBuffer;
         HBufC*                     iPopupSmsSizeBelowLimitBuffer;
+		TBool                      iFinalizeLaunchL;
+        // Own: For long tap detecting
+        CAknLongTapDetector* iLongTapDetector;
+
+        // For long tap handling
+        TBool iTapConsumed;     
+      /** 
+      * Contact image selection stylus popup menu 
+      * Own. 
+      */  
+    	CAknStylusPopUpMenu* iEmbeddedObjectStylusPopup;
     };
 
 #include "UniEditorAppUi.inl"
--- a/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -183,6 +183,7 @@
 #include "UniEditorLogging.h"
 
 #include <gsmuelem.h>     // Turkish SMS-PREQ2265 specific
+#include <aknstyluspopupmenu.h> //Added for displaying object specific stylus menus in editor
 // ========== LOCAL CONSTANTS AND MACROS ===================
 
 // SMS related
@@ -280,6 +281,7 @@
 //
 void CUniEditorAppUi::ConstructL()
     {
+    iFinalizeLaunchL = EFalse;
     // We don't have any app ui if launched from idle
     if ( iEikonEnv->EikAppUi() )
         {
@@ -444,6 +446,10 @@
             iMsgLenToVKB = ETrue; 
         }
 #endif
+    	iLongTapDetector = CAknLongTapDetector::NewL( this );
+		iLongTapDetector->SetTimeDelayBeforeAnimation( KUniLongTapStartDelay );
+		iLongTapDetector->SetLongTapDelay( KUniLongTapTimeDelay );
+		iTapConsumed = EFalse;
     }
 
 
@@ -574,6 +580,15 @@
 
     delete iPopupSmsSizeAboveLimitBuffer;
     delete iPopupSmsSizeBelowLimitBuffer;
+	if(iLongTapDetector)
+	{
+    delete iLongTapDetector;
+	}
+	if(iEmbeddedObjectStylusPopup)
+	{
+    delete iEmbeddedObjectStylusPopup;
+	iEmbeddedObjectStylusPopup = NULL;
+	}
    
     }
 
@@ -651,6 +666,7 @@
 //
 void CUniEditorAppUi::FinalizeLaunchL()
     {
+    iFinalizeLaunchL = ETrue;
     iSmilModel = &Document()->DataModel()->SmilModel();
     iHeader = iLaunchOperation->DetachHeader();
     iSlideLoader = iLaunchOperation->DetachSlideLoader();
@@ -694,10 +710,6 @@
     
     TMsgControlId focusedControlId = ResolveLaunchFocusedControlL();
             
-    iView->ExecuteL( ClientRect(), focusedControlId );
-  
-    delete iScreenClearer;
-    iScreenClearer = NULL;
     
     CEikStatusPane* statusPane = StatusPane();
     
@@ -765,6 +777,11 @@
     UpdateToolbarL();
     
     iEditorFlags |= ELaunchSuccessful;
+	
+    iView->ExecuteL( ClientRect(), focusedControlId );
+    delete iScreenClearer;
+    iScreenClearer = NULL;
+	
     }
     
 // ---------------------------------------------------------
@@ -1544,6 +1561,33 @@
             DoUserRemoveMediaL( EMsgComponentIdSvg, EUniRegionImage );
             break;
             }
+        case EUniCmdRemove:
+            {
+            CMsgBaseControl* ctrl = iView->FocusedControl();  // ctrl can be NULL.
+			if(ctrl)
+			{
+            TMsgControlId controlId = TMsgControlId(ctrl->ControlId()); 
+			if(controlId == EMsgComponentIdAudio)
+			{
+                DoUserRemoveMediaL( controlId, EUniRegionAudio );
+			}
+            else if ( controlId == EMsgComponentIdImage ||
+			          controlId == EMsgComponentIdVideo ||
+                      controlId == EMsgComponentIdSvg )
+			{
+				if( (Document()->DataModel()->SmilType() == ETemplateSmil) || (Document()->DataModel()->SmilType() == E3GPPSmil))
+				   {
+				     // focus is on SMIL presentation icon
+				      RemoveTemplateL();
+				   }
+				else
+				    {
+                		DoUserRemoveMediaL( controlId, EUniRegionImage );
+				    }
+			}
+			} 
+            break;
+            }
         case EMsgDispSizeAutomatic:
         case EMsgDispSizeLarge:
         case EMsgDispSizeNormal:
@@ -1744,13 +1788,19 @@
             {
             TPointerEvent* event = static_cast<TPointerEvent*>( aArg2 );
             CMsgBaseControl* control = static_cast<CMsgBaseControl*>( aArg1 );
-
+            if(iLongTapDetector)
+            {
+                iLongTapDetector->EnableLongTapAnimation(ETrue);
+                iLongTapDetector->PointerEventL( *event );
+            }
             if ( event->iType == TPointerEvent::EButton1Down )
                 {
-                iFocusedControl = control && control->IsFocused() ? control : NULL;
-                }
-            else if ( event->iType == TPointerEvent::EButton1Up )
-                {
+                iFocusedControl = control;
+                iTapConsumed = EFalse;
+                }
+            else if ( (!iTapConsumed) && (event->iType == TPointerEvent::EButton1Up) )
+                {
+                iTapConsumed = ETrue;
                 if ( control && 
                      iFocusedControl == control &&
                      ( control->ControlId() == EMsgComponentIdAudio ||
@@ -2070,9 +2120,13 @@
                 {
                 CUniObject* object = iSmilModel->GetObject( Document()->CurrentSlide(), region );
                 
-                if ( object->DrmInfo() )
-                    {
-                    object->DrmInfo()->FreezeRights();
+                // Coverty fix, Null pointer return, http://ousrv057/cov.cgi?cid=37172
+                if ( object )
+                	{
+                    if ( object->DrmInfo() )
+                       {
+                       object->DrmInfo()->FreezeRights();
+                       }
                     }
                 
                 TRAP_IGNORE( iSlideLoader->UpdateControlIconL( 
@@ -4503,6 +4557,7 @@
     User::LeaveIfError( bitmapMask->Duplicate( image->Mask()->Handle() ) );
 
     iTitlePane->SetSmallPicture( bitmap, bitmapMask, ETrue );
+    if(!iFinalizeLaunchL)
     iTitlePane->DrawNow();
     
     CleanupStack::Pop( 2, bitmap );
@@ -5264,8 +5319,13 @@
 
     iWaitDialog = new( ELeave ) CAknWaitDialog( reinterpret_cast<CEikDialog**>( &iWaitDialog ),
                                                 waitNoteDelayOff );
-    iWaitDialog->SetTextL( *string );
-    CleanupStack::PopAndDestroy( string ); 
+                                                
+    // Coverty Fix, Forward Null, http://ousrv057/cov.cgi?cid=35691                                            
+    if(string)
+    	{
+    	iWaitDialog->SetTextL( *string );
+    	CleanupStack::PopAndDestroy( string ); 
+    	}
     
     iWaitDialog->SetCallback( this );
     
@@ -5579,6 +5639,9 @@
         }
         
     TInt index = EMsgAppendControl;
+    // Coverty fix: Forward NULL, http://ousrv057/cov.cgi?cid=35695
+    if(iView)
+    	{
     CMsgBaseControl* ctrl = iView->RemoveControlL( EMsgComponentIdBody ); // Does not leave
 
     if ( ctrl ) 
@@ -5612,6 +5675,7 @@
             
         iView->AddControlL( ctrl, EMsgComponentIdBody, index, EMsgBody );
         }
+      }
     
     if ( !( iHeader->IsAddressControl( focusedId ) ||  
             focusedId == EMsgComponentIdSubject ||
@@ -8378,12 +8442,14 @@
             case EMsgComponentIdSvg:
                 {
                 CUniObject* obj = iSmilModel->GetObject( Document()->CurrentSlide(), region );
-                
-                if( obj->Corrupted() )
+                // Coverty fix, Null pointer return , http://ousrv057/cov.cgi?cid=37100
+                if(obj)
+                {
+                  if( obj->Corrupted() )
                     { // Object is corrupt -> just show note
                     ShowInformationNoteL( R_UNIEDITOR_CANNOT_OPEN_CORRUPT, EFalse );
                     }
-                else
+                  else
                     {
                     RFile file = CUniDataUtils::GetAttachmentFileL( Document()->DataModel()->Mtm(), obj->AttachmentId() );
                     CleanupClosePushL( file );
@@ -8413,6 +8479,7 @@
                          //  DeactivateInputBlocker();
                         }
                     }
+                  }
                 break;
                 }
             default:
@@ -9716,5 +9783,40 @@
      TRAP_IGNORE(ShowConfirmableInfoL( R_UNIEDITOR_NOT_ENOUGH_MEMORY));     
      Exit( EAknSoftkeyClose );
     }
+// ---------------------------------------------------------
+// CUniEditorAppUi::HandleLongTapEventL
+//  Function for handling the long tap events
+// ---------------------------------------------------------
+//
+void CUniEditorAppUi::HandleLongTapEventL(const TPoint& aPenEventLocation, 
+										  const TPoint& aPenEventScreenLocation )
+    {
+    CMsgBaseControl* ctrl = iView->FocusedControl(); // ctrl can be NULL.
+    if ( ctrl && 
+         ( ctrl->ControlId() == EMsgComponentIdAudio ||
+                 ctrl->ControlId() == EMsgComponentIdImage ||
+                 ctrl->ControlId() == EMsgComponentIdVideo ||
+                 ctrl->ControlId() == EMsgComponentIdSvg ) )
+        {
+        TRect rect = ctrl->Rect();
+
+        if ((!iTapConsumed)&&rect.Contains(aPenEventLocation))
+            {
+            if (iEmbeddedObjectStylusPopup)
+                {
+                delete iEmbeddedObjectStylusPopup;
+                iEmbeddedObjectStylusPopup = NULL;
+                }
+            iEmbeddedObjectStylusPopup = CAknStylusPopUpMenu::NewL(this,aPenEventLocation);
+            TResourceReader reader;
+            iCoeEnv->CreateResourceReaderLC(reader,R_UNIEDITOR_EMBEDDED_OBJECT_STYLUS_MENU );
+            iEmbeddedObjectStylusPopup->ConstructFromResourceL(reader);
+            CleanupStack::PopAndDestroy();
+            iEmbeddedObjectStylusPopup->SetPosition(aPenEventLocation);
+            iEmbeddedObjectStylusPopup->ShowMenu();
+            iTapConsumed = ETrue;
+            }
+        }   
+    }  
 // End of file
 
--- a/mobilemessaging/unieditor/application/src/UniEditorInsertOperation.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/application/src/UniEditorInsertOperation.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -145,13 +145,14 @@
     else
         {
         iAddAsAttachment = aAddAsAttachment;
-        }     
-    
-    if ( aInfo->MediaType() == EMsgMediaImage )
+        }   
+      
+    //Coverty fix : Forward Null http://ousrv057/cov.cgi?cid=35696
+    if ( aInfo && aInfo->MediaType() == EMsgMediaImage )
         {
         iOperationState = EUniInsertCheckMode;
         }
-    else if ( aInfo->MimeType() == KMsgMimeVideoMp4 )
+    else if ( aInfo && aInfo->MimeType() == KMsgMimeVideoMp4 )
         {
         iOperationState = EUniInsertConvertVideo;
         }
--- a/mobilemessaging/unieditor/application/src/UniEditorObjectsModelObserver.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/application/src/UniEditorObjectsModelObserver.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -105,8 +105,12 @@
                     {
                     iAppUi.ReleaseImage( ETrue );
                     }
-                
-                editorDoc->DeleteAttachmentL( objInfo->SlideNumber(), obj, EFalse );
+                //Coverty fix -- Forward NULL, http://ousrv057/cov.cgi?cid=36246    
+                if(obj)
+                    {
+                    editorDoc->DeleteAttachmentL( objInfo->SlideNumber(), obj, EFalse );
+              		}
+              
                 
                 // Only call AppUI to remove object if it is located on the
                 // current slide.
--- a/mobilemessaging/unieditor/application/src/UniEditorSaveOperation.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/application/src/UniEditorSaveOperation.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -383,20 +383,23 @@
     iEditStore = iDocument.Mtm().Entry().EditStoreL();
     if ( iComposeSmil )
         {
-        iDocument.DataModel()->SmilList().RemoveSmilL( *iEditStore );
-        if ( iSaveType == ESendingSave )
-            {
-            iDocument.DataModel()->SmilModel().RemoveEmptySlides();
-            }
+         if( !(iSaveType == ESendingSave && iDocument.UniState() == EUniSms) )
+             {
+	        iDocument.DataModel()->SmilList().RemoveSmilL( *iEditStore );
+	        if ( iSaveType == ESendingSave )
+	            {
+	            iDocument.DataModel()->SmilModel().RemoveEmptySlides();
+	            }
             
-        if ( iDocument.DataModel()->SmilModel().SlideCount() != 0 )
-            {
-            // Model is not empty -> Compose new SMIL
-            iDom = iDocument.DataModel()->SmilModel().ComposeL();
-            iDocument.DataModel()->SmilList().CreateSmilAttachmentL( *this, *iEditStore, iDom );
-            SetPending();
-            return;
-            }
+	        if ( iDocument.DataModel()->SmilModel().SlideCount() != 0 )
+	            {
+	            // Model is not empty -> Compose new SMIL
+	            iDom = iDocument.DataModel()->SmilModel().ComposeL();
+	            iDocument.DataModel()->SmilList().CreateSmilAttachmentL( *this, *iEditStore, iDom );
+	            SetPending();
+	            return;
+	            }
+             }
         }
         
     iOperationState = EUniEditorSaveFinalize;
@@ -657,11 +660,9 @@
         
         TBuf<KUniMaxDescription> description;
         description.Zero();
-        length = subject.Length();
-        CMsgExpandableControl* header = static_cast<CMsgExpandableControl*>( iView.ControlById( EMsgComponentIdSubject ) );
-        
+        length = subject.Length();     
         // Saving as pure text from the editor which may contain emoticons.
-        HBufC *text = header->Editor().GetTextInHBufL();
+        HBufC *text = iHeader.SubjectControl()->Editor().GetTextInHBufL();
         CleanupStack::PushL( text );
         description.Copy( text->Ptr(), length );
         CleanupStack::PopAndDestroy( text );
--- a/mobilemessaging/unieditor/help/inc/unif.hlp.hrh	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/help/inc/unif.hlp.hrh	Mon Jan 18 20:16:40 2010 +0200
@@ -2,9 +2,9 @@
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
-* under the terms of the License "Symbian Foundation License v1.0"
+* under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
--- a/mobilemessaging/unieditor/smsplugin/inc/UniSmsPlugin.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/smsplugin/inc/UniSmsPlugin.h	Mon Jan 18 20:16:40 2010 +0200
@@ -227,7 +227,11 @@
         * Converts sms message to uni message format.
         */
 		TMsvId DoConvertFromL( TMsvId aId, TBool aIsForward );
-        
+
+        /**
+        * returns attachment size.
+        */
+		TInt32 AttachmentsSizeL( CMsvStore& aStore );        
 
     private:  // Data    
 
@@ -268,6 +272,8 @@
         TInt iCharSupportType;
         TSmsEncoding  iAlternativeEncodingType;
         TBool iNLTFeatureSupport;
+        
+        TBool iStoreChanged ;
     };
 
 inline void CUniSmsPlugin::SetUnicodeMode( TBool aUnicodeMode )
--- a/mobilemessaging/unieditor/smsplugin/src/UniSmsPlugin.cpp	Thu Jan 07 12:45:05 2010 +0200
+++ b/mobilemessaging/unieditor/smsplugin/src/UniSmsPlugin.cpp	Mon Jan 18 20:16:40 2010 +0200
@@ -191,6 +191,7 @@
         }
     
     FeatureManager::UnInitializeLib();
+    iStoreChanged = EFalse;
     
     UNILOGGER_LEAVEFN("CUniSmsPlugin::ConstructL");
     }
@@ -340,12 +341,15 @@
         }
     
     SmsMtmL()->Body().Reset();
-    
     SmsMtmL()->SaveMessageL();
     TMsvEntry uniTEntry = iUniMtm.Entry().Entry();
+    CMsvStore* store = iUniMtm.Entry().EditStoreL();
+    CleanupStack::PushL( store );
    
-    iUniMtm.SaveMessageL();
+    iUniMtm.SaveMessageL(*store, uniTEntry);
     
+    store->CommitL();
+    CleanupStack::PopAndDestroy(store);  
     // Lets convert the bits to Uni mode
 	TUniMsvEntry::SetForwardedMessage( uniTEntry, aIsForward );
 	
@@ -356,6 +360,41 @@
     return aId;
     }
 
+TInt32 CUniSmsPlugin::AttachmentsSizeL( CMsvStore& aStore )
+    {
+    TInt32 size = 0;
+
+    MMsvAttachmentManager& attachMan = aStore.AttachmentManagerL();
+    TInt numAttachments = attachMan.AttachmentCount();
+
+    for ( TInt i = 0; i < numAttachments; i++ )
+        {
+        CMsvAttachment* attachmentInfo = attachMan.GetAttachmentInfoL( i );
+        CleanupStack::PushL( attachmentInfo );
+        
+        CMsvMimeHeaders* mimeHeaders = CMsvMimeHeaders::NewL();
+        CleanupStack::PushL( mimeHeaders );
+        
+        mimeHeaders->RestoreL( *attachmentInfo );
+        
+        RFile attaFile = attachMan.GetAttachmentFileL( i );
+        CleanupClosePushL( attaFile );
+        TInt fileSize = 0;
+        
+        // If we cannot access the file, we are in trouble
+        User::LeaveIfError( attaFile.Size( fileSize ) ); 
+        
+        // This adds up mime header size + actual attachment binary data
+        size += mimeHeaders->Size() + fileSize;
+
+        CleanupStack::PopAndDestroy( &attaFile );
+        CleanupStack::PopAndDestroy( mimeHeaders );
+        CleanupStack::PopAndDestroy( attachmentInfo );
+        }
+
+    return size;
+    }
+	
 // -----------------------------------------------------------------------------
 // ConvertToL
 // -----------------------------------------------------------------------------
@@ -601,13 +640,17 @@
 	
     CleanupStack::PopAndDestroy( sendOptions ); 
 
-    SmsMtmL()->Entry().ChangeL( tEntry );
+    SmsMtmL()->SaveMessageL(*store, tEntry);
 
     store->CommitL();        
+    tEntry.iSize = store->SizeL();
+    if( AttachmentsSizeL( *store ) > 0 )
+        {
+        tEntry.SetAttachment( ETrue );
+        }
     CleanupStack::PopAndDestroy( store );
     
-    iUniMtm.SaveMessageL();
-    SmsMtmL()->SaveMessageL();
+    SmsMtmL()->Entry().ChangeL( tEntry );
     UNILOGGER_LEAVEFN("CUniSmsPlugin::ConvertToL");
     return aId;
     }
@@ -831,6 +874,7 @@
 // ----------------------------------------------------------------------------
 void CUniSmsPlugin::MoveMessagesToOutboxL()
     {
+    iStoreChanged = EFalse;
     if ( !iRecipients || !iRecipients->Count() )
         {
         User::Leave( KErrGeneral );
@@ -915,6 +959,7 @@
                 SmsMtmL()->AddAddresseeL( 
 	            iEmailOverSmsC->Address( ) ,
 		        KNullDesC( ) );
+                iStoreChanged = ETrue;
                 }
             else
                 {                           
@@ -922,7 +967,10 @@
                 }
 
             entry.ChangeL( msvEntry );
-            SmsMtmL()->SaveMessageL();
+            if( iStoreChanged )
+                {
+            	SmsMtmL()->SaveMessageL();
+                }
             // Move it
             copyId = MoveMessageEntryL( KMsvGlobalOutBoxIndexEntryId );
             cantExit = EFalse;
@@ -951,6 +999,7 @@
                     msvEntry, *rcpt, SmsMtmL()->Body());
  
                 SmsMtmL()->RemoveAddressee( 0 );
+                iStoreChanged = ETrue;
                 }
             //If hundreds of recipient, make sure viewserver
             //timers are reseted
@@ -1380,6 +1429,7 @@
             aText.InsertL( 1, subject );
             aText.InsertL( writePosition-1, KUniSmsEndParenthesis );
             }
+        iStoreChanged = ETrue;
         }
     
     // Clears the CSmsHeaders EmailFields for non Email addresses
@@ -1387,6 +1437,7 @@
     CleanupStack::PushL( emailFields );
     aHeader.SetEmailFieldsL( *emailFields );
     CleanupStack::PopAndDestroy( emailFields );  
+        iStoreChanged = ETrue;
     }
            
 // ----------------------------------------------------------------------------
--- a/msg_plat/internet_mail_mtm_ui_api/inc/impicmds.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/msg_plat/internet_mail_mtm_ui_api/inc/impicmds.h	Mon Jan 18 20:16:40 2010 +0200
@@ -21,7 +21,7 @@
 #if !defined (__IMPICMDS_H__)
 #define __IMPICMDS_H__
 
-#include <mtmextendedcapabilities.hrh>
+#include <MtmExtendedCapabilities.hrh>
 
 /**
 *   TIMAP4Cmds:
--- a/msg_plat/messaging_center_ui_utilities_api/inc/MtmExtendedCapabilities.hrh	Thu Jan 07 12:45:05 2010 +0200
+++ b/msg_plat/messaging_center_ui_utilities_api/inc/MtmExtendedCapabilities.hrh	Mon Jan 18 20:16:40 2010 +0200
@@ -25,7 +25,7 @@
 #include <mtmuidef.hrh>
 #endif // KMtmUiFunctionPrint
 
-#include <extendedmtmids.hrh> 
+#include <ExtendedMTMIDS.hrh> 
 
 // Capabilties
 #define KUidMsvMtmQueryMessageInfo                  0x10005996 // response true/false
--- a/msg_plat/messaging_center_ui_utilities_api/inc/MuiuMsgEditorService.rh	Thu Jan 07 12:45:05 2010 +0200
+++ b/msg_plat/messaging_center_ui_utilities_api/inc/MuiuMsgEditorService.rh	Mon Jan 18 20:16:40 2010 +0200
@@ -21,7 +21,7 @@
 // Set either KMsgServiceView or KMsgServiceEdit in type
 // (defined in MuiuMsgEditorServiceConst.h)
 
-#include <muiumsgeditorserviceconst.h>
+#include <MuiuMsgEditorServiceConst.h>
 
 STRUCT MSG_SERVICE_STRUCT
 	{
--- a/msg_plat/messaging_editor_api/inc/MsgEditor.rh	Thu Jan 07 12:45:05 2010 +0200
+++ b/msg_plat/messaging_editor_api/inc/MsgEditor.rh	Mon Jan 18 20:16:40 2010 +0200
@@ -16,7 +16,7 @@
 
 
 
-#include "msgeditor.hrh"
+#include "MsgEditor.hrh"
 
 STRUCT MSG_EDITOR_EXPANDABLE_CONTROL
     {
--- a/msg_plat/messaging_editor_api/inc/MsgEditorCommon.h	Thu Jan 07 12:45:05 2010 +0200
+++ b/msg_plat/messaging_editor_api/inc/MsgEditorCommon.h	Mon Jan 18 20:16:40 2010 +0200
@@ -30,6 +30,8 @@
 
 const TText KArabicSemicolon = 0x061B;
 const TText KSemicolon = 0x003B;
+const TInt KUniLongTapStartDelay( 500000 ); // 0.5s
+const TInt KUniLongTapTimeDelay( 1500000 ); // 1.5s
 
 // ========== MACROS =======================================