sipplugins/sippsipsettingsui/inc/sipsettlistsipprofsetmodel.h
changeset 0 307788aac0a8
--- /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 <e32base.h>
+#include <aknsettingitemlist.h>
+
+// 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<CAknEnumeratedText>* 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<CAknEnumeratedText>* 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<CAknEnumeratedText>* 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<TSIPProfileTypeInfo>* iTypeInfo;       
+
+		// Array stores the mapping between 
+		// the APs index and the UID of the APs
+		RArray<TUint32> iAPsUIDs;
+		
+		// Array stores the mapping between 
+		// the SNAP's index and the UID of the SNAPs
+		RArray<TUint32> 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