diff -r 3533d4323edc -r 968773a0b6ef emailuis/emailui/src/FreestyleEmailUiAppui.cpp --- a/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Wed Sep 01 12:28:57 2010 +0100 +++ b/emailuis/emailui/src/FreestyleEmailUiAppui.cpp Tue Sep 14 20:48:24 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007 - 2010 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" @@ -89,7 +89,7 @@ #include "cfsccontactactionmenu.h" // #include // for Layout_Meta_Data - +#include #include #include "freestyleemailcenrepkeys.h" #include @@ -158,6 +158,7 @@ const TUint KConnectionStatusIconRotationInterval = 100; const TUint KFakeSyncAnimStopTimerInterval = 3000; // 3 secs const TInt KConnectionStatusIconRotationAmount = 18; +const TInt KFullCircleInDegrees = 360; // Length of the drive letter descriptor (e.g. "c:") const TInt KDriveDescLength = 2; @@ -748,7 +749,7 @@ // Destruction must be done here as other Tls data depends on it. CFSEmailDownloadInfoMediator::Destroy(); - delete iNaviDecorator2MailViewer; + delete iNaviDecorator; delete iConnectionStatusIconAnimTimer; delete iFakeSyncAnimStopTimer; @@ -891,6 +892,12 @@ return; } + if( aViewId == MailListId ) + { + // notify Eik that SplitInput was disabled when entering the list form homescreen + CEikAppUi::HandleResourceChangeL( KAknSplitInputDisabled ); + } + // Do nothing if the externally activated view was already active if ( iCurrentActiveView->Id() != aViewId ) { @@ -1601,8 +1608,7 @@ { iPendingLayoutSwitch = ETrue; } - - if ( iCurrentActiveView && !iSettingsViewActive ) + if ( iCurrentActiveView && !iSettingsViewActive && !iMRViewer ) { iCurrentActiveView->HandleDynamicVariantSwitchL( type ); } @@ -2586,7 +2592,7 @@ if ( iConnectionIconBitmap ) { TSize iconSize = LayoutHandler()->statusPaneIconSize(); - AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved ); + AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle); } titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconBitmap && iConnectionIconMask); } @@ -2696,7 +2702,7 @@ if ( iConnectionIconBitmap ) { TSize iconSize( LayoutHandler()->statusPaneIconSize() ); - AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved ); + AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle); } titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconMask && iConnectionIconBitmap ); if (startTimer) @@ -3057,13 +3063,15 @@ iConnectionIconMask ); if ( iConnectionIconBitmap && iConnectionIconMask ) { - AknIconUtils::SetSize( - iConnectionIconBitmap, - LayoutHandler()->statusPaneIconSize(), - EAspectRatioNotPreserved ); - titlePane->SetSmallPicture( - iConnectionIconBitmap, - iConnectionIconMask, + AknIconUtils::SetSizeAndRotation( + iConnectionIconBitmap, + LayoutHandler()->statusPaneIconSize(), + EAspectRatioNotPreserved, + iConnectionStatusIconAngle ); + + titlePane->SetSmallPicture( + iConnectionIconBitmap, + iConnectionIconMask, ETrue ); iConnectionStatusIconAnimTimer->Start( KConnectionStatusIconRotationInterval ); @@ -3077,60 +3085,6 @@ } } -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -void CFreestyleEmailUiAppUi::ConstructNaviPaneL() - { - FUNC_LOG; - - CAknNavigationControlContainer* naviPaneContainer = - static_cast( - StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) ); - - // Following navipane is for mailviewer view - if ( !iNaviDecorator2MailViewer ) - { - // Constructing a decorator with own decorated control, - // which is (currently an empty) container. - CFreestyleEmailUiNaviPaneControlContainer2MailViewer* c = - CFreestyleEmailUiNaviPaneControlContainer2MailViewer::NewL(); - c->SetContainerWindowL( *naviPaneContainer ); - iNaviDecorator2MailViewer = CAknNavigationDecorator::NewL( - naviPaneContainer, - c, - CAknNavigationDecorator::ENotSpecified ); - - // In order to get navi arrows visible, they must be set visible AND not dimmed... - iNaviDecorator2MailViewer->SetContainerWindowL( *naviPaneContainer ); - iNaviDecorator2MailViewer->MakeScrollButtonVisible( ETrue ); - iNaviDecorator2MailViewer->SetScrollButtonDimmed( CAknNavigationDecorator::ELeftButton, EFalse ); - iNaviDecorator2MailViewer->SetScrollButtonDimmed( CAknNavigationDecorator::ERightButton, EFalse ); - - iNaviDecorator2MailViewer->SetComponentsToInheritVisibility( ETrue ); - naviPaneContainer->PushL( *iNaviDecorator2MailViewer ); - } - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -CAknNavigationDecorator* CFreestyleEmailUiAppUi::NaviDecoratorL( const TUid aViewId ) - { - FUNC_LOG; - CAknNavigationDecorator* decorator( NULL ); - // Depending on who's asking, return proper navipane instance - if ( aViewId.iUid == MailViewerId.iUid ) - { - if ( !iNaviDecorator2MailViewer ) - { - ConstructNaviPaneL(); - } - decorator = iNaviDecorator2MailViewer; - } - return decorator; - } - void CFreestyleEmailUiAppUi::TimerEventL( CFSEmailUiGenericTimer* aTriggeredTimer ) { if ( aTriggeredTimer == iConnectionStatusIconAnimTimer ) @@ -3149,6 +3103,7 @@ TSize iconSize = LayoutHandler()->statusPaneIconSize(); iConnectionStatusIconAngle += KConnectionStatusIconRotationAmount; + iConnectionStatusIconAngle %= KFullCircleInDegrees; AknIconUtils::SetSizeAndRotation(iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved, iConnectionStatusIconAngle); titlePane->DrawNow(); iConnectionStatusIconAnimTimer->Start(KConnectionStatusIconRotationInterval); @@ -3220,7 +3175,35 @@ } } - +void CFreestyleEmailUiAppUi::SetNaviPaneTextL( const TDesC& aText ) + { + if (aText.Length()) + { + CAknNavigationControlContainer* np = + static_cast( + StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) ); + + if (!iNaviDecorator) + { + iNaviDecorator = np->CreateNavigationLabelL( KNullDesC() ); + np->PushL( *iNaviDecorator ); + } + CAknNaviLabel* naviLabel = static_cast( iNaviDecorator->DecoratedControl() ); + if( naviLabel ) + { + naviLabel->SetTextL( aText ); + iNaviDecorator->DrawDeferred(); + } + } + else + { + if (iNaviDecorator) + { + delete iNaviDecorator; + iNaviDecorator = NULL; + } + } + } //////////////////////////////////////////////////////////////////////////////// //