diff -r 000000000000 -r 307788aac0a8 sipplugins/sippsipsettingsui/inc/sipsettlistsipprofsetmodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sipplugins/sippsipsettingsui/inc/sipsettlistsipprofsetmodel.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,219 @@ +/* +* Copyright (c) 2005 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: The model of profile setting view +* +*/ + + +#ifndef SIP_SETT_LIST_SIP_PROF_SET_MODEL_H +#define SIP_SETT_LIST_SIP_PROF_SET_MODEL_H + +// INCLUDES + +#include +#include + +// FORWARD DECLARATIONS + +class TSIPSettingsData; +class CGSSIPModel; +class TSIPProfileTypeInfo; +class MGSSIPProfileHandler; + +// CLASS DECLARATION + +/** +* CSIPSettListSIPProfSetModel model class +* @since 3.0 +* model class for SIP Profile settings view +*/ +class CSIPSettListSIPProfSetModel : public CBase + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aHandler Profile handler for manipulating profiles + */ + static CSIPSettListSIPProfSetModel* NewL( + MGSSIPProfileHandler* aHandler ); + + /** + * Destructor. + */ + virtual ~CSIPSettListSIPProfSetModel(); + + public: // New functions + + /** + * Fetches the settings of the modified profile + * @return Reference to the settings data structure + */ + TSIPSettingsData& Settings(); + + /** + * Fetches the list of APs for the item list + * @param aArray The array, where all the APs are placed + * @param aIndex Currently selected AP + */ + void GetAPListL( CArrayPtr* aArray, + TInt& aIndex ); + + /** + * Fetches the list of destinationss for the item list + * @param aArray The array, where all the destinations are placed + * @param aIndex Currently selected destination + */ + void GetDestinationsListL( CArrayPtr* aArray, + TInt& aIndex ); + + /** + * Fetches the list of types for the item list + * @param aArray The array, where all the types are + * @param aIndex Currently selected AP + */ + void GetTypeListL( CArrayPtr* aArray, + TInt& aIndex ); + + /** + * Returns the service provider name for title pane + * @return Buffer containing the provider name + */ + HBufC* ProviderNameLC(); + + /** + * Returns the service profile data struct with index. + * @param aIndex A index to a type array. + * @return Reference to the type info struct. + */ + TSIPProfileTypeInfo& ProfileTypeInfo( TInt aIndex ); + + /** + * Stores the service profile setting, i.e. matches the chosen + * index to the TSIPProfileTypeInfo struct accordingly + */ + void StoreServiceProfileSetting(); + + /** + * Starts saving the settings of the modified profile + */ + void SaveProfileL(); + + /** + * Get the UID of the access point based on the index + * @param aIndex The index of selected access point + * @return the UID of the access point + */ + TUint32 APUID( const TInt aIndex ) const; + + /** + * Get the UID of the access point + * @return the UID of the access point + */ + TUint32 APUID() const; + + /** + * Get the UID of the snap based on the index + * @param aIndex The index of selected destination + * @return the UID of the snap + */ + TUint32 SNAPUID( const TInt aIndex ) const; + + /** + * Checks that given name is not already exists. Provides + * new name if same name exists in the device. + * @param aName for name to be checked + * @return ETrue if duplicate names was found + */ + TBool CheckDuplicateNameL( TDes& aName); + + /** + * Checks is currently shown profile locked. + * @return ETrue if profile is locked + */ + TBool ProfileLocked(); + + /** + * Checks if SNAP is defined and so AP setting is locked. + * @return ETrue if AP setting is locked, otherwise EFalse + */ + TBool APLocked(); + + /** + * SNAPid defined, lock AP setting. + */ + void SetApLocked(); + + /** + * Checks if profile is registered. + * @return ETrue if profile is registered otherwise EFalse + */ + TBool IsRegistered(); + + /** + * Remove defined AP UID . + */ + void CleanAPUid(); + + /** + * Gets the destinations count. + * @return Count of destinations. + */ + TInt DestinationsCountL( ); + + private: + + /** + * C++ default constructor. + * @param aHandler Profile handler for manipulating profiles + */ + CSIPSettListSIPProfSetModel( MGSSIPProfileHandler* aHandler ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // Data + + // Pointer to profile handler + MGSSIPProfileHandler* iHandler; + + // Pointer to profile data + TSIPSettingsData* iProfileData; + + // Pointer to service profile array + RArray* iTypeInfo; + + // Array stores the mapping between + // the APs index and the UID of the APs + RArray iAPsUIDs; + + // Array stores the mapping between + // the SNAP's index and the UID of the SNAPs + RArray iSNAPUIDs; + + // Profile locked info + TBool iLocked; + + // AP setting locked info + TBool iAPLocked; + + // Profile registration status + TBool iRegistered; + }; + +#endif // SIP_SETT_LIST_SIP_PROF_SET_MODEL_H + +// End of File