diff -r 12c456ceeff2 -r 5253a20d2a1e emailuis/emailui/src/FreestyleEmailUiSettingsListView.cpp --- a/emailuis/emailui/src/FreestyleEmailUiSettingsListView.cpp Thu Jan 07 12:38:38 2010 +0200 +++ b/emailuis/emailui/src/FreestyleEmailUiSettingsListView.cpp Mon Jan 18 20:08:26 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007 - 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" @@ -15,7 +15,6 @@ * */ - // SYSTEM INCLUDES #include "emailtrace.h" #include @@ -30,19 +29,15 @@ #include #include #include -// #include -// +#include #include "CFSMailCommon.h" #include "CFSMailBox.h" #include "ESMailSettingsPlugin.h" #include "ESMailSettingsPluginUids.hrh" -// #include // Uids for general settings activation -// #include -// // LOCAL INCLUDES #include "FreestyleEmailUiUtilities.h" @@ -61,15 +56,16 @@ // code that could leave. // --------------------------------------------------------------------------- // -CFsEmailSettingsListView::CFsEmailSettingsListView( CAlfControlGroup& aControlGroup, - CFreestyleEmailUiAppUi& aAppUi, CFSMailClient& aMailClient ) - : CFsEmailUiViewBase( aControlGroup, aAppUi ), iMailClient( aMailClient ) +CFsEmailSettingsListView::CFsEmailSettingsListView( + CAlfControlGroup& aControlGroup, + CFreestyleEmailUiAppUi& aAppUi, + CFSMailClient& aMailClient ) + : CFsEmailUiViewBase( aControlGroup, aAppUi ), + iMailClient( aMailClient ), + iMailboxSettings( EFalse ) { FUNC_LOG; - iFsEmailSettingsList = NULL; - iMailboxSettings = EFalse; - } // --------------------------------------------------------------------------- @@ -79,11 +75,18 @@ CFsEmailSettingsListView::~CFsEmailSettingsListView() { FUNC_LOG; + if ( iAsyncCallback ) { iAsyncCallback->Cancel(); delete iAsyncCallback; } + + if ( iStylusPopUpMenu ) + { + delete iStylusPopUpMenu; + iStylusPopUpMenu = NULL; + } } @@ -101,7 +104,8 @@ { FUNC_LOG; - CFsEmailSettingsListView* self = CFsEmailSettingsListView::NewLC( aMailClient, aAppUi, aControlGroup ); + CFsEmailSettingsListView* self = + CFsEmailSettingsListView::NewLC( aMailClient, aAppUi, aControlGroup ); CleanupStack::Pop( self ); return self; @@ -122,7 +126,8 @@ FUNC_LOG; CFsEmailSettingsListView* self = - new ( ELeave ) CFsEmailSettingsListView( aControlGroup, *aAppUi, aMailClient ); + new ( ELeave ) CFsEmailSettingsListView( + aControlGroup, *aAppUi, aMailClient ); CleanupStack::PushL( self ); self->ConstructL(); @@ -130,10 +135,11 @@ } -/** - * Second-phase constructor for view. - * Initialize contents from resource. - */ +// --------------------------------------------------------------------------- +// Second-phase constructor for view. +// Initialize contents from resource. +// --------------------------------------------------------------------------- +// void CFsEmailSettingsListView::ConstructL() { FUNC_LOG; @@ -141,16 +147,17 @@ BaseConstructL( R_FS_EMAIL_SETTINGS_LIST_VIEW ); iAsyncCallback = new (ELeave) CAsyncCallBack( CActive::EPriorityStandard ); - iAsyncCallback->Set( TCallBack( DisplayCreateQuery, this ) ); - + iAsyncCallback->Set( TCallBack( DisplayCreateQuery, this ) ); } // ----------------------------------------------------------------------------- // CFsEmailSettingsListView::DisplayCreateQuery // ----------------------------------------------------------------------------- +// void CFsEmailSettingsListView::StartMailboxAsyncQueryL() { FUNC_LOG; + if ( iAsyncCallback ) { iAsyncCallback->CallBack(); @@ -159,12 +166,29 @@ // ----------------------------------------------------------------------------- +// CFsEmailSettingsListView::DisplayStylusPopUpMenu() +// Displays the pop-up menu. +// ----------------------------------------------------------------------------- +// +void CFsEmailSettingsListView::DisplayStylusPopUpMenu( const TPoint& aPosition ) + { + if ( iStylusPopUpMenu ) + { + iStylusPopUpMenu->SetPosition( aPosition ); + iStylusPopUpMenu->ShowMenu(); + } + } + + +// ----------------------------------------------------------------------------- // CFsEmailSettingsListView::DisplayCreateQuery // ----------------------------------------------------------------------------- +// TInt CFsEmailSettingsListView::DisplayCreateQuery( TAny* aViewPtr ) { FUNC_LOG; - CFsEmailSettingsListView* self = static_cast( aViewPtr ); + CFsEmailSettingsListView* self = + static_cast( aViewPtr ); TRAPD( err, self->DisplayCreateMailboxNoteIfNeededL() ); return err; } @@ -172,26 +196,30 @@ // ----------------------------------------------------------------------------- // CFsEmailSettingsListView::DisplayCreateQueryL // ----------------------------------------------------------------------------- +// void CFsEmailSettingsListView::DisplayCreateMailboxNoteIfNeededL() { FUNC_LOG; User::LeaveIfNull( iFsEmailSettingsList ); iFsEmailSettingsList->DisplayCreateMailboxNoteIfNeededL(); } - -/** - * @return The UID for this view - */ + +// ----------------------------------------------------------------------------- +// CFsEmailSettingsListView::Id() +// From CAknView. +// ----------------------------------------------------------------------------- +// TUid CFsEmailSettingsListView::Id() const { FUNC_LOG; return SettingsViewId; } -/** - * Handle a command for this view (override) - * @param aCommand command id to be handled - */ +// ----------------------------------------------------------------------------- +// CFsEmailSettingsListView::HandleCommandL() +// From CAknView. +// ----------------------------------------------------------------------------- +// void CFsEmailSettingsListView::HandleCommandL( TInt aCommand ) { FUNC_LOG; @@ -215,6 +243,7 @@ // navigate away from settings NavigateBackL(); } + break; } case EAknSoftkeyOpen: @@ -225,48 +254,70 @@ break; } case EFsEmailUiCmdSettingsAddAccount: + { iFsEmailSettingsList->AddAccountL(); break; + } case EFsEmailUiCmdSettingsRemoveAccount: + case EFsEmailUiCmdDeleteSelectedMailbox: // From the pop-up menu. + { iFsEmailSettingsList->RemoveAccountL(); - break; + iFsEmailSettingsList->ClearFocus(); + break; + } case EFsEmailUiCmdHelp: + { TFsEmailUiUtility::LaunchHelpL( KFSE_HLP_LAUNCHER_GRID ); break; + } case EFsEmailUiCmdExit: + { AppUi()->HandleCommandL( EEikCmdExit ); break; + } case EFsEmailUiCmdGoToTop: + { iFsEmailSettingsList->GoToTop(); break; + } case EFsEmailUiCmdGoToBottom: + { iFsEmailSettingsList->GoToBottom(); break; + } case EFsEmailUiCmdPageUp: + { iFsEmailSettingsList->PageUp(); break; + } case EFsEmailUiCmdPageDown: + { iFsEmailSettingsList->PageDown(); break; + } + case KErrCancel: + { + // The pop-up menu was cancelled. + iFsEmailSettingsList->ClearFocus(); + break; + } default: + { break; - } + } + } // switch ( aCommand ) } -/** - * Handles user actions during activation of the view, - * such as initializing the content. - */ -// Toolbar -/*void CFsEmailSettingsListView::DoActivateL( - const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage )*/ + +// ----------------------------------------------------------------------------- +// CFsEmailSettingsListView::ChildDoActivateL() +// From CFsEmailUiViewBase. +// ----------------------------------------------------------------------------- +// void CFsEmailSettingsListView::ChildDoActivateL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage ) -// Toolbar { FUNC_LOG; @@ -413,13 +464,26 @@ } // setup status pane title SetupStatusPaneL(); - + + if( !iStylusPopUpMenu ) + { + // Construct the long tap pop-up menu. + TPoint point( 0, 0 ); + iStylusPopUpMenu = CAknStylusPopUpMenu::NewL( this , point ); + TResourceReader reader; + iCoeEnv->CreateResourceReaderLC( reader, + R_STYLUS_POPUP_MENU_LAUNCHER_GRID_VIEW ); + iStylusPopUpMenu->ConstructFromResourceL( reader ); + CleanupStack::PopAndDestroy(); // reader + } + // Make a deferred call to show the "create mailbox" query if we opened the main settings list if ( aCustomMessageId.iUid == KMailSettingsOpenMainList || aCustomMessageId.iUid == KOpenMailSettingsFromGS ) { StartMailboxAsyncQueryL(); } + iAppUi.HideTitlePaneConnectionStatus(); } @@ -463,7 +527,7 @@ // --------------------------------------------------------------------------- // DynInitMenuPaneL -// From aknview +// From CAknView. // --------------------------------------------------------------------------- // void CFsEmailSettingsListView::DynInitMenuPaneL( @@ -502,11 +566,11 @@ CFSEmailUiShortcutBinding::EContextSettings ); } -/** - * SetupStatusPaneL - * - * - */ +// --------------------------------------------------------------------------- +// SetupStatusPaneL() +// +// --------------------------------------------------------------------------- +// void CFsEmailSettingsListView::SetupStatusPaneL() { FUNC_LOG; @@ -529,9 +593,11 @@ } -/** - * Sets application default title when leaving this view - */ +// --------------------------------------------------------------------------- +// CleanupStatusPaneL() +// Sets application default title when leaving this view +// --------------------------------------------------------------------------- +// void CFsEmailSettingsListView::CleanupStatusPaneL() { FUNC_LOG; @@ -539,9 +605,12 @@ } -/** - * Handle status pane size change for this view (override) - */ +// --------------------------------------------------------------------------- +// HandleStatusPaneSizeChange() +// From CAknView. +// Handle status pane size change for this view (override). +// --------------------------------------------------------------------------- +// void CFsEmailSettingsListView::HandleStatusPaneSizeChange() { FUNC_LOG; @@ -556,3 +625,4 @@ } +// End of file.