Revision: 201019 RCL_3 PDK_3.0.0
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 25 May 2010 12:38:02 +0300
branchRCL_3
changeset 19 7e4e4bcc75b6
parent 18 fbb813aef148
child 20 94cccd85bd25
Revision: 201019 Kit: 2010121
email/imap4mtm/imapsession/src/cimapsession.cpp
email/pop3andsmtpmtm/clientmtms/group/IMCM.rss
email/pop3andsmtpmtm/clientmtms/src/cemailaccounts.cpp
email/pop3andsmtpmtm/servermtmutils/src/IMCVCODC.CPP
messagingappbase/mce/inc/MceOneRowMessageListContainer.h
messagingappbase/mce/src/MceMessageListView.cpp
messagingappbase/mce/src/MceOneRowMessageListArrayLoader.cpp
messagingappbase/mce/src/MceOneRowMessageListContainer.cpp
messagingappbase/msgavkon/muiu_domain/reporteroperation/src/MuiuMsvWrappableProgressDialog.cpp
messagingappbase/msgeditor/viewsrc/MsgExpandableControlEditor.cpp
messagingappbase/smilparser/GROUP/bld.inf
messagingappbase/smilparser/GROUP/messaging_gmxml.history.xml
messagingappbase/smilparser/GROUP/messaging_gmxml.mrp
mmsengine/mmssettings/src/cmmsaccounts.cpp
mobilemessaging/audiomsg/group/audiomessage.mmp
mobilemessaging/audiomsg/src/audiomessageappui.cpp
mobilemessaging/audiomsg/src/audiomessagerecorder.cpp
mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp
mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp
--- a/email/imap4mtm/imapsession/src/cimapsession.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/email/imap4mtm/imapsession/src/cimapsession.cpp	Tue May 25 12:38:02 2010 +0300
@@ -1412,14 +1412,21 @@
 				
 			if (err != KErrNone)
 				{
-				// As well as completing, destroy the command to help free up resources.
-				CompleteAndDestroyCommand(err, ETrue);
+                if(err == KErrImapCorrupt)
+                    {
+                    continueReadingData = ETrue;
+                    }
+                else
+                    {
+                    // As well as completing, destroy the command to help free up resources.
+                    CompleteAndDestroyCommand(err, ETrue);
 
-				// Don't allow the session to be called again.
-				SetSessionState(ESessionUnrecoverable);
-				
-				return;
-				}
+                    // Don't allow the session to be called again.
+                    SetSessionState(ESessionUnrecoverable);
+                    
+                    return;
+                    }
+				}// end of  if (err != KErrNone)
 				
 			// If a literal block is expected next, then find out how big it is expected to be.
 			switch (commandParseState)
--- a/email/pop3andsmtpmtm/clientmtms/group/IMCM.rss	Tue May 11 16:10:04 2010 +0300
+++ b/email/pop3andsmtpmtm/clientmtms/group/IMCM.rss	Tue May 25 12:38:02 2010 +0300
@@ -203,5 +203,5 @@
 
 RESOURCE INT8 store_plain_body_text
 	{
-	value = 1;
+	value = 0;
 	}
--- a/email/pop3andsmtpmtm/clientmtms/src/cemailaccounts.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/email/pop3andsmtpmtm/clientmtms/src/cemailaccounts.cpp	Tue May 25 12:38:02 2010 +0300
@@ -809,6 +809,7 @@
 */ 
 EXPORT_C void CEmailAccounts::GetPopAccountsL(RArray<TPopAccount>& aAccounts)
 	{
+    CleanupClosePushL( aAccounts );
 	aAccounts.Reset();
 	CRepository& popRepository = PopRepositoryL();
 	
@@ -855,7 +856,8 @@
 			}		
 		}
 		
-	CleanupStack::PopAndDestroy(3, &popAccountIds);				
+	CleanupStack::PopAndDestroy(3, &popAccountIds);
+	CleanupStack::Pop(&aAccounts); // aAccounts
 	}
 
 /**
@@ -921,6 +923,7 @@
 */    			
 EXPORT_C void CEmailAccounts::GetImapAccountsL(RArray<TImapAccount>& aAccounts)
 	{
+    CleanupClosePushL( aAccounts );
 	aAccounts.Reset();
 	CRepository& imapRepository = ImapRepositoryL();
 
@@ -967,7 +970,8 @@
 			}		
 		}
 
-	CleanupStack::PopAndDestroy(3, &imapAccountIds);			
+	CleanupStack::PopAndDestroy(3, &imapAccountIds);	
+	CleanupStack::Pop(&aAccounts);  // aAccounts
 	}
 
 void CEmailAccounts::GetEmailServicesL(CMsvEntrySelection& aServices, TUid aMTMType, CMsvEntry& aMsvEntry)
@@ -1057,6 +1061,7 @@
 */    			
 EXPORT_C void CEmailAccounts::GetSmtpAccountsL(RArray<TSmtpAccount>& aAccounts)
 	{
+    CleanupClosePushL( aAccounts );
 	aAccounts.Reset();
 	CRepository& smtpRepository = SmtpRepositoryL();
 	
@@ -1103,7 +1108,8 @@
 			}		
 		}
 
-	CleanupStack::PopAndDestroy(3, &smtpAccountIds);				
+	CleanupStack::PopAndDestroy(3, &smtpAccountIds);		
+	CleanupStack::Pop(&aAccounts);  // aAccounts
 	}
 
 /**
@@ -1116,6 +1122,7 @@
 */
 EXPORT_C void CEmailAccounts::GetSmtpMobilityAccountsL(const TSmtpAccount& aSmtpAccount, RArray<TSmtpMobilityAccount>& aAccounts)
 	{
+    CleanupClosePushL( aAccounts );
 	aAccounts.Reset();
 
 	CRepository& repository = SmtpRepositoryL();
@@ -1150,6 +1157,8 @@
 		{
 		User::Leave(err);
 		}
+	
+	CleanupStack::Pop(&aAccounts);  // aAccounts
 	}
 
 /**
@@ -1161,6 +1170,7 @@
 */
 EXPORT_C void CEmailAccounts::GetSmtpMobilityAccountsL(RArray<TSmtpMobilityAccount>& aAccounts)
 	{
+    CleanupClosePushL( aAccounts );
 	aAccounts.Reset();
 
 	CRepository& repository = SmtpRepositoryL();
@@ -1190,6 +1200,7 @@
 		}
 
 	CleanupStack::PopAndDestroy(&smtpAccountIds);
+	CleanupStack::Pop(&aAccounts);  // aAccounts
 	}
 
 /**
--- a/email/pop3andsmtpmtm/servermtmutils/src/IMCVCODC.CPP	Tue May 11 16:10:04 2010 +0300
+++ b/email/pop3andsmtpmtm/servermtmutils/src/IMCVCODC.CPP	Tue May 25 12:38:02 2010 +0300
@@ -1469,14 +1469,14 @@
 
 	// Intermediate buffer for decoding, prior to converting
 
-      HBufC8* decodeBuf8 = HBufC8::NewLC(aBufOut.MaxLength());
+    HBufC8* decodeBuf8 = HBufC8::NewLC(aBufOut.MaxLength());
 
 	decodeBuf8->Des().Copy( aBufIn.Mid(i+1, j -i-1));
 
    	// Depending on type of encoding Q or B, decode.
 
 	TPtr8 dataPtr8(dataBuf8->Des());
-
+	TPtr8 decodePtr8(decodeBuf8->Des());
 	switch (iEncodingInfo.EncodingType())
 		{
 		case TImHeaderEncodingInfo::EBase64 :
@@ -1484,14 +1484,13 @@
 			break;
 		case TImHeaderEncodingInfo::EQP :
 			// Replace all underscores in text with SPACE.
-			iQPCodec.Decode( *decodeBuf8, dataPtr8 );
-
-			i=dataPtr8.Length();
+			i=decodePtr8.Length();
 			while (i--)
 				{
-				if (dataPtr8[i] == KImcvUnderScore)
-					dataPtr8[i] = KImcvSpaceChar;	
+				if (decodePtr8[i] == KImcvUnderScore)
+				    decodePtr8[i] = KImcvSpaceChar;
 				}
+            iQPCodec.Decode( *decodeBuf8, dataPtr8 );
 			break;
 		default:
 			dataBuf8->Des().Copy(*decodeBuf8); 
--- a/messagingappbase/mce/inc/MceOneRowMessageListContainer.h	Tue May 11 16:10:04 2010 +0300
+++ b/messagingappbase/mce/inc/MceOneRowMessageListContainer.h	Tue May 25 12:38:02 2010 +0300
@@ -587,7 +587,17 @@
          * KFeatureIdFfEmailFramework is enabled
          */
         TBool                       iEmailFramework;
-        CMtmUiDataRegistry*             iUiRegistry;
+        CMtmUiDataRegistry*         iUiRegistry;
+        /**
+         * For mass deletion of messages in onerowlist 
+         * iDeletedMessges will keeptrack of no of messages got actually 
+         *                 deleted and we got the call back from m/w
+         * iSelectedSubTitles will keep list of all the subtitles from where
+         *                 messages got deleted but not the subtitle.  
+         */
+        TInt                        iDeletedMessges;
+        RArray<TAknTreeItemID>      iSelectedSubTitles;
+
     };
 
 #endif
--- a/messagingappbase/mce/src/MceMessageListView.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/messagingappbase/mce/src/MceMessageListView.cpp	Tue May 25 12:38:02 2010 +0300
@@ -221,24 +221,24 @@
     // Set the default sort order
     iSortOrder = EMceCmdSortByDate;
     iOrdering = EFalse;
-	    if ( iMsgListContainer )
-	        {
-            TMsvId fId = iMsgListContainer->CurrentFolderId();
-            for( TInt loop = 0; loop < iFolderItemArray->Count() ; loop++ )
-                {
-                TMceFolderItem item = ((*iFolderItemArray)[loop]);
-                if ( item.iFolderId == fId && aPrevViewId == TDRVIEWID)
-                    {        
-                    iSortOrder = item.iSortOrder;
-                    iOrdering = item.iOrdering;
-                    }
+    if ( iMsgListContainer )
+        {
+        TMsvId fId = iMsgListContainer->CurrentFolderId();
+        for( TInt loop = 0; loop < iFolderItemArray->Count() ; loop++ )
+            {
+            TMceFolderItem item = ((*iFolderItemArray)[loop]);
+            if ( item.iFolderId == fId && aPrevViewId == TDRVIEWID)
+                {        
+                iSortOrder = item.iSortOrder;
+                iOrdering = item.iOrdering;
                 }
-	        }
-	    if (aPrevViewId != TDRVIEWID ) 
+            }
+        }
+    if (aPrevViewId != TDRVIEWID ) 
         {
-    // Reset the sort order
-    iFolderItemArray->Reset();
-       }
+        // Reset the sort order
+    	iFolderItemArray->Reset();
+        }
 	    
     if ( iMsgListContainer )
         {
@@ -249,47 +249,51 @@
     TBool editorLaunched = EFalse;
     TBool launchingFromOutside = EFalse;  
     TMsvId service = KMsvLocalServiceIndexEntryId;
-    TMsvEntry entry;
+    TMsvEntry entry;    
+    TInt msgMtmUid = 0;
     
     if ( aCustomMessageId.iUid > KMsvRootIndexEntryId )
         {
-        
+
         if ( iSession->GetEntry( aCustomMessageId.iUid, service, entry ) != KErrNone )
             {
             iSession->GetEntry( KMsvGlobalInBoxIndexEntryId, service, entry ); // this should always succeed!
             }
-        
+
         // outside the app.
         launchingFromOutside = ETrue;
-        //check, if message store has been changed from MMC to phone
-        iMceUi->ToPhoneMemoryQueryL( ETrue );
-
         // Set the forder containing the entry
-    	if ( entry.iType == KUidMsvMessageEntry )
-        	{
-        // The aCustomMessageId is an ID of a message, set Inbox
-        	SetFolderL( entry.Parent() );
-        	id = aCustomMessageId.iUid;
-        	}
-    	else
-        	{
+        if ( entry.iType == KUidMsvMessageEntry )
+            {
+            // The aCustomMessageId is an ID of a message, set Inbox
+            SetFolderL( entry.Parent() );
+            id = aCustomMessageId.iUid;
+            }
+        else
+            {
             // Set the folder based on the given ID
             iFolderId = aCustomMessageId.iUid;
-
-        	}
+            // this is performance optimization, start to launch viewer before container creation
+            if ( !iMsgListContainer && entry.Id() == KMsvGlobalInBoxIndexEntryId )
+                {
+                if ( LaunchViewerWhenOneUnreadL( msgMtmUid ) > KErrNotFound )
+                    {
+                    editorLaunched = ETrue;
+                    }
+                }
+            }
         iMceUi->SetDontExitOnNextOperationComplete();
         }
-	if ( iMsgListContainer &&
-	     iCurrentListType != GetFolderListBoxType())
-	    {
-	    ListboxTypeChangedL();
-	    }
-	else
-	    {
-	    CreateListboxL();        
-	    }
     
-    
+    if ( iMsgListContainer &&
+            iCurrentListType != GetFolderListBoxType())
+        {
+        ListboxTypeChangedL();
+        }
+    else
+        {
+        CreateListboxL();        
+        }           
     if ( iMsgListContainer && aPrevViewId == TDRVIEWID )
         {
         // Save the sort ordering in the message store
@@ -977,6 +981,16 @@
     TInt aResourceId,
     CEikMenuPane* aMenuPane )
     {
+    TInt listPopulated = 1;
+    //Get the value, accordingly we can dim/undim mark/unmark for one row list only
+    if ( iCurrentListType == EMceListTypeOneRow )
+        {
+        TInt r = RProperty::Get(KPSUidMuiu, KMuiuOneRowListPopulated,listPopulated);
+        if ( r!= KErrNone )
+            {
+            User::LeaveIfError(r);
+            }
+        }
     if ( !iMceViewActivated )
         {
         return;
@@ -1001,6 +1015,10 @@
     switch ( aResourceId )
         {
         case R_MCE_FOLDER_MENU:
+            if(!listPopulated)
+                {
+            	aMenuPane->SetItemDimmed( EMceCmdEditList, ETrue );
+                }
             aMenuPane->SetItemDimmed( EAknCmdHelp,
                 !FeatureManager::FeatureSupported( KFeatureIdHelp ) );
 
@@ -1834,8 +1852,6 @@
                 // Coverty change, NULL Return, http://ousrv057/cov.cgi?cid=101800
                 if ( uiData )
                     {
-                    aMenuPane->SetItemDimmed( EAknCmdOpen, 
-                     uiData->OperationSupportedL( KMtmUiFunctionOpenMessage, currentEntry ) );
                     aMenuPane->SetItemDimmed( EMceCmdDelete, 
                      uiData->OperationSupportedL( KMtmUiFunctionDeleteMessage, currentEntry ) );
                     }                 
@@ -2294,18 +2310,8 @@
 // ----------------------------------------------------
 void CMceMessageListView::EditMenuL( CEikMenuPane* aMenuPane ) const
     {
-    TInt listPopulated =1;
-    //Get the value, accordingly we can dim/undim mark all for one row list only
-    if(!iCurrentListType)
-        {
-        TInt r = RProperty::Get( KPSUidMuiu, KMuiuOneRowListPopulated, listPopulated );
-        if ( r != KErrNone )
-        	{
-            User::LeaveIfError( r );
-            }
-        }
-    // This function is not called if empty folder because in that case
-    // EditMenu is hidden
+    // This function is not called if empty folder/list is yet to be populated
+    // because in that case EditMenu is hidden
     aMenuPane->SetItemDimmed( EAknCmdMarkReadMsgs, ETrue );
 
     TInt count = iMsgListContainer->SelectionCount();
@@ -2326,7 +2332,7 @@
             }
        }   
 
-    if ( ( count + SubfolderCount() ) == iMsgListContainer->Count() || !listPopulated)
+    if ( ( count + SubfolderCount() ) == iMsgListContainer->Count())
        {
        //if all selected, disable markall
        aMenuPane->SetItemDimmed( EAknMarkAll, ETrue );
--- a/messagingappbase/mce/src/MceOneRowMessageListArrayLoader.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/messagingappbase/mce/src/MceOneRowMessageListArrayLoader.cpp	Tue May 25 12:38:02 2010 +0300
@@ -1880,7 +1880,7 @@
                 {
                 TInt i = parentIndex+1;
                 TInt count = iHCListItemArray.Count();
-                while ( i < count && iHCListItemArray[i].iItemType == EHListItemEntry )
+                if( i < count && iHCListItemArray[i].iItemType == EHListItemEntry )
                     {
                     i++;
                     }
--- a/messagingappbase/mce/src/MceOneRowMessageListContainer.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/messagingappbase/mce/src/MceOneRowMessageListContainer.cpp	Tue May 25 12:38:02 2010 +0300
@@ -88,8 +88,10 @@
 //
 CMceOneRowMessageListContainer::CMceOneRowMessageListContainer( CMceMessageListView& aParentView ) :
     CMceMessageListContainerBase( aParentView ),
-    iEmailFramework(EFalse)
+    iEmailFramework(EFalse),
+    iDeletedMessges(0)
     {
+    iSelectedSubTitles.Reset();
     }
 
 
@@ -107,6 +109,7 @@
     delete iSelectedEntries;
     delete iTreeListBox;
     delete iUiRegistry;
+    iSelectedSubTitles.Close();
     }
 
 
@@ -1090,9 +1093,10 @@
                  !entry.Unread() )
                 {
                 TAknTreeItemID treeItemId = iListItems->TreeItemId( i );
-                iTreeListBox->SetMarked( treeItemId, ETrue, ETrue );
+                iTreeListBox->SetMarked( treeItemId, ETrue, EFalse );
                 }
             }
+        iTreeListBox->DrawNow();
         }
     }
 
@@ -2264,21 +2268,34 @@
             {
             // this removes node and child
             iTreeListBox->RemoveItem( parentTreeItemId, EFalse );
+            TInt deleteSubtitle = iSelectedSubTitles.Find( parentTreeItemId );
+            if ( deleteSubtitle != KErrNotFound )
+                 {
+                 iSelectedSubTitles.Remove( deleteSubtitle );
+                 }
             }
         else if ( treeItemId > KAknTreeIIDRoot )
             {
             // delete only one child, there are other children left so leave node untouched
             iTreeListBox->RemoveItem( treeItemId, EFalse );
-            if ( parentTreeItemId > KAknTreeIIDRoot )
+            if ( parentTreeItemId > KAknTreeIIDRoot &&
+                 iSelectedSubTitles.Find( parentTreeItemId ) == KErrNotFound )
                 {
-                UpdateSubtitleIconL( parentTreeItemId, EFalse );        
+                iSelectedSubTitles.AppendL( parentTreeItemId ) ;                           
                 }
             }
         }
 
-    if ( aDraw )
+    iDeletedMessges += count;  
+    if ( iSelectedEntries->Count() == iDeletedMessges )
         {
-        RefreshListbox();
+        TInt subTitleCount = iSelectedSubTitles.Count();
+        for ( TInt i = 0; i < subTitleCount; i++ )
+            {
+            UpdateSubtitleIconL( iSelectedSubTitles[i], EFalse );
+            }
+        iDeletedMessges = 0;
+        iSelectedSubTitles.Reset();
         }
     }
 
--- a/messagingappbase/msgavkon/muiu_domain/reporteroperation/src/MuiuMsvWrappableProgressDialog.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/messagingappbase/msgavkon/muiu_domain/reporteroperation/src/MuiuMsvWrappableProgressDialog.cpp	Tue May 25 12:38:02 2010 +0300
@@ -348,12 +348,6 @@
 //
 void CMsvWrappableProgressDialog::PreLayoutDynInitL()
     {
-    CEikProgressInfo* bar = GetProgressInfoL();
-    if( bar )
-        {
-        bar->MakeVisible( EFalse );
-        }
-
     CAknProgressDialog::PreLayoutDynInitL();
     if ( iDisplayWaitAnimation )
         {
--- a/messagingappbase/msgeditor/viewsrc/MsgExpandableControlEditor.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/messagingappbase/msgeditor/viewsrc/MsgExpandableControlEditor.cpp	Tue May 25 12:38:02 2010 +0300
@@ -1274,13 +1274,7 @@
 //
 void CMsgExpandableControlEditor::SetTextSkinColorIdL()
     {
-    TAknsQsnTextColorsIndex colorId = EAknsCIQsnTextColorsCG6;
-    if ( !IsReadOnly() && IsFocused() )
-        {
-        colorId = EAknsCIQsnTextColorsCG8;
-        }
-        
-    CEikEdwin::SetTextSkinColorIdL( colorId );
+    CEikEdwin::SetTextSkinColorIdL( EAknsCIQsnTextColorsCG6 );
     }
 
 // ---------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/smilparser/GROUP/bld.inf	Tue May 25 12:38:02 2010 +0300
@@ -0,0 +1,31 @@
+// Copyright (c) 2002-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:
+// Messaging - GMXML
+// Generic XML parser and composer
+// 
+//
+
+/**
+ @file
+*/
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+// Subproject builds
+#include "../SMILdtd/GROUP/bld.inf"
+#include "../Rom/BLD.INF"
+
+PRJ_MMPFILES
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/smilparser/GROUP/messaging_gmxml.history.xml	Tue May 25 12:38:02 2010 +0300
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<relnotes name="SMIL Parser">
+  <purpose>
+    SMIL parsing implemented via generic XML Parser / Composer with a "mini-DOM" API able to perform syntax checking against simple DTDs. Replaces SMIL Translater implementation of 7.0s.
+  </purpose>
+
+  <deliverystep number="1842" name="CR1934: Messaging: Moving XML Parser" osproject="SymTB9.2" revision="012">
+  <cr number="1934" title="Restructuring of the MCL">Adding SMIL parser into webservices-xml package.</cr> 
+  <milestone project="GT0539" number="3.4" /> 
+  </deliverystep>
+  
+   
+  <defect number="DEF142365" title="GCC-E: Simple syntax error" revision="011">
+      syntax error in function declaration
+    </defect>
+
+  <defect number="DEF138034" title="GMXML parser could cause stray event panics" revision="010">
+      stray scanner defect.
+    </defect>
+
+  <deliverystep number="1462" name="Splitting mixed header files for Messaging" osproject="SymTB92" revision="009">
+   <preq number="2510" title=" Splitting mixed header files for Messaging">
+    Mixed header files will now contain only published All or published Partner or internal
+   </preq>
+    <milestone project="GT0465" number="3.5"/>
+  </deliverystep>
+  
+  <defect number="DEF128078" title="@prototype tags in messaging" revision="008">
+      Added IM tag message server.
+    </defect>
+  <defect number="PDEF126520" title="[Folder name missing characters" revision="007">
+    written a new api which handles the case when there is quotation in file name.
+  </defect>
+
+  <defect number="DEF125067" title="[coverity] - CHECKED_RETURN - messaging/gmxml/xmlparser/src/gmxmlparser.cpp" revision="006">
+    Checked the if condition is not false for the AppendChild function.
+  </defect>
+
+  <defect number="PDEF115899" title="xmlparser panics when out of memory" revision="005">
+    Added a new exported leaving function. This is BR approved and BR number is BR2302.3
+  </defect>
+
+  <defect number="DEF108002" title="Warnings generated with checksource build  " revision="004">
+    Added condition to differentiate the winscw and armv5 def files for case sensitive 
+  </defect>
+
+  <defect number="DEF105400" title="Add missing IM tags to Messaging public header files" revision="003">
+    Added IM tag for all given header files.
+  </defect>
+
+  <defect number="INC105134" title="GmXML consumes whitespace characters" revision="002">
+    Now GmXML component restrict for eating white spaces
+  </defect>
+
+  <deliverystep number="500" name="Messaging file name changes to support GNU compiler for Linux" osproject="Oghma" revision="001">
+    <preq number="1182" title="GNU Make-based build system">
+    GNU Make-based build system
+  </preq>
+    <milestone project="GT0342" number="3.3"/>
+  </deliverystep>
+</relnotes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/smilparser/GROUP/messaging_gmxml.mrp	Tue May 25 12:38:02 2010 +0300
@@ -0,0 +1,30 @@
+#
+# 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: 
+#
+
+component	messaging_gmxml
+source	\sf\app\messaging\messagingappbase\smilparser
+binary	\sf\app\messaging\messagingappbase\smilparser\GROUP	all
+exports	\sf\app\messaging\messagingappbase\smilparser\GROUP
+
+notes_source	\component_defs\release.src
+
+
+ipr E 
+ipr T \sf\app\messaging\messagingappbase\smilparser\SMILdtd\SMIL_Test_Files
+ipr T \sf\app\messaging\messagingappbase\smilparser\SMILdtd\tinc
+ipr T \sf\app\messaging\messagingappbase\smilparser\SMILdtd\tsrc
+
+
--- a/mmsengine/mmssettings/src/cmmsaccounts.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/mmsengine/mmssettings/src/cmmsaccounts.cpp	Tue May 25 12:38:02 2010 +0300
@@ -249,6 +249,7 @@
 */                   
 EXPORT_C void CMmsAccounts::GetMMSAccountsL(RArray<TMmsAccountId>& aAccountIds) const
 	{
+    CleanupClosePushL( aAccountIds );
 	aAccountIds.Reset();
 	RArray<TUint32> accountIds;	
 	CleanupClosePushL(accountIds);	
@@ -268,7 +269,8 @@
 		aAccountIds.AppendL(accountId);		
 		}
 		
-	CleanupStack::PopAndDestroy(&accountIds);				
+	CleanupStack::PopAndDestroy(&accountIds);
+	CleanupStack::Pop(&aAccountIds);  // aAccountIds
 	}
 
 /**
--- a/mobilemessaging/audiomsg/group/audiomessage.mmp	Tue May 11 16:10:04 2010 +0300
+++ b/mobilemessaging/audiomsg/group/audiomessage.mmp	Tue May 25 12:38:02 2010 +0300
@@ -22,6 +22,7 @@
 
 TARGET          audiomessage.exe
 EPOCSTACKSIZE   0x5000
+EPOCHEAPSIZE    0x1 0x800000        // As KBs. Latter about 8MB
 TARGETTYPE      exe
 UID             0x100039CE 0x1020745A
 VERSION 	10.0
--- a/mobilemessaging/audiomsg/src/audiomessageappui.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/mobilemessaging/audiomsg/src/audiomessageappui.cpp	Tue May 25 12:38:02 2010 +0300
@@ -3563,6 +3563,10 @@
         iToolbar->SetToolbarVisibility( EFalse, EFalse );     
         }
     
+    if (!(iEditorBaseFeatures & EStayInViewerAfterReply ))
+        {
+        iView->MakeVisible( EFalse );
+        }
     
     ForwardL( KNewMessageFolder );
     if (!(iEditorBaseFeatures & EStayInViewerAfterReply))
--- a/mobilemessaging/audiomsg/src/audiomessagerecorder.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/mobilemessaging/audiomsg/src/audiomessagerecorder.cpp	Tue May 25 12:38:02 2010 +0300
@@ -469,10 +469,6 @@
 		if ( !iAudioOutput )
 			{
 		    TRAPD( err, iAudioOutput = CAudioOutput::NewL( *iRecUtility, EFalse ) );
-			if (err == KErrNone)
-				{
-				iAudioOutput->SetSecureOutputL( EFalse );//DRM
-				}
 			}
 		}
 	}
--- a/mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp	Tue May 25 12:38:02 2010 +0300
@@ -375,6 +375,7 @@
         return;
         }
     
+    TBool toolbarVisible = EFalse;
 #ifdef RD_SCALABLE_UI_V2
     if ((!iToolbar)&& (AknLayoutUtils::PenEnabled() && !msvEntry1.iBioType && !iFlags.iGms) )
     	{
@@ -392,15 +393,15 @@
         
         appUiFactory->SetViewFixedToolbar( iToolbar );    	
         iToolbar->SetToolbarVisibility( ETrue, EFalse ); 
-	    }
-	    
-	//handling the case of iToolbar already created [delete the toolbar incase of biomsgs]
-	else if((iToolbar)&&(AknLayoutUtils::PenEnabled() && msvEntry1.iBioType && iFlags.iGms)) 
-		{
-		    delete iToolbar;
-    		iToolbar = NULL;
-		}
-	
+        toolbarVisible = ETrue;
+	    }	    
+    //handling the case of iToolbar already created [delete the toolbar incase of biomsgs]
+    else if((iToolbar)&&(AknLayoutUtils::PenEnabled() && msvEntry1.iBioType && iFlags.iGms)) 
+        {
+            delete iToolbar;
+            iToolbar = NULL;
+        }
+        
 #endif	
     // Creating view (exits app immediately if fails)
     iView = CMsgEditorView::NewL( *this, CMsgEditorView::EMsgReadOnly );
@@ -535,19 +536,25 @@
        	iNaviDecorator->SetNaviDecoratorObserver( this );
        	if ( iToolbar )
        		{
-       		//By Default make take touchbar invisible, dimmed and disabled
-       		iToolbar->SetToolbarVisibility(EFalse, EFalse);
-       		iToolbar->SetDimmed(ETrue);
-       		iToolbar->DisableToolbarL( ETrue );
-
+       	
+       	   if ( iFlags.iBioMsg || iFlags.iGms ) 
+       	        {
+                //By Default make take touchbar invisible, dimmed and disabled
+                iToolbar->SetToolbarVisibility(EFalse, EFalse);
+                iToolbar->SetDimmed(ETrue);
+                iToolbar->DisableToolbarL( ETrue );
+       	        }
+       	   
        		//Test that message type is normal SMS
        		if ( !iFlags.iBioMsg && !iFlags.iGms) 
        			{
-       			//Enable the touchbar, make it visible and undimmed
-       			iToolbar->DisableToolbarL( EFalse );
-       			iToolbar->SetDimmed(EFalse);
-       			iToolbar->SetToolbarVisibility(ETrue, EFalse);
-
+       		    if(!toolbarVisible)
+       		        {
+                    //Enable the touchbar, make it visible and undimmed
+                    iToolbar->DisableToolbarL( EFalse );
+                    iToolbar->SetDimmed(EFalse);
+                    iToolbar->SetToolbarVisibility(ETrue, EFalse);
+       		        }
                	// default state, nothing dimmed. Uncomment the below lines only if necessary to force set it dim again
                  /*
                		iToolbar->SetItemDimmed(ESmsViewerToolbarReply, EFalse, EFalse);
@@ -2049,12 +2056,20 @@
         User::Leave( KErrDiskFull );
         }
 
-
+    //to reduce flickering after sending a message.
+	if (!(iEditorBaseFeatures & EStayInViewerAfterReply ))
+        {
+        iToolbar->SetToolbarVisibility( EFalse );
+        iView->MakeVisible( EFalse );
+        iNaviDecorator->MakeVisible( EFalse );
+        }
         
     TRAPD(err, DoReplyFwdL( aForward ));
     if(!(err == KErrNone) )
         {
+        iNaviDecorator->MakeVisible( ETrue );
         iView->MakeVisible( ETrue );
+        iToolbar->SetToolbarVisibility( ETrue );
         }    
     
     }
--- a/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp	Tue May 11 16:10:04 2010 +0300
+++ b/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp	Tue May 25 12:38:02 2010 +0300
@@ -2760,21 +2760,35 @@
 
     aMenuPane->SetItemDimmed( EUniCmdPlayPreview, ETrue );                    
     aMenuPane->SetItemDimmed( EUniCmdSendSMS, ETrue );
+    
+    // Completely dim PlaceTextFirst and PlaceTextSecond from options menu
+    aMenuPane->SetItemDimmed( EUniCmdPlaceTextFirst, ETrue );
+    aMenuPane->SetItemDimmed( EUniCmdPlaceTextSecond, ETrue );
 
     if ( Document()->DataModel()->SmilType() != EMmsSmil ) 
         { 
         // It's 3GPP presentation
+        aMenuPane->SetItemDimmed( EUniCmdInsertMedia, ETrue );    
+        }
+    
+    
+    /* This code can be used if PlaceTextFirst and PlaceTextSecond 
+     * functionality is needed.
+     if ( Document()->DataModel()->SmilType() != EMmsSmil ) 
+        { 
+        // It's 3GPP presentation
         aMenuPane->SetItemDimmed( EUniCmdInsertMedia, ETrue );
         aMenuPane->SetItemDimmed( EUniCmdPlaceTextFirst, ETrue );
         aMenuPane->SetItemDimmed( EUniCmdPlaceTextSecond, ETrue );
         }
-    else if ( iSupportedFeatures & EUniFeatureJapanese )
+      
+     else if ( iSupportedFeatures & EUniFeatureJapanese )
         {
         // Not shown on japanese variant ever.
         aMenuPane->SetItemDimmed( EUniCmdPlaceTextFirst, ETrue );
         aMenuPane->SetItemDimmed( EUniCmdPlaceTextSecond, ETrue );        
         }
-    else
+     else
         {
         if ( iSmilModel->Layout() == EUniImageFirst )
             {
@@ -2784,7 +2798,7 @@
             {
             aMenuPane->SetItemDimmed( EUniCmdPlaceTextFirst, ETrue );
             }
-        }
+        } */
 
     if ( Document()->DataModel()->SmilType() != EMmsSmil || 
          iSmilModel->SlideCount() <= 1 )