diff -r 000000000000 -r 6a9f87576119 filemanager/App/src/Cfilemanagersearchresultsview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/App/src/Cfilemanagersearchresultsview.cpp Mon Jan 18 20:09:41 2010 +0200 @@ -0,0 +1,239 @@ +/* +* Copyright (c) 2006-2007 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: View for search results +* +*/ + + + +// INCLUDE FILES +#include +#include +#include +#include +#include +#include +#include +#include "Cfilemanagersearchresultsview.h" +#include "CFileManagerAppUi.h" +#include "CFileManagerFileListContainer.h" +#include "CFileManagerAppUi.h" +#include "CFileManagerDocument.h" +#include "FileManager.hrh" + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::CFileManagerSearchResultsView +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CFileManagerSearchResultsView::CFileManagerSearchResultsView() + { + } + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CFileManagerSearchResultsView::ConstructL() + { + CFileManagerViewBase::ConstructL( R_FILEMANAGER_FOLDERS_VIEW ); + + CEikStatusPane* sp = StatusPane(); + iNaviPane = static_cast< CAknNavigationControlContainer* > + ( sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) ); + } + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::NewLC +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CFileManagerSearchResultsView* CFileManagerSearchResultsView::NewLC() + { + CFileManagerSearchResultsView* self = + new( ELeave ) CFileManagerSearchResultsView; + + CleanupStack::PushL( self ); + self->ConstructL(); + + return self; + } + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::~CFileManagerSearchResultsView +// Destructor +// ----------------------------------------------------------------------------- +// +CFileManagerSearchResultsView::~CFileManagerSearchResultsView() + { + } + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::DirectoryChangedL +// +// ----------------------------------------------------------------------------- +// +void CFileManagerSearchResultsView::DirectoryChangedL() + { + FUNC_LOG + + RefreshTitleL(); + + if ( iContainer ) + { + iContainer->RefreshListL( iIndex ); + UpdateCbaL(); + } + } +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::Id +// +// ----------------------------------------------------------------------------- +// +TUid CFileManagerSearchResultsView::Id() const + { + return CFileManagerAppUi::KFileManagerSearchResultsViewId; + } + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::CreateContainerL +// +// ----------------------------------------------------------------------------- +// +CFileManagerContainerBase* CFileManagerSearchResultsView::CreateContainerL() + { + return CFileManagerFileListContainer::NewL( + ClientRect(), + iIndex, + CFileManagerFileListContainer::EListFolder, + R_QTN_FMGR_SEARCH_NOT_FOUND, + KFMGR_HLP_SEARCH_RESULTS ); + } + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::DoActivateL +// +// ----------------------------------------------------------------------------- +// +void CFileManagerSearchResultsView::DoActivateL( const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ) + { + FUNC_LOG + + CFileManagerViewBase::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage ); + + iEngine.SetState( CFileManagerEngine::ESearch ); + iNaviPane->PushDefaultL( ETrue ); + iNaviDecorator = iNaviPane->Top(); + iEngine.SetObserver( this ); + + if ( !aCustomMessage.Compare( KFileManagerSearchViewRefreshMsg ) ) + { + // Start new search only if explicitly requested + iIndex = 0; + RefreshTitleL(); + iEngine.RefreshDirectory(); + } + else + { + // Update list without new search + DirectoryChangedL(); + } + } + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::DoDeactivate +// +// ----------------------------------------------------------------------------- +// +void CFileManagerSearchResultsView::DoDeactivate() + { + FUNC_LOG + + CFileManagerViewBase::DoDeactivate(); + + iNaviPane->Pop( iNaviDecorator ); + } + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::HandleCommandL +// +// ----------------------------------------------------------------------------- +// +void CFileManagerSearchResultsView::HandleCommandL( TInt aCommand ) + { + switch( aCommand ) + { + case EFileManagerOpen: + { + StoreIndex(); + CFileManagerViewBase::CmdOpenL(); + break; + } + case EAknSoftkeyBack: + { + CmdBackL(); + break; + } + default: + { + CFileManagerViewBase::HandleCommandL( aCommand ); + break; + } + } + } + +// ------------------------------------------------------------------------------ +// CFileManagerSearchResultsView::UpdateCbaL +// +// ------------------------------------------------------------------------------ +// +void CFileManagerSearchResultsView::UpdateCbaL() + { + UpdateCommonCbaL(); + } + +// ---------------------------------------------------------------------------- +// CFileManagerSearchResultsView::CmdBackL +// ---------------------------------------------------------------------------- +// +void CFileManagerSearchResultsView::CmdBackL() + { + if ( iActiveProcess != ENoProcess ) + { + return; // Ignore to avoid container mess up + } + iIndex = 0; + static_cast< CFileManagerAppUi* >( AppUi() )->CloseSearchResultsViewL(); + } + +// ----------------------------------------------------------------------------- +// CFileManagerSearchResultsView::RefreshTitleL +// +// ----------------------------------------------------------------------------- +// +void CFileManagerSearchResultsView::RefreshTitleL() + { + static_cast< CFileManagerAppUi* >( AppUi() )->SetTitleL( + iEngine.SearchString() ); + iNaviPane->DrawDeferred(); + } + +// End of File