diff -r 2580314736af -r 2669f8761a99 presencesettingsui/inc/psuigspluginmodel.h --- a/presencesettingsui/inc/psuigspluginmodel.h Thu Aug 19 10:19:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,390 +0,0 @@ -/* -* Copyright (c) 2006-2010 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: Presence settings UI model header. -* -*/ - - - - -#ifndef PSUIGSPLUGINMODEL_H -#define PSUIGSPLUGINMODEL_H - -// INCLUDES -#include -#include -#include -#include -#include "psuigsplugin.hrh" - -// FORWARD DECLARATIONS - -// CLASS DECLARATION -class RPresenceSettingsArray; -class CSIPManagedProfileRegistry; -class CSIPManagedProfile; - -// Constants -_LIT( KPSUIGSPluginPanicCategory, "PSUIGSPlugin" ); - -/** -* Presence settings UI model -* -* @lib PSUIGSPlugin.lib -* @since Series60_3.2 -*/ -class CPSUIGSPluginModel : - public CBase, - public MDesCArray, - public MSIPProfileRegistryObserver - { - - public: // Constructors and destructor - - /** - * Symbian OS two-phased constructor - */ - static CPSUIGSPluginModel* NewL(); - - /** - * Destructor. - */ - ~CPSUIGSPluginModel(); - - public: // New - - // - // - // Presence settings related - - /** - * Retrieves current presence settings from system - */ - void RetrieveSettingsL(); - - /** - * Stores current presence settings to system - */ - void SaveSettingsL(); - - /** - * Checks are the compulsory fields filled. - * - * @return boolean about filled fields - */ - TBool AllCompulsoryFieldsFilled(); - - /** - * Prepares iSettingSet for editing - * - * @param aIndex of presence settings to be edited - */ - void EditSettingsL( TInt aIndex ); - - /** - * Refreshes the presence settings related arrays - */ - void RefreshPSArraysL(); - - /** - * Prepares the iSettingSet and iSettingId - * with default values - */ - void CreateDefaultSettingsL(); - - /** - * Prepares the iSettingSet and iSettingId - * with values from indexed presence setting - * - * @param aIndex is the presence settings to be duplicated - */ - void DuplicateExistingSettingsL( TInt aIndex ); - - /** - * Creates new name for to be created settings. If aOriginal - * provided, then will use that as a base. If not, then will - * create the name based on default naming. Adds numbering to - * end of name if needed. - * Note : aOriginal will be stored to cleanupstack if provided - * - * @param aOriginal is optional base name - * - */ - HBufC* CreateSettingNameLC( HBufC* aOriginal = NULL ); - - /** - * Deletes indexed settings through presence settings API. - * - * @param aToBeDeleted to be deleted settings - * @param aIsIndex tells is aToBeDeleted index or id - */ - void DeleteSettingsL( TInt aToBeDeleted, TBool aIsIndex ); - - /** - * Returns name of the indexed settings. - * - * @param aIndex of the wanted name - * @return HBufC* containing the name - */ - HBufC* SettingNameLC( TInt aIndex ); - - /** - * Checks if there already is settings with the same name. - */ - TBool IsItDuplicatePSName(); - - /** - * Returns iPSNameArray, which contains names of the - * different setting sets. Ownership of array stays in - * CPSUIGSPluginModel. - * - * @return CDesCArray* containing the names of the settings - */ - CDesCArray* SettingNames(); - - /** - * Returns a reference to iSettingSet. - * - * @return TPresSettingsSet& containing one set of the settings - */ - TPresSettingsSet& SettingsSet(); - - /** - * Checks the validity of SIP- and XDM-fields, - * if not valid empties the fields. - */ - void ClearInvalidSIPAndXDMSettingsL(); - - /** - * Returns a reference to iSettingSetId. - * - * @return TInt& containing setting id - */ - TInt& SettingsId(); - - /** - * Returns a reference to iPSIdArray. - * - * @return RArray& containing iPSIdArray - */ - RArray& SettingsIDArray(); - - // - // - // SIP related - - /** - * Fetches names of defined SIP-profiles - * Refreshes also SIP related arrays. - * - * @return descriptor array of names - */ - CDesCArray* SipProfilesLC(); - - /** - * Fetches the ID of indexed SIP profile - * - * @param aIndex is the index in the array - * @return ID of the SIP profile - */ - TInt SipProfileId( TInt aIndex ); - - /** - * Fetches the index of ID'ed SIP profile - * - * @param aId is ID of the SIP profile - * @return index in the array - */ - TInt SipProfileIndex( TInt aId ); - - /** - * Fetches the name of ID'ed SIP profile - * Refreshes also SIP related arrays. - * - * @param aId is ID of the SIP profile - * @return descriptor containing the name - */ - HBufC* SipProfileNameL( TInt aId ); - - /** - * Checks if SIP profile used by presence settings is in use - * - * @param aIndex is the index in the array - * @return ETrue if profile is registered - */ - TBool IsSipProfileRegisteredL( TInt aIndex ); - - // - // - // XDM related - - /** - * Fetches names of defined XDM settings. - * Refreshes also XDM related arrays. - * - * @return descriptor array of names - */ - CDesCArray* XdmCollectionNamesL(); - - /** - * Fetches the name of ID'ed XDM setting - * - * @param aId is ID of the SIP profile - * @return descriptor containing the name - */ - HBufC* XdmCollectionNameL( TInt aId ); - - /** - * Fetches the index of ID'ed XDM setting - * - * @param aId is ID of the SIP profile - * @return index in the array - */ - TInt XdmSettingIndex( TInt aId ); - - /** - * Fetches the ID of indexed XDM setting - * - * @param aIndex is the index in the array - * @return ID of the SIP profile - */ - TInt XdmSettingId( TInt aIndex ); - - private: // New - - /** - * Destroys given array. Used with TCleanupItem. - * - * @param pointerarray to be deleted - */ - static void ResetAndDestroy( TAny* aPointerArray ); - - /** - * Refreshes the SIP profile array. Needs to be - * called before calling most of the SIP-related methods. - */ - void ReadSipArrayFromEngineL(); - - /** - * Checks if there is ordinal numbering at the end of - * descriptor and rips it off if there is. - * - * @return HBufC* containing the name ready for the numbering - */ - HBufC* GetPrefixL( HBufC* aName ); - - /** - * Re-arranges presence settings (name and id arrays) - * to alphabetical order. - */ - void ReArrangePresenceSettingsL(); - - /** - * Cleans links to specific presence settings for - * service provider settings. - * - * @param aPresenceId presence settings id. - */ - void CleanServiceProviderSettingsDataL( TInt aPresenceId ); - - private: // Functions from base classes - - /** - * from MSIPProfileRegistryObserver - * Refreshes in most cases SIP related arrays. - * - * See base class. - */ - void ProfileRegistryEventOccurred( - TUint32 aSIPProfileId, - TEvent aEvent ); - - /** - * from MSIPProfileRegistryObserver - * Refreshes SIP related arrays. - * - * See base class. - */ - void ProfileRegistryErrorOccurred( - TUint32 aSIPProfileId, - TInt aError); - - /** - * from MDesCArray - * See base class. - */ - TInt MdcaCount() const; - - /** - * from MDesCArray - * See base class. - */ - TPtrC16 MdcaPoint( TInt aIndex ) const; - - private: // Constructors - - /** - * C++ default constructor. - */ - CPSUIGSPluginModel(); - - /** - * Symbian OS default constructor. - */ - void ConstructL(); - - private: // Data - - // Currently edited presence settings - TPresSettingsSet iSettingSet; - // Setting identifier - TInt iSettingId; - // SIP profile registry - CSIPManagedProfileRegistry* iSIPEngine; - // SIP profile array - CArrayPtrFlat* iSIPProfiles; - // XDM ID array - RArray iXdmIdArray; - // XDM name array - CDesCArray* iXdmNameArray; - // Presence settings id array - RArray iPSIdArray; - // Presence settings name array - CDesCArray* iPSNameArray; - // Texts for the MDesCArray - HBufC* iVisibleSettingName; - - }; - -/** -* Small utility class to store presence settings -* name and id. -* Used in CPSUIGSPluginModel::ReArrangePresenceSettingsL(). -* -* @lib PSUIGSPlugin.lib -* @since Series60_3.2 -*/ -class CPSUINameIDPair : - public CBase - { - public : - inline ~CPSUINameIDPair() { delete iName; }; - - public : - TInt iID; - HBufC* iName; - }; - -#endif // PSUIGSPLUGINMODEL_H -// End of File