filemanager/App/src/Cfilemanagersearchresultsview.cpp
changeset 0 6a9f87576119
child 20 efe289f793e7
--- /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 <CFileManagerEngine.h>
+#include <FileManager.rsg>
+#include <aknlists.h>
+#include <aknnavi.h>
+#include <akntitle.h> 
+#include <csxhelp/fmgr.hlp.hrh>
+#include <FileManagerDebug.h>
+#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