diff -r 83e6409f1e6e -r 4cd5f847237f profilesapplication/Profiles/ProfileApp/SettingsViewInc/CProfileSettingsContainer.h --- a/profilesapplication/Profiles/ProfileApp/SettingsViewInc/CProfileSettingsContainer.h Tue Feb 02 00:10:48 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,418 +0,0 @@ -/* -* Copyright (c) 2002 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: Container class of settings view. -* -*/ - - -#ifndef CPROFILESETTINGSCONTAINER_H -#define CPROFILESETTINGSCONTAINER_H - -// INCLUDES -#include // CAknSettingItemList -#include -#include // RConeResourceLoader -#include // MAknTabObserver -#include -#include "MProfileExternalSettingsObserver.h" -#include "MProfileExternalSettingsHandler.h" -#include -#include - -// FORWARD DECLARATIONS -class MProfileViewHandler; -class CAknTitlePane; -class CProfileEngineHandler; -class CProfileIndexHandler; -class CProfileTabHandler; -class MProfileExtended; -class CProfileStruct; -class CAknKeySoundSystem; -class CProfileChangeNotifyHandler; -class MProfilesLocalFeatures; -class CProfileSettingsView; -class CAknView; -class CRepository; -class CCenRepNotifyHandler; -class CProfileNaviPaneContainer; - -// CLASS DECLARATION -/** -* Container class of settings view. -* Inherited from... -* MSSSettingsObserver -* to receive notifications of changes in Alternate Line Service setting. -* MAknTabObserver -* to receive notifications if tabs are changed. -* MProfileChangeObserver -* to receive notification when the active profile changes. -* -* @lib ProfileSettingsView.lib -* @since 1.2 -*/ -class CProfileSettingsContainer : public CAknSettingItemList, - public MSSSettingsObserver, - public MAknTabObserver, - public MProfileChangeObserver, - public MProfileExternalSettingsObserver, - public MCenRepNotifyHandlerCallback - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * Note, this constructor has been deprecated and should not be used. - * @return always NULL. - */ - IMPORT_C static CProfileSettingsContainer* NewL( - CAknView& aAknView, - CProfileEngineHandler& aEngineHandler, - CProfileIndexHandler* aIndexHandler, - CProfileTabHandler* aTabHandler, - CAknTitlePane* aTitlePane ); - - /** - * Two-phased constructor. - * @param aAknView Parent view to get ClientRect and set MopParent. - * @param aEngineHandler Engine handler to access Profile Engine. - * @param aExternalSettingsHandler handler class for those settings that - * are saved outside of Profiles. - * @param aIndexHandler Index handler for supporting several profiles - * in view functionality. Can be NULL. - * @param aTabHandler Tab handler for supporting tab functionality - * in Settings view. Can be NULL. - * @param aTitlePane Title pane access for setting title pane text. - * Can be NULL. - */ - IMPORT_C static CProfileSettingsContainer* NewL( - MProfileViewHandler& aProfileViewHandler, - CProfileEngineHandler& aEngineHandler, - MProfileExternalSettingsHandler& aExternalSettingsHandler, - CProfileIndexHandler* aIndexHandler, - CProfileTabHandler* aTabHandler, - CAknTitlePane* aTitlePane ); - - /** - * Two-phased constructor. - * @param aAknView Parent view to get ClientRect and set MopParent. - * @param aEngineHandler Engine handler to access Profile Engine. - * @param aIndexHandler Index handler for supporting several profiles - * in view functionality. Can be NULL. - * @param aTabHandler Tab handler for supporting tab functionality - * in Settings view. Can be NULL. - * @param aTitlePane Title pane access for setting title pane text. - * Can be NULL. - * @param aResourceId the id of the setting item list resource. - */ - IMPORT_C static CProfileSettingsContainer* NewL( - MProfileViewHandler& aProfileViewHandler, - CProfileEngineHandler& aEngineHandler, - MProfileExternalSettingsHandler& aExternalSettingsHandler, - CProfileIndexHandler* aIndexHandler, - CProfileTabHandler* aTabHandler, - CAknTitlePane* aTitlePane, - TInt aResourceId ); - - /** - * Destructor. - */ - ~CProfileSettingsContainer(); - - public: // New functions - - /** - * Tells if information of a setting can be changed. - * If EFalse is returned, EditItemL for the setting item in question - * should not be called and "Change" should be removed from the Options menu. - * @param aSettingItemId The setting item ID. - * @return Returns if information of a setting can be changed. - */ - IMPORT_C TBool AllowedToChange( TInt aSettingItemId ) const; - - /** - * Runs CheckFileExistenceL (by calling DoFileCheckL) - * @param TAny* aObj CProfileSettingContainer pointer - * @return 1 - */ - static TInt StartFileCheckL( TAny* aObj ); - - public: // Functions from base classes - - /** - * From CAknSettingItemList. - */ - IMPORT_C void EditItemL( TInt aIndex, TBool aCalledFromMenu ); - - public: // from MCentRepNotifyHandlerCallback - /** - * @see MCentRepNotifyHandlerCallback. - * @param aId Id of the key that has changed. - * @param aNewValue The new value of the key. - */ - void HandleNotifyInt( - TUint32 aId, TInt aNewValue ); - - protected: // New functions - - /** - * Frees resources allocated for profile data. - * Remember to maintain class state before calling this method! - */ - void ReleaseProfile(); - - /** - * Reads profile data from Profile Engine. - */ - void ReadProfileL(); - - /** - * Hides all setting items that have been set hidden for current profile - * ands sets visible all that aren't. - */ - void SetHiddenFlagsL(); - - /** - * Updates all setting items. - * Called when the changed settings must be updated to the UI. - * @param aReadProfileSettings if this is ETrue, the profile settings are - * read from Profiles Engine. - */ - void UpdateSettingsL( TBool aReadProfileSettings = ETrue ); - - /** - * Creates a setting item for FileListDialog. - * @param aFileName Filename. - * @param aIdentifier Setting item identifier. - * @return Returns the created setting item object. - */ - CAknSettingItem* CreateFileListSettingItemL( - TDes& aFileName, TInt aIdentifier ); - - /** - * Returns the index of a setting item in setting item array. - * @param aId Setting item identifier. - * @return Returns the index of a setting item if found, otherwise - * KErrNotFound. - */ - TInt IndexForId( TInt aId ) const; - - /** - * Sets one setting item hidden. - * @param aId Identifier of the setting item. - * @param aArray Pointer to setting item array. - * @param aHidden Boolean hidden value. - */ - void SetItemHidden( TInt aId, CAknSettingItemArray* aArray, TBool aHidden ); - - /** - * Sets title pane text. - * @param aTitle Title pane text. - * If descriptor has zero length, the application name is used. - */ - void SetTitlePaneTextL( const TDesC& aTitle ); - - /** - * Updates names of profiles in tabs and/or title pane. - */ - void UpdateProfileNamesL(); - - /* - * Launches confirmation dialog - * @param aTitleText Dialog title text - */ - void LaunchDialogL( const TDesC& aTitleText ); - - /* - * Chechks that used tones assigned for settings can be found. - * If tone is not found, user is informed by confirmation dialog - * and tone is replaced with default tone. - */ - void CheckFileExistenceL(); - - /* - * Checks whether settingitem is hidden - * @param aId Identifier of the setting item. - * @param aArray Pointer to setting item array. - * @return Returns ETrue if item is hidden. - */ - TBool IsItemHidden( TInt aId, CAknSettingItemArray* aArray ) const; - - /** - * Runs CheckFileExistenceL - * @param None - * @return None - */ - void DoFileCheckL(); - - protected: // Functions from base classes - - /** - * From CAknSettingItemList - */ - CAknSettingItem* CreateSettingItemL( TInt aIdentifier ); - - /** - * From CCoeControl - */ - void SizeChanged(); - - /** - * From CCoeControl - */ - void GetHelpContext( TCoeHelpContext& aContext ) const; - - /** - * From CCoeControl - */ - void HandleResourceChange(TInt aType); - - /** - * From MEikListBoxObserver - */ - void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType ); - - /** - * From MSSSettingsObserver - */ - void PhoneSettingChanged( - TSSSettingsSetting aSetting, - TInt aNewValue ); - - /** - * From MAknTabObserver - */ - void TabChangedL( TInt aIndex ); - - /** - * From MProfileChangeObserver - */ - void HandleActiveProfileEventL( - TProfileEvent aProfileEvent, TInt aProfileId ); - - /** - * From MProfileExternalSettingsObserver - */ - void HandleExternalSettingsChangedL(); - - protected: - - /** - * C++ constructor. - */ - CProfileSettingsContainer( - MProfileViewHandler& aProfileViewHandler, - CProfileEngineHandler& aEngineHandler, - MProfileExternalSettingsHandler& aExternalSettingsHandler, - CProfileIndexHandler* aIndexHandler, - CProfileTabHandler* aTabHandler, - CAknTitlePane* aTitlePane ); - - /** - * Symbian 2nd phase constructor. - * @param aRect View rect. - * @param aResourceId the id of the setting item list resource. - */ - void ConstructL( const TRect& aRect, - TInt aResourceId ); - - public: // New functions - - /** - * Is a setting item being edited? - * @return ETrue if a setting is being edited, EFalse otherwise. - */ - IMPORT_C TBool ItemEdited() const; - - private: - TBool PowerSaveMode(); - TBool PowerSaveModeL(); - TBool PowerSaveMode( TInt aSettingId ); - - private: // Data - - // For reading ALS setting and - // for receiving change notifications. - RSSSettings iSSSettings; - - // Own: CR session for KProfilesLVFlags (KProEngFeatureIdTTSRingingTone) - CRepository* iTTSSession; - - /// Own: CR session for KProEngDefaultRingingTone - CRepository* iSession; - - // Resource loader. - RConeResourceLoader iResourceLoader; - - // View handler to get ClientRect and set MopParent. - MProfileViewHandler& iProfileViewHandler; - - // Profile Engine handler. - CProfileEngineHandler& iEngineHandler; - - // Ref: Handler for settings that are saved outside of Profiles: - MProfileExternalSettingsHandler& iExternalSettingsHandler; - - // Ref: Index handler. - CProfileIndexHandler* iIndexHandler; - - // Ref: Tab handler. - CProfileTabHandler* iTabHandler; - - // Ref: Title pane access. - CAknTitlePane* iTitlePane; - - // Own: One profile data - MProfileExtended* iProfile; - - // Own: One profile data. - CProfileStruct* iCopyProfile; - - // Alternate Line Service support. - TBool iAlternateLineService; - - // Own: Avkon key sounds - CAknKeySoundSystem* iKeySounds; - - // Own: Profile change notify handler. - CProfileChangeNotifyHandler* iNotifier; - - // ETrue if an item is currently being edited. - TBool iItemEdited; - - // Not own: locally variated features of Profiles: - MProfilesLocalFeatures* iLocalFeatures; - - /// Own: fileserver session - RFs* iFs; - - /// Default tone - TFileName* iDefaultTone; - - // VoIP supported - TBool iVoIPStatus; - - // A CR and notifier for dynamic VoIP - CRepository* iVoIPVariation; - CCenRepNotifyHandler* iVoIPVariationNotifier; - - /// Timer to run CheckFileExistenceL - CPeriodic* iPeriodic; - - // Navi Pane Container - CProfileNaviPaneContainer* iNaviPaneContainer; - }; - -#endif // CPROFILESETTINGSCONTAINER_H - -// End of File