Re-removed inclusion for Korean Lunar calendar, unintentionally restored along with CalDav support.
/** 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: main UI Class also Acts as the observer for results**/#ifndef C_GENRALSRCHUI_H#define C_GENRALSRCHUI_H#include <e32cons.h>#include <eikenv.h>#include <s32mem.h>#include <searchsessionobservers.h>#include "srchuimanager.h"class CAknView;class CSrchUiMainView;class CCoeControl;class CSrchUiManager;class CSrchUiSearchView;class CSrchUiResFolder;class CSrchUiResFolderView;class MSrchUiFolder;struct TServiceInfo;/** * This class is the main UI Class which creates ui manager. And this is * also observer for the retrieved results * */class CSrchUiGeneral : public CBase, public MSearchQueryObserver, public MSearchResultRetrieveObserver, public MSrchUiResultHandler {public: /** * Symbian OS 2 phased constructor. * * @param aAppUi view app ui * @return A pointer to the created instance of CSrchUiGeneral. */ IMPORT_C static CSrchUiGeneral* NewL( CAknViewAppUi* aAppUi ); /** * Symbian OS 2 phased constructor. * * @param aAppUi view app ui * @param aReadStream stream from which to read * @return A pointer to the created instance of CSrchUiGeneral. */ IMPORT_C static CSrchUiGeneral* NewL( CAknViewAppUi* aAppUi, RDesReadStream& aReadStream ); /** * Symbian OS 2 phased constructor. * * @param aAppUi view app ui * @return A pointer to the created instance of CSrchUiGeneral. */ static CSrchUiGeneral* NewLC( CAknViewAppUi* aAppUi ); /** * Symbian OS 2 phased constructor. * * @param aAppUi view app ui * @param aReadStream stream from which to read * @return A pointer to the created instance of CSrchUiGeneral. */ static CSrchUiGeneral* NewLC( CAknViewAppUi* aAppUi, RDesReadStream& aReadStream ); /** * Destructor * */ ~CSrchUiGeneral(); void SearchPartiallyCompletedL( TUid aPluginId ); /** * Launches main view * */ void ConstructSearchMainViewL(); /** * Launches service specific main view * */ void ConstructServiceSpecificMainViewL( TUid aServiceId ); /** * Constructs tree structure of content classes and launches * result folder view * */ void ConstructResultFolderViewL( TUid /*aServiceUid*/ ); /** * Get the supported content classes by framework for the given service id * * @param aServiceId : The id of the service */ void GetSupportedContentClassesL( const TUid& aServiceId ); /** * Tests whether all content classes have been selected or not by the user * * @return ETrue/EFalse */ TBool AllContentClassesSelected() const; /** * Sets the flag to ETrue / EFalse * * @param aSelected : the flag to be set */ void SetAllContentClassesSelected( TBool aSelected ); /** * Get the supported content classes * * @return array of pointers to search content */ RPointerArray<CSearchContent>& GetContentTypes(); /** * Get the selected content types * */ RArray<TBool>& SelectedContentTypes(); /** * Checks whether the search application is launched from AIW Consumer * * @return ETrue if launched from AIW consumer else EFalse */ TBool AiwFlag(); /** * Triggers the search with Query string and the service uid * * @param aQueryString : query string * @param aServiceUid : selected service uid */ void HandleSelectionL( TDesC8& aQueryString, TUid aServiceUid ); /** * Get the result root folder * * @return MSrchUiFolder : pointer to root result folder */ MSrchUiFolder* SrchUiResRoot(); /** * Loads the result viewer plugin * * @param aSelectedFolderIdx selected folder index */ void LoadResultViewerL( TInt aSelectedFolderIdx ); /** * Launches the previous view * */ void ActivatePreviousViewL(); /** * Get the Query string * * @return : reference to the query string */ TDesC8& GetQueryString(); /** * Checks whether the search is ongoing * * @return : ETrue if search is ongoing else EFalse */ TBool IsSearchOngoing(); /** * Launches the main view * */ void GoToMainViewL(); /** * Symbian OS 2 phased constructor. * * @param aAppUi view app ui * @return A pointer to the created instance of CSrchUiGeneral. */ IMPORT_C void SetSearchStringL( const TDesC& aString ); /** * Symbian OS 2 phased constructor. * * @param aAppUi view app ui * @return A pointer to the created instance of CSrchUiGeneral. */ IMPORT_C TDesC8& SearchStringL(); /** * Sets the last visited view id * * @param aViewId : the view id of the previous view */ void SetLastLaunchViewId( const TUid aViewId ); //From base class MSearchQueryObserver /** * From MSearchResultRetrieveObserver * * Called when framework notifies about the search progress. The user of * CSearchClientSession can define the time how often this will be called * when requesting for search. * * @param aResultIdArray The array of results found between this call and * last update. Ownership of the items transferres. * @param aCurrentProgressValue The current progress of the search process. * @param aTotalProgressValue Final progress value of the search process. */ void UpdateSearchProgressL( RPointerArray<CSearchLightResult>& aResultArray, TInt aCurrentProgressValue, TInt aTotalProgressValue ); /** * From MSearchResultRetrieveObserver * * Called when the search has been completed. * * @param aResult If the process was completed succesfully KErrNone, * otherwise an error code. * @param aNumberOfDocuments The number of found documents in the search. */ void SearchCompletedL( TInt aSrchUiRes, TInt aNumberOfFoundDocuments ); //From base class MSearchResultRetrieveObserver /** * From MSearchResultRetrieveObserver * * Called when operation is complete. * * @param aResultArray The results returned by the operation. * Ownership of the items is transferred to the caller. */ void ResultsRetrieveCompleteL( RPointerArray<CSearchResult>& aResultArray ); //From MSrchUiResultHandler /** * From MSrchUiResultHandler * * Launches the application for given document id * * @param aResultId Document Id for which is to be launched */ void LaunchApplicationL( const CSearchDocumentId& aResultId ); /** * From MSrchUiResultHandler * * Launches the previous view */ void LaunchPreviousViewL(); /** * From MSrchUiResultHandler * Starts the new search operation */ void StartNewSearchL(); /** * Cancels the search operation */ TInt CancelSearch(); /** * Launches the search settings view. * */ void LaunchUiSettingsViewL(); /** * Returns ETrue if the search is in progress * */ TBool IsSearching() ; /** * Return the launch file info * */ HBufC8* GetLaunchInfoL( const CSearchDocumentId& aDocumentID );private: /** * Starts the new search operation * * C++ constructor - not exported * implicitly called from NewLC() * */ CSrchUiGeneral( ); /** * 2nd phase construction, called by NewLC() * */ void ConstructL( CAknViewAppUi* aAppUi ) ; // second-phase constructor /** * 2nd phase construction, called by NewLC() * */ void ConstructL( CAknViewAppUi* aAppUi, RDesReadStream& aReadStream ); /** * Break the interested content classes into folders in case of context-sensitive * * * @param aUid The uid of the interested contest class * */ void FindAndReplaceTheClassWithFoldersL( const TUid aUid, const TInt aFrom ); /** * Reads the data from a Stream * * @param The Write Data Stream * @return None */ void InternalizeL( RDesReadStream& aStream ); /** * Launches the view of the specified view id * * @param aNewViewId The id of the view to be launched */ void LaunchViewL( TUid aNewViewId ); /** * Loads the result viewer plugins */ void LoadUiResultViewerL(); /** * Updates the Result View with the recently received heavy results * * @param aSearchFinished Indicates if searching is complete/not */ void UpdateResultViewL(TBool aSearchFinished, TBool aRetrieveResultCompletes ); /** * Launches the result viewer plugins of the selected content class * * @param aSelectedFolderIdx The index of the selected content class * @param aSearchFinished Indicates if searching is complete/not */ void LaunchResultViewL( TInt aSelectedFolderIdx, TBool aSearchFinished ); /** * Intitalizes result viewer plugin * * @param aImpUid Implementation uid */ CSrchUiResultViewerPlugin* InitializeUiResPlugInsL( TUid aImpUid ); /** * Construct the tree structure of the selected content classes * * @param aSelectedContentTypes Selected Content classes */ void FormResultFoldersL( RArray <TBool> aSelectedContentTypes ); /** * Add the light results to a folder structure * * @param aResultArray RPointer array of light results */ void AddResultsToFolderL( RPointerArray<CSearchLightResult> aResultArray ); /** * Add the heavy results to a folder structure * * @param aResultArray RPointer array of heavy results */ void AddHeavyResultsToFolderL( RPointerArray<CSearchResult> aResultArray ); /** * Finds the class result folder * * @param aContentid content id * @param aFolderId folder id * @return CSrchUiResFolder result folder */ CSrchUiResFolder* FindClass( const TUid& aContentid, const TUid& aFolderId ); /** * Checks if a class is selected * * @param aFolderId folder id * @param aClassId class id to which class belongs */ TBool IsClassSelected( const TUid aFolderId, const TUid aClassId ); /** * Constructs the result folder * * @param aContent content to be added * @param aParent where to be added */ CSrchUiResFolder* ConstructResultFolderL( const CSearchContent *aContent, CSrchUiResFolder* aParent ); /** * Finds the class result folder * * @param aClass class result folder * @param aContentid content id * @return CSrchUiResFolder result folder */ CSrchUiResFolder* FindFolder( CSrchUiResFolder* aClass, const TUid& aContentid ); /*** * Clears gets heavy results corresponding to * light result * */ void GetResultsFromManagerL() ;private: //data /** * Pointer to the search main view * * Not Own */ CEikonEnv* iSrchEikonEnv; /** * Pointer to the search main view * * Own */ CSrchUiMainView* iSearchMainView; /** * result folder constructed * * Own */ CSrchUiResFolder* iSrchUiResRootFolder; /** * Pointer to the search service view * * Own */ CSrchUiSearchView* iSearchView; /** * Pointer to the result folder view * * Own */ CSrchUiResFolderView* iResultFolderView; /** * Array of resource file ofsets */ RArray<TInt> iResFileOffset; /** * Pointer to searchui manager * * Own */ CSrchUiManager* iManager; /** * Array of selected content classes */ RArray <TBool> iSelectedContentTypes; /** * ETrue if all content classes are selected. Else false */ TBool iAllContentClassesSelected; /** * Array of service plugins info */ RPointerArray<TServiceInfo> iServiceInfoArray; /** * Array of CSearchContent of supported classes */ RPointerArray<CSearchContent> iSupportedContentClasses; /** * The index of the folder selected in the result folder view */ TInt iSelectedFolderIdx; /** * Flag to indicate whether the search is ongoing or not */ TBool iSearchOn; /** * Pointer to CAknViewAppUi */ CAknViewAppUi* iAppUi; /** * Number of results found */ TInt iNumOfResultsFound; /** * Flag to check whether the search application * is launched from AIW Consumer */ TBool iAiwFlag; /** * Flag to check whether the search application is launched * as embedded or stand alone */ TInt32 iLaunchType; /** * String to be searched * * Own */ HBufC8* iSearchString; /** * Array of context sensitive uids */ RArray<TUid> iContextUids; /** * Number of content classes selected * in the service specific main view */ TInt iSelectedContentCount; /** * Checks if Result viewer is launched */ TBool iIsResultViewerLaunched; /** * Checks if heavy results are asked */ TBool iGetResAgain; /** * Checks if heavy results are retrieved */ TBool iResRetriveComplete; /** * Flag to store if new search is requested by result viewer plugin */ TBool iIsNewSearch; /** * Array of views available */ RArray<TUid> iViewIds; /** * Array of result viewer plugins available */ RPointerArray<CSrchUiResultViewerPlugin> iResultViewers; /** * Uid of the last launched view */ TUid iLastLaunchViewId; /** * Keyword to be searched */ HBufC8* iQueryString; /** * Light result count */ TInt iLightResultCount; };#endif //C_GENRALSRCHUI_H