browserui/browser/FeedsSrc/FeedsFeedView.cpp
branchRCL_3
changeset 47 6385c4c93049
parent 46 4baee4f15982
child 48 8e6fa1719340
--- a/browserui/browser/FeedsSrc/FeedsFeedView.cpp	Thu Aug 19 09:57:56 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,355 +0,0 @@
-/*
-* Copyright (c) 2005-2008 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 "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:  A view to browse a given feed.
-*
-*/
-
-
-#include <aknviewappui.h>
-#include <aknutils.h>
-#include <AknToolbar.h>
-#include <brctlinterface.h>
-#include <eikbtgpc.h>
-#include <eikmenup.h>
-#include <hlplch.h>
-
-#include "BrowserAppUi.h"
-#include "CommonConstants.h"
-#include "Browser.hrh"
-#include <BrowserNG.rsg>
-#include "BrowserUtil.h"
-#include <feedattributes.h>
-#include <folderattributes.h>
-#include "FeedsFeedContainer.h"
-#include "FeedsFeedView.h"
-
-#include "Logger.h"
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::NewL
-//
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFeedsFeedView* CFeedsFeedView::NewL( MApiProvider& aApiProvider, TRect& aRect )
-
-	{
-    CFeedsFeedView* self = new (ELeave) CFeedsFeedView(aApiProvider);
-    
-    CleanupStack::PushL(self);
-    self->ConstructL(aRect);
-    CleanupStack::Pop();
-
-    return self;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::CFeedsFeedView
-//
-// C++ default constructor.
-// -----------------------------------------------------------------------------
-//
-CFeedsFeedView::CFeedsFeedView(MApiProvider& aApiProvider)
-: CBrowserViewBase( aApiProvider ),iPageScalerEnabled(EFalse),iPenEnabled(EFalse)
-	{
-    iPenEnabled = AknLayoutUtils::PenEnabled(); 
-	}
-
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::ConstructL
-//
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CFeedsFeedView::ConstructL(TRect& aRect)
-    {
-    // this is here in case content view wasn't activated yet on browser startup.
-    iApiProvider.SetViewToBeActivatedIfNeededL( KUidBrowserContentViewId );
-            
-    BaseConstructL(R_FEEDS_FEED_VIEW);
-
-	iContainer = CFeedsFeedContainer::NewL( this, ApiProvider() );
-	iContainer->SetRect( aRect );
-    iOrigRect.iTl = aRect.iTl;
-    iOrigRect.iBr = aRect.iBr;
-    iContainer->MakeVisible(EFalse);
-    
-    if(iPenEnabled)
-        {
-        Toolbar()->SetToolbarObserver(this);;        
-        }    
-    }
-
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::~CFeedsFeedView
-//
-// Deconstructor.
-// -----------------------------------------------------------------------------
-//
-CFeedsFeedView::~CFeedsFeedView()
-    {
-    DoDeactivate();
-
-    delete iContainer;
-    }
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::Id
-//
-// Returns the id of the view.
-// -----------------------------------------------------------------------------
-//
-TUid CFeedsFeedView::Id() const
-    {
-    return KUidBrowserFeedsFeedViewId;
-    }
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::HandleCommandL
-//
-// Processes commands.
-// -----------------------------------------------------------------------------
-//
-void CFeedsFeedView::HandleCommandL(TInt aCommand)
-    {   
-    TBool  handled = EFalse;
-    
-    // Handle softkeys and other Symbian commands first.
-    switch (aCommand)
-        {
-		case EAknSoftkeyBack:
-			iApiProvider.FeedsClientUtilities().ShowTopicViewLocalL(iContainer->CurrentItem());
-            handled = ETrue;
-            break;
-            
-        case EAknSoftkeyNext:
-            iContainer->ShowNextItemL();
-            handled = ETrue;
-            break;
-
-#ifdef __SERIES60_HELP
-        case EAknCmdHelp:
-            {
-            iApiProvider.SetLastActiveViewId(Id());
-            HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(), 
-                    AppUi()->AppHelpContextL());
-            handled = ETrue;
-            break;
-            }
-#endif //__SERIES60_HELP 
-        }
-        
-    if (handled)
-        {
-        return;
-        }
-     
-    switch (aCommand)
-        {
-        case EFeedsBack:
-		    iApiProvider.FeedsClientUtilities().ShowTopicViewLocalL(iContainer->CurrentItem());
-            break;
-            
-        case EFeedsShowNextItem:
-            iContainer->ShowNextItemL();
-            break;
-
-        case EFeedsShowPrevItem:
-            iContainer->ShowPrevItemL();
-            break;
-
-		case EFeedsSeeFullStory:
-            iContainer->iBrowserControl->HandleCommandL((TBrCtlDefs::ECommandIdBase + TBrCtlDefs::ECommandOpen));
-            break;
-
-        default:
-            iApiProvider.FeedsClientUtilities().HandleCommandL(Id(),aCommand);
-            break;
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::DoActivateL
-//
-// Called when the view is activated.
-// -----------------------------------------------------------------------------
-//
-void CFeedsFeedView::DoActivateL(const TVwsViewId& /*aPrevViewId*/, 
-        TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/)
-    {
-    // fix bug RFON-7FJS2Z: need to activate status pane going back from full story page to feeds view
-   	StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL );
-  	StatusPane()->MakeVisible( ETrue );
-    //Take Button group pointer
-    CEikButtonGroupContainer* pButtonGroupContainer = CEikButtonGroupContainer::Current();
-    if (!iContainerOnStack)
-        {
-        AppUi()->AddToViewStackL(*this, iContainer);        
-        //Make button group invisible in order to let container have correct Rect.
-        //Patch is based on comments received from AVKON
-        if(pButtonGroupContainer) pButtonGroupContainer->MakeVisible(EFalse);
-        iContainer->SetRect(iOrigRect);
-        if(iContainer->iBrowserControl->BrowserSettingL(TBrCtlDefs::ESettingsPageOverview))
-            {
-            TRAP_IGNORE(iContainer->iBrowserControl->SetBrowserSettingL(TBrCtlDefs::ESettingsPageOverview, EFalse));
-            iPageScalerEnabled = ETrue;
-            }
-        TRAP_IGNORE(iContainer->iBrowserControl->HandleCommandL( 
-                (TInt)TBrCtlDefs::ECommandIdBase + (TInt)TBrCtlDefs::ECommandGainFocus));
-        
-        iContainer->MakeVisible(ETrue);        
-        //Again make Button group visible
-        if(pButtonGroupContainer) pButtonGroupContainer->MakeVisible(ETrue);
-        iContainerOnStack = ETrue;
-        // resize screen after calling SetRect.  This way looks better
-        iContainer->HandleResourceChange(KEikDynamicLayoutVariantSwitch);
-        }
-
-    // Set the current feed.
-    iContainer->SetCurrentFeedL(*(iApiProvider.FeedsClientUtilities().CurrentFeed()), iInitialItem);
-    
-    iApiProvider.SetLastActiveViewId(Id());
-    UpdateToolbarButtonsState();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::DoDeactivate
-//
-// Called when the view is deactivated.
-// -----------------------------------------------------------------------------
-//
-void CFeedsFeedView::DoDeactivate()
-    {
-    if (iContainerOnStack)
-        {
-        iContainer->ClearNavigationPane();        
-        
-        if(iPageScalerEnabled)
-            {
-            TRAP_IGNORE(iContainer->iBrowserControl->SetBrowserSettingL(TBrCtlDefs::ESettingsPageOverview, ETrue));
-            iPageScalerEnabled = EFalse;
-            }
-        TRAP_IGNORE(iContainer->iBrowserControl->HandleCommandL( 
-                (TInt)TBrCtlDefs::ECommandIdBase + (TInt)TBrCtlDefs::ECommandLoseFocus));
-        
-        AppUi()->RemoveFromViewStack(*this, iContainer);
-        iContainer->MakeVisible(EFalse);
-        
-        iInitialItem = iContainer->CurrentItem();
-        iContainerOnStack = EFalse;
-        
-        // when exit from feeds view, viewMgr might be deleted already
-        if ( !ApiProvider().ExitInProgress() )
-            {
-            TRAP_IGNORE(iApiProvider.FeedsClientUtilities().ItemStatusWriteToServerL()); 
-            }
-        }
-	}
-
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::DynInitMenuPaneL
-//
-// Disables unrelated menu options.
-// -----------------------------------------------------------------------------
-//
-void CFeedsFeedView::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
-    {
-    __ASSERT_DEBUG( (aMenuPane != NULL), Util::Panic( Util::EUninitializedData ));
-    
-    // Handle the main menu.
-    if (aResourceId == R_FEEDS_FEED_VIEW_MENU)
-        {
-        // Back to Page (if page loaded)
-        if ( iApiProvider.IsPageLoaded() )
-            {
-            iApiProvider.FeedsClientUtilities().AddItemL( *aMenuPane, EWmlCmdBackToPage, R_BROWSER_MENU_ITEM_BACK_TO_PAGE );
-            }
-        }
-        
-    iApiProvider.FeedsClientUtilities().DynInitMenuPaneL(aResourceId, aMenuPane );
-    }
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::SetInitialItem
-//
-// Sets the initial item once the view is activated.
-// -----------------------------------------------------------------------------
-//
-void CFeedsFeedView::SetInitialItem(TInt aItemIndex)
-    {
-    iInitialItem = aItemIndex;
-    }
-
-// -----------------------------------------------------------------------------
-// CFeedsTopicView::UpdateToolbarButtonsState
-//
-// Updates the state of the toolbar buttons depending on the situation
-// -----------------------------------------------------------------------------
-//
-
-void CFeedsFeedView::UpdateToolbarButtonsState()
-    {
-    if ( iContainer->ItemCount()  > 1 )
-        {
-        Toolbar()->SetItemDimmed(EFeedsShowPrevItem, EFalse, ETrue);
-        Toolbar()->SetItemDimmed(EFeedsShowNextItem, EFalse, ETrue);
-        }
-    else
-        {
-        Toolbar()->SetItemDimmed(EFeedsShowPrevItem, ETrue, ETrue);
-        Toolbar()->SetItemDimmed(EFeedsShowNextItem, ETrue, ETrue);
-        }
-    Toolbar()->SetItemDimmed(EFeedsSeeFullStory, EFalse, ETrue);
-    }
-    
-// ---------------------------------------------------------------------------
-// CFeedsFeedView::CommandSetResourceIdL
-// ---------------------------------------------------------------------------
-TInt CFeedsFeedView::CommandSetResourceIdL()
-    {
-    // It is never called, but this function have to be implemented
-    return KWmlEmptyResourceId;
-    }
-    
-// ---------------------------------------------------------
-// CFeedsFeedView::HandleClientRectChange
-// ---------------------------------------------------------
-//
-void CFeedsFeedView::HandleClientRectChange()
-    {
-    if( iContainer )
-        {
-        iContainer->MakeVisible(EFalse);
-        iContainer->SetRect(ClientRect());
-        iContainer->MakeVisible(ETrue);        
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CFeedsFeedView::DisconnectL
-// -----------------------------------------------------------------------------
-//
-void CFeedsFeedView::DisconnectL()
-    {
-    if( iContainer )
-        {
-        iContainer->iBrowserControl->HandleCommandL( TBrCtlDefs::ECommandDisconnect + TBrCtlDefs::ECommandIdBase );
-        }
-    }