# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1284487916 -10800 # Node ID fc3320e398805974e38aba775909ca29a7e3bca1 # Parent 7fdbb852d3232a8894a692888738a86871b2e44a Revision: 201033 Kit: 201035 diff -r 7fdbb852d323 -r fc3320e39880 email/imum/help/data/xhtml.zip Binary file email/imum/help/data/xhtml.zip has changed diff -r 7fdbb852d323 -r fc3320e39880 email/pop3andsmtpmtm/popservermtm/src/POPSMTM.CPP --- a/email/pop3andsmtpmtm/popservermtm/src/POPSMTM.CPP Wed Sep 01 12:31:54 2010 +0100 +++ b/email/pop3andsmtpmtm/popservermtm/src/POPSMTM.CPP Tue Sep 14 21:11:56 2010 +0300 @@ -1432,6 +1432,14 @@ { CommandComplete( eCode ); } + else if(iState.iLastCurrentOperation == EPopConnectedAndIdle && iState.iCurrentOperation == EPopDisconnected && eCode != KErrNone) + { + // Some email servers doesn’t wait for QUIT command, in such cases need to close RConnection + delete iSessionManager; + iSessionManager = NULL; + + iPopProgress.iErrorCode = eCode; + } else { iPopProgress.iErrorCode = eCode; diff -r 7fdbb852d323 -r fc3320e39880 messagingappbase/mce/help/data/xhtml.zip Binary file messagingappbase/mce/help/data/xhtml.zip has changed diff -r 7fdbb852d323 -r fc3320e39880 messagingappbase/mce/inc/MceMainViewListView.h --- a/messagingappbase/mce/inc/MceMainViewListView.h Wed Sep 01 12:31:54 2010 +0100 +++ b/messagingappbase/mce/inc/MceMainViewListView.h Tue Sep 14 21:11:56 2010 +0300 @@ -55,6 +55,7 @@ public CAknView, public MMceMainViewListItemArrayObserver, public MEikListBoxObserver, + public MEikScrollBarObserver, public MMsvSessionObserver { public: @@ -182,6 +183,15 @@ void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType); + + protected: // Functions from base classes + + /** + * From MEikScrollBarObserver + */ + void HandleScrollEventL( + CEikScrollBar* aScrollBar, + TEikScrollEvent aEventType); private: diff -r 7fdbb852d323 -r fc3320e39880 messagingappbase/mce/src/MceMainViewListItemArray.cpp --- a/messagingappbase/mce/src/MceMainViewListItemArray.cpp Wed Sep 01 12:31:54 2010 +0100 +++ b/messagingappbase/mce/src/MceMainViewListItemArray.cpp Tue Sep 14 21:11:56 2010 +0300 @@ -1200,10 +1200,10 @@ TInt bitmapidx = EMceBitmapIndexConversation; if(iDefaultViewSettings == KMceConversationview ) { - TInt msgCount = 0; - TInt unreadCount = 0; - TRAPD(Errcode,iBitmapResolver.HasUnreadMessagesL(KMsvGlobalInBoxIndexEntryId,msgCount,unreadCount)); - if( unreadCount > 0 ) + TInt unreadMessages = 0; + //To check whether unread message presents in inbox + TRAPD( err, iBitmapResolver.FindVisibleCountWithUnreadMessageL( KMsvGlobalInBoxIndexEntryId, unreadMessages )); + if ( err == KErrNone && unreadMessages ) { bitmapidx = EMceBitmapIndexConversationNew ; } diff -r 7fdbb852d323 -r fc3320e39880 messagingappbase/mce/src/MceMainViewListView.cpp --- a/messagingappbase/mce/src/MceMainViewListView.cpp Wed Sep 01 12:31:54 2010 +0100 +++ b/messagingappbase/mce/src/MceMainViewListView.cpp Tue Sep 14 21:11:56 2010 +0300 @@ -364,7 +364,8 @@ iMceUi->ResetResourceChange(); } listBox->SetListBoxObserver(this); - + //To observe scrollbar events + listBox->ScrollBarFrame()->SetScrollBarFrameObserver( this ); iMsgListContainer->ActivateL(); if ( !iListViewFlags.MceFlag( EMceUiFlagsContainerAddedToStack ) ) { @@ -454,9 +455,11 @@ iMsgListContainer->SetMskL(); } break; + case EEventPanningStarted: case EEventFlickStarted: iFlick = ETrue; break; + case EEventPanningStopped: case EEventFlickStopped: iFlick = EFalse; break; @@ -1218,4 +1221,30 @@ return KErrNotFound; } } +// --------------------------------------------------------- +// CMceMainViewListView::HandleScrollEventL +// To take old bitmapindex for list items When +// stylus is down on scroll bar thumb and dragged +// Calculate new bitmapindex when scrollbar thumb drag is stopped +// --------------------------------------------------------- +// +void CMceMainViewListView::HandleScrollEventL(CEikScrollBar* aScrollBar, + TEikScrollEvent aEventType) + { + switch (aEventType) + { + case EEikScrollThumbDragVert: + iFlick = ETrue; + break; + case EEikScrollThumbReleaseVert: + iFlick = EFalse; + break; + default: + break; + } + CAknDoubleLargeStyleListBox* listBox = + REINTERPRET_CAST( CAknDoubleLargeStyleListBox*, + iMsgListContainer->ListBox() ); + listBox->HandleScrollEventL( aScrollBar, aEventType ); + } // End of File diff -r 7fdbb852d323 -r fc3320e39880 messagingappbase/msgeditor/mediacontrolsrc/MsgImageControl.cpp --- a/messagingappbase/msgeditor/mediacontrolsrc/MsgImageControl.cpp Wed Sep 01 12:31:54 2010 +0100 +++ b/messagingappbase/msgeditor/mediacontrolsrc/MsgImageControl.cpp Tue Sep 14 21:11:56 2010 +0300 @@ -153,26 +153,23 @@ Min( sourceSize.iWidth, iMaxSize.iWidth - iFrame->FrameBorderSize().iWidth ), Min( sourceSize.iHeight, iMaxSize.iHeight - iFrame->FrameBorderSize().iHeight ) ); + // In case of KImageTypePNGUid and KImageTypeBMPUid + // with and without IsAnimation, call CreateImageViewerL with + // Flags zero. This to avoid image corruption when IsAnimation is flase and + // Image resize happened based on control size. + + TUint32 flagOptions = 0; + if ( !iSourceImage->IsAnimation() && - ( iSourceImage->ImageType() == KImageTypeBMPUid || - iSourceImage->ImageType() == KImageTypeGIFUid || - iSourceImage->ImageType() == KImageTypePNGUid ) ) + iSourceImage->ImageType() == KImageTypeGIFUid ) { - iEngine = IHLViewerFactory::CreateImageViewerL( targetSize, - *iSourceImage, - *iDestinationBitmap, - *this, - MIHLImageViewer::EOptionUseBilinearInterpolation); - } - else - { - iEngine = IHLViewerFactory::CreateImageViewerL( targetSize, - *iSourceImage, - *iDestinationBitmap, - *this, - 0 ); - - } + flagOptions |= MIHLImageViewer::EOptionUseBilinearInterpolation; + } + iEngine = IHLViewerFactory::CreateImageViewerL( targetSize, + *iSourceImage, + *iDestinationBitmap, + *this, + flagOptions); } // --------------------------------------------------------- diff -r 7fdbb852d323 -r fc3320e39880 messagingappbase/msgeditor/viewsrc/MsgAttachmentControl.cpp --- a/messagingappbase/msgeditor/viewsrc/MsgAttachmentControl.cpp Wed Sep 01 12:31:54 2010 +0100 +++ b/messagingappbase/msgeditor/viewsrc/MsgAttachmentControl.cpp Tue Sep 14 21:11:56 2010 +0300 @@ -145,6 +145,9 @@ iEditor->SetReadOnly( ETrue ); iEditor->AddFlagToUserFlags( CEikEdwin::EAvkonDisableCursor ); + // To Dis-able Smiley support for attachment field. + iEditor->RemoveFlagFromUserFlags(CEikEdwin::EAvkonEnableSmileySupport); + iControlModeFlags |= EMsgControlModeForceFocusStop; SetPlainTextMode( ETrue ); diff -r 7fdbb852d323 -r fc3320e39880 mobilemessaging/unieditor/application/inc/UniEditorAppUi.h --- a/mobilemessaging/unieditor/application/inc/UniEditorAppUi.h Wed Sep 01 12:31:54 2010 +0100 +++ b/mobilemessaging/unieditor/application/inc/UniEditorAppUi.h Tue Sep 14 21:11:56 2010 +0300 @@ -257,6 +257,11 @@ * From CEikAppUi */ void HandleCommandL( TInt aCommand ); + + /** + * From CAknAppUi + */ + void ProcessCommandL(TInt aCommand); /** * Performs the command. @@ -1390,7 +1395,6 @@ CAknStylusPopUpMenu* iEmbeddedObjectStylusPopup; // sendui+jepg optimization changes TBool iOptimizedFlow; - TBool iSingleJpegImageProcessing; }; #include "UniEditorAppUi.inl" diff -r 7fdbb852d323 -r fc3320e39880 mobilemessaging/unieditor/application/inc/UniEditorLaunchOperation.h --- a/mobilemessaging/unieditor/application/inc/UniEditorLaunchOperation.h Wed Sep 01 12:31:54 2010 +0100 +++ b/mobilemessaging/unieditor/application/inc/UniEditorLaunchOperation.h Tue Sep 14 21:11:56 2010 +0300 @@ -94,17 +94,6 @@ * Detach slide loader object */ inline CUniSlideLoader* DetachSlideLoader(); - - /** - * get header object - */ - inline CUniEditorHeader* GetHeader(); - - /** - * get slide loader object - */ - inline CUniSlideLoader* GetSlideLoader(); - /** * Return parse result diff -r 7fdbb852d323 -r fc3320e39880 mobilemessaging/unieditor/application/inc/UniEditorLaunchOperation.inl --- a/mobilemessaging/unieditor/application/inc/UniEditorLaunchOperation.inl Wed Sep 01 12:31:54 2010 +0100 +++ b/mobilemessaging/unieditor/application/inc/UniEditorLaunchOperation.inl Tue Sep 14 21:11:56 2010 +0300 @@ -39,22 +39,4 @@ return slideLoader; } -// --------------------------------------------------------- -// CUniEditorLaunchOperation::GetHeader -// --------------------------------------------------------- -// -inline CUniEditorHeader* CUniEditorLaunchOperation::GetHeader() - { - return iHeader; - } - -// --------------------------------------------------------- -// CUniEditorLaunchOperation::GetSlideLoader -// --------------------------------------------------------- -// -inline CUniSlideLoader* CUniEditorLaunchOperation::GetSlideLoader() - { - return iSlideLoader; - } - // End of file diff -r 7fdbb852d323 -r fc3320e39880 mobilemessaging/unieditor/application/inc/UniEditorProcessImageOperation.h --- a/mobilemessaging/unieditor/application/inc/UniEditorProcessImageOperation.h Wed Sep 01 12:31:54 2010 +0100 +++ b/mobilemessaging/unieditor/application/inc/UniEditorProcessImageOperation.h Tue Sep 14 21:11:56 2010 +0300 @@ -85,11 +85,6 @@ * Detaches attachment id. */ void DetachAttachmentId( TMsvAttachmentId& aAttachmentId ); - - /** - * Set Optimized Flow flag - */ - void SetOptimizedFlow(TBool aOptimizedFlow); protected: @@ -213,7 +208,6 @@ // TSize iScaleSizeResult; TDataType iTargetType; TBool iExactImageScaling; - TBool iOptimizedFlow; }; #endif //__UNIEDITORPROCESSIMAGEOPERATION_H diff -r 7fdbb852d323 -r fc3320e39880 mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp --- a/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp Wed Sep 01 12:31:54 2010 +0100 +++ b/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp Tue Sep 14 21:11:56 2010 +0300 @@ -271,8 +271,7 @@ iPopupChangedSmsBuffer(NULL), iEditorFlags( EShowInfoPopups ), iMskResId( R_UNIEDITOR_OPTIONS_CLOSE ), - iOptimizedFlow(EFalse), - iSingleJpegImageProcessing(EFalse) + iOptimizedFlow(EFalse) { } @@ -479,22 +478,7 @@ { iEditorFlags |= EEditorExiting; - //sendui+jepg optimization changes - if(iLaunchOperation) - { - // check Is iLaunchOperation still attached to - // iSlideLoader / iHeader - // Set the CUniEditorAppUi - // instance to NULL, to avoid crash. - if(iLaunchOperation->GetHeader()) - { - iHeader = NULL; - } - if(iLaunchOperation->GetSlideLoader()) - { - iSlideLoader = NULL; - } - } + if ( iView ) { // To prevent focus changes caused by input blocker deletion & toolbar extension @@ -699,31 +683,10 @@ // void CUniEditorAppUi::FinalizeLaunchL() { - // In all normal cases other then Sendui+Jepeg - // iOptimizedFlow will be false and flow should be - // same as the normal launch - if(iOptimizedFlow) - { - //if iOptimizedFlow is True, it means - //sendui+Jepg and this is partial complete call - iSingleJpegImageProcessing = ETrue; - } - iFinalizeLaunchL = ETrue; iSmilModel = &Document()->DataModel()->SmilModel(); - - if(!iOptimizedFlow) - { - //detach the iHeader and iSlideLoader - iHeader = iLaunchOperation->DetachHeader(); - iSlideLoader = iLaunchOperation->DetachSlideLoader(); - } - else - { - // get reference to complete partial lauch operation - iHeader = iLaunchOperation->GetHeader(); - iSlideLoader = iLaunchOperation->GetSlideLoader(); - } + iHeader = iLaunchOperation->DetachHeader(); + iSlideLoader = iLaunchOperation->DetachSlideLoader(); SetMessageTypeLockingL(); @@ -821,41 +784,12 @@ MenuBar()->SetMenuType( CEikMenuBar::EMenuOptions ); UpdateToolbarL(); - - // partial launch need to call execute to make - //the editor visible - if(iOptimizedFlow) - { - iView->ExecuteL( ClientRect(), focusedControlId ); - } - else// not optmized Flow, common flow - { - // partial launch, dont set the flag - iEditorFlags |= ELaunchSuccessful; - - // in case of sendui+jepg , again finalize launch will be called - //after image processing, no need to call iView->ExecuteL - // slide will be loaded already by slide loader. - if(!iSingleJpegImageProcessing) - { - //normal flow - iView->ExecuteL( ClientRect(), focusedControlId ); - } - - //after the lauch complete for sendui+jepg - //rest it. - iSingleJpegImageProcessing = EFalse; - } - + + iEditorFlags |= ELaunchSuccessful; + + iView->ExecuteL( ClientRect(), focusedControlId ); delete iScreenClearer; iScreenClearer = NULL; - - // show note inserting - if(iOptimizedFlow) - { - ShowWaitNoteL( R_QTN_UNI_WAIT_INSERTING ); - } - } @@ -1469,6 +1403,39 @@ } } +// --------------------------------------------------------- +// CUniEditorAppUi::ProcessCommandL +// --------------------------------------------------------- +// +void CUniEditorAppUi::ProcessCommandL(TInt aCommand) + { + switch(aCommand) + { + case EAknCmdExit: + { + /* + Exit command is handle handled here since handling the same in HandleCommandL is too late for + themes effect to shown when application is exiting while progress note is shown. + BeginFullScreen is called after ProcessCommandL and before HandleCommandL, progress note is + shown in ProcessCommandL ie before BeginFullScreen is made. + */ + + //Only after processing the command, option menu is removed + //ProcessCommandL is called with some false command id which is unique and not used in any other place + const TInt KRandomCommand(8975462); + CAknAppUi::ProcessCommandL( KRandomCommand ); + RemoveWaitNote(); + ExitAndSaveL(); + break; + } + default: + break; + } + + CAknAppUi::ProcessCommandL( aCommand ); + + } + // --------------------------------------------------------- // CUniEditorAppUi::HandleCommandL @@ -1691,6 +1658,9 @@ } case EEikCmdExit: { + //Save message when unieditor is closed though FSW + //We won't get here when option->exit is selscted since while handling CAknCmdExit in overriden + //ProcessCommandL we call Exit() RemoveWaitNote(); ExitAndSaveL(); break; @@ -6512,9 +6482,8 @@ if ( iEditorFlags & EEditorExiting ) { // Do not handle any event if we are exiting from editor. - // rest values. + // rest values. iOptimizedFlow = EFalse; - iSingleJpegImageProcessing = EFalse; return; } @@ -6528,14 +6497,18 @@ if(iLaunchOperation) { iOptimizedFlow = iLaunchOperation->IsOptimizedFlagSet(); - } - } - // sendui+jepg-> this required after image processing - if(!iOptimizedFlow) - { - DeactivateInputBlocker(); - iEditorFlags &= ~EMsgEditInProgress; - } + if(iOptimizedFlow ) + { + TRAP_IGNORE(ShowWaitNoteL( R_QTN_UNI_WAIT_INSERTING )); + iOptimizedFlow = EFalse; + return; + } + } + } + + DeactivateInputBlocker(); + iEditorFlags &= ~EMsgEditInProgress; + if ( aEvent == EUniEditorOperationCancel && aOperation != EUniEditorOperationSend ) { @@ -6554,15 +6527,6 @@ TRAPD( error, DoEditorOperationEventL( aOperation, aEvent ) ); if ( error != KErrNone ) { - // error handling - if(iOptimizedFlow) - { - DeactivateInputBlocker(); - iEditorFlags &= ~EMsgEditInProgress; - } - iOptimizedFlow = EFalse; - iSingleJpegImageProcessing = EFalse; - // Handle operation handling error. if ( error == KLeaveExit ) { @@ -6579,10 +6543,6 @@ } } } - //sendui+jepg-> after first call to finallizelauch,rest - // it, so that next call will cover the code finallizelaunch - //as happened for other launch cases. - iOptimizedFlow = EFalse; } // --------------------------------------------------------- @@ -6735,19 +6695,11 @@ // void CUniEditorAppUi::DoLaunchCompleteL() { - //sendui+jepg -> this required after image processing - if(!iOptimizedFlow) - { - // Does no harm to call this even if no wait note is set. - RemoveWaitNote(); - } - + // Does no harm to call this even if no wait note is set. + RemoveWaitNote(); + TBool shutDown( EFalse ); - // sendui+jepg-> this required after image processing - if(!iOptimizedFlow) - { - ShowLaunchNotesL( shutDown ); - } + ShowLaunchNotesL( shutDown ); if ( shutDown ) { diff -r 7fdbb852d323 -r fc3320e39880 mobilemessaging/unieditor/application/src/UniEditorLaunchOperation.cpp --- a/mobilemessaging/unieditor/application/src/UniEditorLaunchOperation.cpp Wed Sep 01 12:31:54 2010 +0100 +++ b/mobilemessaging/unieditor/application/src/UniEditorLaunchOperation.cpp Tue Sep 14 21:11:56 2010 +0300 @@ -402,13 +402,9 @@ // void CUniEditorLaunchOperation::DoPrepareHeaderL() { - if(!iHeader) - { - // Header is always drawn and populated - iHeader = CUniEditorHeader::NewL( iDocument.Mtm(), iDocument, iView, iFs ); - } - if(!iOptimizedFlow) - CompleteSelf( KErrNone ); + // Header is always drawn and populated + iHeader = CUniEditorHeader::NewL( iDocument.Mtm(), iDocument, iView, iFs ); + CompleteSelf( KErrNone ); } // --------------------------------------------------------- @@ -417,28 +413,21 @@ // void CUniEditorLaunchOperation::DoPrepareBodyL() { - if(!iSlideLoader) - { - iSlideLoader = CUniSlideLoader::NewL( - iControlObserver, - *iDocument.DataModel(), - iView, - EUniControlEditorMode ); - } - + iSlideLoader = CUniSlideLoader::NewL( + iControlObserver, + *iDocument.DataModel(), + iView, + EUniControlEditorMode ); + if ( iDocument.DataModel()->SmilType() == EMmsSmil ) { - if(!iOptimizedFlow) + if ( !iDocument.DataModel()->SmilModel().SlideCount() ) { - if ( !iDocument.DataModel()->SmilModel().SlideCount() ) - { - iDocument.DataModel()->SmilModel().AddSlideL(); - } + iDocument.DataModel()->SmilModel().AddSlideL(); + } - iSlideLoader->LoadSlideL( *this, 0 ); - - SetPending(); - } + iSlideLoader->LoadSlideL( *this, 0 ); + SetPending(); } else { @@ -630,8 +619,6 @@ iOptimizedFlow = iSendUiOperation->IsOptimizedFlagSet(); if(iOptimizedFlow) { - DoPrepareHeaderL(); - DoPrepareBodyL(); iObserver.EditorOperationEvent( EUniEditorOperationLaunch, EUniEditorOperationComplete ); diff -r 7fdbb852d323 -r fc3320e39880 mobilemessaging/unieditor/application/src/UniEditorProcessImageOperation.cpp --- a/mobilemessaging/unieditor/application/src/UniEditorProcessImageOperation.cpp Wed Sep 01 12:31:54 2010 +0100 +++ b/mobilemessaging/unieditor/application/src/UniEditorProcessImageOperation.cpp Tue Sep 14 21:11:56 2010 +0300 @@ -98,8 +98,7 @@ CUniEditorDocument& aDocument, RFs& aFs ) : CUniEditorOperation( aObserver, aDocument, aFs, EUniEditorOperationProcessImage ), - iNewAttaId( KMsvNullIndexEntryId ), - iOptimizedFlow(EFalse) + iNewAttaId( KMsvNullIndexEntryId ) { } @@ -259,13 +258,6 @@ // void CUniEditorProcessImageOperation::DoStartProcessL() { - - if(iOptimizedFlow) - { - iObserver.EditorOperationEvent( EUniEditorOperationProcessImage, - EUniEditorOperationPartialComplete ); - iOptimizedFlow = EFalse; - } CreateEmptyAttachmentL(); if ( !iImageProcessor ) @@ -654,13 +646,5 @@ iNewImageInfo = NULL; return tempInfo; } - -// --------------------------------------------------------- -// CUniEditorProcessImageOperation::SetOptimizedFlow -// --------------------------------------------------------- -// -void CUniEditorProcessImageOperation::SetOptimizedFlow(TBool aOptimizedFlow) - { - iOptimizedFlow = aOptimizedFlow; - } + // End of file diff -r 7fdbb852d323 -r fc3320e39880 mobilemessaging/unieditor/application/src/UniEditorSendUiOperation.cpp --- a/mobilemessaging/unieditor/application/src/UniEditorSendUiOperation.cpp Wed Sep 01 12:31:54 2010 +0100 +++ b/mobilemessaging/unieditor/application/src/UniEditorSendUiOperation.cpp Tue Sep 14 21:11:56 2010 +0300 @@ -235,6 +235,9 @@ if(obj->MediaInfo()->MimeType().CompareF( KMsgMimeImageJpeg )== 0) { iOptimizedFlow = ETrue; + iObserver.EditorOperationEvent( EUniEditorOperationSendUi, + EUniEditorOperationPartialComplete ); + iOptimizedFlow = EFalse; } } @@ -477,7 +480,6 @@ iImageOperation = CUniEditorProcessImageOperation::NewL( *this, iDocument, iFs ); } - iImageOperation->SetOptimizedFlow(iOptimizedFlow); // Processes if needed: iImageOperation->Process( static_cast( aObject->MediaInfo() ), aObject->AttachmentId(), @@ -581,7 +583,7 @@ // --------------------------------------------------------- // void CUniEditorSendUiOperation::HandleOperationEvent( TUniEditorOperationType aOperation, - TUniEditorOperationEvent aEvent ) + TUniEditorOperationEvent /*aEvent*/ ) { TBool remove( EFalse ); @@ -590,17 +592,6 @@ if ( aOperation == EUniEditorOperationProcessImage ) { - if( aEvent == EUniEditorOperationPartialComplete) - { - if(iOptimizedFlow) - { - iObserver.EditorOperationEvent( EUniEditorOperationSendUi, - EUniEditorOperationPartialComplete ); - iOptimizedFlow = EFalse; - } - return; - } - iOptimizedFlow = EFalse; // Process image error handling CArrayFixFlat* errors = iImageOperation->GetErrors(); for ( TInt i = 0; i < errors->Count(); i++ ) diff -r 7fdbb852d323 -r fc3320e39880 mobilemessaging/unieditor/help/data/xhtml.zip Binary file mobilemessaging/unieditor/help/data/xhtml.zip has changed