# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1263838600 -7200 # Node ID 0bf1d54f37d9aa219ec6ce4f6b82a8c73abbf864 # Parent d09ac5c1e252d349751175af57ef7d4455df2eec Revision: 201001 Kit: 201003 diff -r d09ac5c1e252 -r 0bf1d54f37d9 email/imum/Mtms/Src/SmtpMtmUiData.cpp --- 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: diff -r d09ac5c1e252 -r 0bf1d54f37d9 email/imum/Utils/Inc/ImumConstants.h --- 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; diff -r d09ac5c1e252 -r 0bf1d54f37d9 email/imum/conf/imum.confml Binary file email/imum/conf/imum.confml has changed diff -r d09ac5c1e252 -r 0bf1d54f37d9 email/imum/help/inc/mbxs.hlp.hrh --- 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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mce/group/mce.rss --- 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 { diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mce/help/inc/mce.hlp.hrh --- 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. diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mce/inc/MceExtraItems.rh --- 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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mce/inc/MceListItem.h --- 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 CMceMainViewExtraItemArray; diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mce/src/MceIdleMtmLoader.cpp --- 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; diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mce/src/MceMainViewListItemArray.cpp --- 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 ); diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mce/src/MceMainViewListView.cpp --- 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 #include #include -#include +#include #include #include #include @@ -809,8 +809,11 @@ iMsgListContainer->ListBox()->DrawDeferred(); } } - - CheckMainViewBitmapL( changedFolderId ); + // Coverty fix, Forward NULL + if ( iMsgListContainer ) + { + CheckMainViewBitmapL( changedFolderId ); + } break; } diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mce/src/MceMessageListView.cpp --- 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 ) diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mce/src/mceui.cpp --- 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 ); } diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/mceextraitems/group/ExtraIconlist_Scalable.txt --- 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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/msgeditor/appuisrc/MsgCheckNames.cpp --- 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 ) diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/msgeditor/appuisrc/MsgEditorAppUi.cpp --- 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 } // --------------------------------------------------------- diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/msgeditor/appuisrc/MsgNaviPaneControl.cpp --- 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(); + } + } } diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/ncnlist/group/bld.inf --- 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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/schemeplugin/inc/BaseHandler.h --- 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 +#include #include // FORWARD DECLARATION diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/smartmessaging/bva/src/BvaContainer.cpp --- 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 ); } diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/smartmessaging/ringbc/src/RingingToneBioControl.cpp --- 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 } diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/smartmessaging/vcalbc/src/VCalendarBioControl.cpp --- 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 #include #include // CAiwServiceHandler -#include +#include #include #include #include diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/smartmessaging/vcardbc/src/vcardvpbutil.cpp --- 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 #include #include -#include // StringLoader -#include -#include +#include // StringLoader +#include +#include #include "VCardLog.h" #include // for RFileReadStream #include // for ResourceReader diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/smartmessaging/wmlbc/inc/WmlBMSubItem30.h --- 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 +#include // FORWARD DECLARATIONS diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/smartmessaging/wmlbc/inc/WmlBMUtils30.h --- 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 +#include // DATA TYPES diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/smartmessaging/wmlbc/src/WmlBMSubItem30.cpp --- 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 +#include #include // resource identifiers #include // StringLoader #include // CMsgNameValue diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/smartmessaging/wmlbc/src/WmlBMUtils30.cpp --- 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 // CFavouritesItemList +#include // CFavouritesItemList // ================= MEMBER FUNCTIONS ======================= diff -r d09ac5c1e252 -r 0bf1d54f37d9 messagingappbase/smilengine/engine/core/smiltimelist.cpp --- 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() ); } diff -r d09ac5c1e252 -r 0bf1d54f37d9 mmsengine/mmsmessage/src/mmsheaders.cpp --- 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(); } diff -r d09ac5c1e252 -r 0bf1d54f37d9 mmsengine/mmsmessage/src/mmsownnumber.cpp --- 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(); } diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/audiomsg/data/audiomessage.rss --- 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 #include #include -#include -#include +#include +#include #include #include #include "audiomessage.hrh" #include #include #include -#include +#include RESOURCE RSS_SIGNATURE { } RESOURCE TBUF { buf = ""; } diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/audiomsg/data/audiomessagemtm.rss --- 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 #include #include -#include +#include #include diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/audiomsg/src/audiomessageappui.cpp --- 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 <<" ); diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/audiomsg/src/audiomessageprogressdialog.cpp --- 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; } diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/mmsui/help/inc/mms.hlp.hrh --- 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. diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/mmsui/notmtmsrc/NotMtmUi.cpp --- 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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/mmsui/viewer/MmsViewer.rss --- 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 #include #include +#include #include #include @@ -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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/mmsui/viewerinc/UniMmsViewerAppUi.h --- 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 #include // CUniDrmInfo #include +#include // 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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp --- 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 #include #include +#include // 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( aArg2 ); CMsgBaseControl* baseControl = static_cast( 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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/msgmedia/help/inc/msg.hlp.hrh --- 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. diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/postcard/help/inc/postcard.hlp.hrh --- 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. diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/postcard/postcard/Postcard.rss --- 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 #include //LOC Files -#include -#include +#include +#include #include #include #include // Local ones -#include -#include +#include +#include #include "Postcard.hrh" // RESOURCE DEFINITIONS diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/postcard/postcardsrc/PostcardAppUi.cpp --- 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 )); + } } // --------------------------------------------------------- diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/postcard/postcardsrc/PostcardRecipientWrapper.cpp --- 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 ]; } diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/postcard/postcardui/PostcardUi.rss --- 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 #include -#include -#include +#include +#include // CONSTANTS diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/smilui/playersrc/SmilPlayerPresentationController.cpp --- 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 #include -#include +#include #include // for CPlainText #include "SmilTextRenderer.h" diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/smsui/help/inc/sms.hlp.hrh --- 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. diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/smsui/viewer/SmsViewer.rss --- 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 #include // title icon +#include // 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; } }; }; diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/smsui/viewer/SmsViewer_reg.rss --- 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 -#include +#include #include #include #include diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/smsui/viewersrc/MsgSmsViewerAppUi.cpp --- 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, diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/application/data/UniEditor.rss --- 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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/application/data/UniEditor_reg.rss --- 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 #include -#include +#include #include #include diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/application/inc/UniEditorApp.hrh --- 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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/application/inc/UniEditorAppUi.h --- 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 // for MEikEdwinObserver +#include // 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" diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp --- 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 // Turkish SMS-PREQ2265 specific +#include //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( aArg2 ); CMsgBaseControl* control = static_cast( 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( &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 diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/application/src/UniEditorInsertOperation.cpp --- 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; } diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/application/src/UniEditorObjectsModelObserver.cpp --- 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. diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/application/src/UniEditorSaveOperation.cpp --- 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 description; description.Zero(); - length = subject.Length(); - CMsgExpandableControl* header = static_cast( 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 ); diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/help/inc/unif.hlp.hrh --- 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. diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/smsplugin/inc/UniSmsPlugin.h --- 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 ) diff -r d09ac5c1e252 -r 0bf1d54f37d9 mobilemessaging/unieditor/smsplugin/src/UniSmsPlugin.cpp --- 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; } // ---------------------------------------------------------------------------- diff -r d09ac5c1e252 -r 0bf1d54f37d9 msg_plat/internet_mail_mtm_ui_api/inc/impicmds.h --- 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 +#include /** * TIMAP4Cmds: diff -r d09ac5c1e252 -r 0bf1d54f37d9 msg_plat/messaging_center_ui_utilities_api/inc/MtmExtendedCapabilities.hrh --- 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 #endif // KMtmUiFunctionPrint -#include +#include // Capabilties #define KUidMsvMtmQueryMessageInfo 0x10005996 // response true/false diff -r d09ac5c1e252 -r 0bf1d54f37d9 msg_plat/messaging_center_ui_utilities_api/inc/MuiuMsgEditorService.rh --- 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 +#include STRUCT MSG_SERVICE_STRUCT { diff -r d09ac5c1e252 -r 0bf1d54f37d9 msg_plat/messaging_editor_api/inc/MsgEditor.rh --- 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 { diff -r d09ac5c1e252 -r 0bf1d54f37d9 msg_plat/messaging_editor_api/inc/MsgEditorCommon.h --- 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 =======================================