diff -r ac5daea24fb0 -r 9f263f780e41 apengine/apsettingshandlerui/inc/ApsettingshandleruiImpl.h --- a/apengine/apsettingshandlerui/inc/ApsettingshandleruiImpl.h Wed Oct 27 17:43:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1331 +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: -* Declares the main implementation, CApSettingsHandlerImpl for the -* Access Point settings. -* -*/ - - -#ifndef APSETTINGS_HANDLER_IMPL_H -#define APSETTINGS_HANDLER_IMPL_H - -// INCLUDES -#include -#include -#include - -// CONSTANTS -/* -const TUid KUidApSettingsHandler = { 0x10008d3B }; -*/ - -typedef struct ///< Extra data holder - { - TInt iResOffset; - TBool iIsIpv6Supported; // Default is NO - TBool iIsFeatureManagerInitialised; - TInt iExtra; - TInt iSortType; - TVpnFilterType iVpnFilterType; - TInt iVariant; /// Local variant value - TBool iIncludeEasyWlan; - }TApSetHandlerImplExtra; - - -// FORWARD DECLARATIONS -class CActiveApDb; -class CApSelector; -class CApSettingsModel; -class CApSettings; -class CTextOverrides; -class CApAccessPointItem; - - -// CLASS DECLARATION -/** -* CApSettingsHandlerImpl class: It is the main handler for the Access Point -* settings. It contains the implementation of the Access Point Settings for -* the public API to be used by other (sub)systems. -* -*/ -NONSHARABLE_CLASS( CApSettingsHandlerImpl ): public CBase - { - - public: // Constructors and destructor - - - /** - * Two-phased constructor. Leaves on failure. - * This function shall be used to create the access point - * settings/selection handling UI object. It is customizable through - * the parameters. This object is a small layer above the UI part and - * it provides a standard interface to select, edit, create access - * points. It has two main parts, Select and Edit. The first parameter, - * aStartWithSelection gives whether we would like to select or edit. - * In case of selection, there is the possibility to use this module in - * many applications. For this, two layouts are implemented, - * one is list pane used by General Settings which provides the list in - * a list-pane. The other layout is for the other applications - * requiring access point selection, a popup-list style as the decision - * I know about was that General Settings will use list-pane and all - * other apps. popup-list style. It is the caller who selects the style - * so if spec. says otherwise, this module still can be used. - * It is also possible to start the UI without selection, so if any - * module has a 'linked/default/etc.' access point and stored it's UID, - * the module can simply call the editor part of the UI without having - * to select the AP once more. In case of editing only, - * (aStartWithSelection is EFalse), all other construction parameters - * are ignored and after construction caller can simply call - * DoRunSettingsL(..). In case of selection, a lot of other parameters - * can be specified to fulfil all requirements. There are three types - * of Options menu available: - * EApSettingsSelMenuNormal, - * EApSettingsSelMenuSelectOnly, - * EApSettingsSelMenuSelectNormal. - *
- *-EApSettingsSelMenuSelectOnly: Only Select is visible, - * no way to edit, delete, create, etc. - *
- * -EApSettingsSelMenuNormal: Options menu specified in General - * Settings, contains Edit, Delete, - * Create new, etc. menu items. - *
- * -EApSettingsSelMenuSelectNormal: Same as in EApSettingsSelMenuNormal - * BUT the first item is Select. - * This one makes it possible to select - * an access point and also possible to - * edit, create, delete, etc. - *
- * The following three parameters specify the filtering and ordering - * criteria for the selection list creation. First, it is possible to - * specify which ISP-type we are looking for. The possible values are: - *
- * KEApIspTypeInternetOnly: Filter allows only access points that are - * capable of only internet access. - *
- * KEApIspTypeWAPOnly: Filter allows only access points that are - * capable of only WAP access. - *
- * KEApIspTypeInternetAndWAP: Filter allows only access points that are - * capable of internet AND WAP access. - *
- * KEApIspTypeWAPMandatory: Filter allows only access points that are - * capable of WAP access AND contain - * mandatory WAP settings. - *
- * KEApIspTypeAll: No filtering is done for the isp-type, - * all types of access points are shown. - *
- * It is possible to combine them by simply adding/or-ing together - * the values, filtering will be done in such a way that only access - * points with the listed ISP-types will be shown. Second filtering - * possibility (aBearerFilter) is the desired bearer type. The possible - * values are the values of the TApBearerType enum type and their - * combinations, as in case of the ISP type. The ordering of the list - * can be specified with the aSortType parameter. It can have the - * following values: - * KEApSortUidAscending: The sorting is done according to the ID - * of the access points in ascending order. - * KEApSortUidDescending: The sorting is done according to the ID - * of the access points in descending order. - * KEApSortNameAscending: The sorting is done according to the name - * of the access points in ascending order. - * KEApSortNameDescending: The sorting is done according to the name - * of the access points in descending order. - * Caution! The ordering values can not be combined! - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the - * desired list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the - * desired menu type. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aNoEdit Gives wether editing is allowed or not - * @return The constructed CApSettingsHandlerImpl object. - */ - static CApSettingsHandlerImpl* NewLC( - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TBool aNoEdit - ); - - - - /** - * Two-phased constructor. Leaves on failure. - * This function shall be used to create the access point - * settings/selection handling UI object. It is customizable through - * the parameters. This object is a small layer above the UI part and - * it provides a standard interface to select, edit, create - * access points. It has two main parts, Select and Edit. The first - * parameter, aStartWithSelection gives whether we would like to select - * or edit. In case of selection, there is the possibility to use this - * module in many applications. For this, two layouts are implemented, - * one is list pane used by General Settings which provides the list - * in a list-pane. The other layout is for the other applications - * requiring access point selection, a popup-list style as the - * decision I know about was that General Settings will use list-pane - * and all other apps. popup-list style. It is the caller who selects - * the style so if spec. says otherwise, this module still can be used. - * It is also possible to start the UI without selection, so if any - * module has a 'linked/default/etc.' access point and stored it's UID, - * the module can simply call the editor part of the UI without having - * to select the AP once more. - * In case of editing only, (aStartWithSelection is EFalse), all other - * construction parameters are ignored and after construction caller - * can simply call DoRunSettingsL(..). - * In case of selection, a lot of other parameters can be specified - * to fulfil all requirements. There are three types of Options menu - * available: - * EApSettingsSelMenuNormal, - * EApSettingsSelMenuSelectOnly, - * EApSettingsSelMenuSelectNormal. - *
- *-EApSettingsSelMenuSelectOnly: Only Select is visible, no way to - * edit, delete, create, etc. - *
- * -EApSettingsSelMenuNormal: Options menu specified in General - * Settings, contains Edit, Delete, - * Create new, etc. menu items. - *
- * -EApSettingsSelMenuSelectNormal: Same as in EApSettingsSelMenuNormal - * BUT the first item is Select. - * This one makes it possible to - * select an access point and also - * possible to edit, create, - * delete, etc. - *
- * The following three parameters specify the filtering and ordering - * criteria for the selection list creation. First, it is possible to - * specify which ISP-type we are looking for. The possible values are: - *
- * KEApIspTypeInternetOnly: Filter allows only access points that - * are capable of only internet access. - *
- * KEApIspTypeWAPOnly: Filter allows only access points that - * are capable of only WAP access. - *
- * KEApIspTypeInternetAndWAP: Filter allows only access points that - * are capable of internet AND WAP access. - *
- * KEApIspTypeWAPMandatory: Filter allows only access points that - * are capable of WAP access AND contain - * mandatory WAP settings. - *
- * KEApIspTypeAll: No filtering is done for the isp-type, - * all types of access points are shown. - *
- * It is possible to combine them by simply adding/or-ing together the - * values, filtering will be done in such a way that only access points - * with the listed ISP-types will be shown. - * Second filtering possibility (aBearerFilter) is the desired bearer - * type. The possible values are the values of the TApBearerType enum - * type and their combinations, as in case of the ISP type. - * The ordering of the list can be specified with the aSortType - * parameter. It can have the following values: - * KEApSortUidAscending: The sorting is done according to the ID - * of the access points in ascending order. - * KEApSortUidDescending: The sorting is done according to the ID - * of the access points in descending order. - * KEApSortNameAscending: The sorting is done according to the name - * of the access points in ascending order. - * KEApSortNameDescending: The sorting is done according to the name - * of the access points in descending order. - * Caution! The ordering values can not be combined! - * @param aDb A database to work on - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the desired - * list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the desired - * menu type. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aNoEdit Gives wether editing is allowed or not - * @return The constructed CApSettingsHandlerImpl object. - */ - static CApSettingsHandlerImpl* NewLC( - CActiveApDb& aDb, - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TBool aNoEdit - ); - - - - - - - - - /** - * Two-phased constructor. Leaves on failure. - * This function shall be used to create the access point - * settings/selection handling UI object.It is customizable through the - * parameters. This object is a small layer above the UI part and - * it provides a standard interface to select, edit, create access - * points. It has two main parts, Select and Edit. The first parameter, - * aStartWithSelection gives whether we would like to select or edit. - * In case of selection, there is the possibility to use this module in - * many applications. For this, two layouts are implemented, one is - * list pane used by General Settings which provides the list in a - * list-pane. The other layout is for the other applications requiring - * access point selection, a popup-list style as the decision was that - * General Settings will use list-pane and all other apps. popup-list - * style. It is the caller who selects the style so if spec. says - * otherwise, this module still can be used. - * It is also possible to start the UI without selection, so if any - * module has a 'linked/default/etc.' access point and stored it's UID, - * the module can simply call the editor part of the UI without having - * to select the AP once more. - * In case of editing only, (aStartWithSelection is EFalse), all other - * construction parameters are ignored and after construction caller - * can simply call DoRunSettingsL(..). - * In case of selection, a lot of other parameters can be specified to - * fulfil all requirements. There are three types of Options menu - * available: EApSettingsSelMenuNormal, EApSettingsSelMenuSelectOnly, - * EApSettingsSelMenuSelectNormal. - *
- *-EApSettingsSelMenuSelectOnly: Only Select is visible, no way to edit, - * delete, create, etc. - *
- * -EApSettingsSelMenuNormal:Options menu specified in General Settings, - * contains Edit, Delete, Create new, etc. menu items. - *
- * -EApSettingsSelMenuSelectNormal: Same as in EApSettingsSelMenuNormal - * BUT the first item is Select. This one makes it possible to select - * an access point and also possible to edit, create, delete, etc. - *
- * The following three parameters specify the filtering and ordering - * criteria for the selection list creation. First, it is possible to - * specify which ISP-type we are looking for. The possible values are: - *
- * KEApIspTypeInternetOnly: Filter allows only access points that are - * capable of only internet access. - *
- * KEApIspTypeWAPOnly: Filter allows only access points that are - * capable of only WAP access. - *
- * KEApIspTypeInternetAndWAP: Filter allows only access points that are - * capable of internet AND WAP access. - *
- * KEApIspTypeWAPMandatory: Filter allows only access points that are - * capable of WAP access AND contain mandatory WAP settings. - *
- * KEApIspTypeAll: No filtering is done for the isp-type, all types of - * access points are shown. - *
- * It is possible to combine them by simply adding/or-ing together the - * values, filtering will be done in such a way that only access points - * with the listed ISP-types will be shown. - * Second filtering possibility (aBearerFilter) is the desired bearer - * type. The possible values are the values of the TApBearerType enum - * type and their combinations, as in case of the ISP type. - * The ordering of the list can be specified with the aSortType - * parameter. It can have the following values: - * KEApSortUidAscending: The sorting is done according to the ID of - * the access points in ascending order. - * KEApSortUidDescending: The sorting is done according to the ID of - * the access points in descending order. - * KEApSortNameAscending: The sorting is done according to the name of - * the access points in ascending order. - * KEApSortNameDescending: The sorting is done according to the name of - * the access points in descending order. - * Caution! The ordering values can not be combined! - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the desired - * list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the desired - * menu type. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @param aNoEdit Gives wether editing is allowed or not - * @return The constructed CApSettingsHandlerImpl object. - */ - static CApSettingsHandlerImpl* NewLC( - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType, - TBool aNoEdit - ); - - - - /** - * Two-phased constructor. Leaves on failure. - * This function shall be used to create the access point - * settings/selection handling UI object. It is customizable through - * the parameters. This object is a small layer above the UI part and - * it provides a standard interface to select, edit, create access - * points. It has two main parts, Select and Edit. The first parameter, - * aStartWithSelection gives whether we would like to select or edit. - * In case of selection, there is the possibility to use this module in - * many applications. For this, two layouts are implemented, one is list - * pane used by General Settings which provides the list in a list-pane. - * The other layout is for the other applications requiring access point - * selection, a popup-list style as the decision was that General - * Settings will use list-pane and all other apps. popup-list style. - * It is the caller who selects the style so if spec. says otherwise, - * this module still can be used. It is also possible to start the UI - * without selection, so if any module has a 'linked/default/etc.' - * access point and stored it's UID, the module can simply call the - * editor part of the UI without having to select the AP once more. - * In case of editing only, (aStartWithSelection is EFalse), all other - * construction parameters are ignored and after construction caller can - * simply call DoRunSettingsL(..). In case of selection, a lot of other - * parameters can be specified to fulfil all requirements. There are - * three types of Options menu available: EApSettingsSelMenuNormal, - * EApSettingsSelMenuSelectOnly, EApSettingsSelMenuSelectNormal. - *
- *-EApSettingsSelMenuSelectOnly: Only Select is visible, no way to edit, - * delete, create, etc. - *
- * -EApSettingsSelMenuNormal:Options menu specified in General Settings, - * contains Edit, Delete, Create new, etc. menu items. - *
- * -EApSettingsSelMenuSelectNormal: Same as in EApSettingsSelMenuNormal - * BUT the first item is Select. This one makes it possible to select - * an access point and also possible to edit, create, delete, etc. - *
- * The following three parameters specify the filtering and ordering - * criteria for the selection list creation. First, it is possible to - * specify which ISP-type we are looking for. The possible values are: - *
- * KEApIspTypeInternetOnly: Filter allows only access points that are - * capable of only internet access. - *
- * KEApIspTypeWAPOnly: Filter allows only access points that are - * capable of only WAP access. - *
- * KEApIspTypeInternetAndWAP: Filter allows only access points that are - * capable of internet AND WAP access. - *
- * KEApIspTypeWAPMandatory: Filter allows only access points that are - * capable of WAP access AND contain mandatory WAP settings. - *
- * KEApIspTypeAll: No filtering is done for the isp-type, all types of - * access points are shown. - *
- * It is possible to combine them by simply adding/or-ing together the - * values, filtering will be done in such a way that only access points - * with the listed ISP-types will be shown. Second filtering possibility - * (aBearerFilter) is the desired bearer type. The possible values are - * the values of the TApBearerType enum type and their combinations, as - * in case of the ISP type. The ordering of the list can be specified - * with the aSortType parameter. It can have the following values: - * KEApSortUidAscending: The sorting is done according to the ID of - * the access points in ascending order. - * KEApSortUidDescending: The sorting is done according to the ID of - * the access points in descending order. - * KEApSortNameAscending: The sorting is done according to the name of - * the access points in ascending order. - * KEApSortNameDescending: The sorting is done according to the name of - * the access points in descending order. - * Caution! The ordering values can not be combined! - * @param aDb A database to work on - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the desired - * list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the desired - * menu type. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @param aNoEdit Gives wether editing is allowed or not - * @return The constructed CApSettingsHandlerImpl object. - */ - static CApSettingsHandlerImpl* NewLC( - CActiveApDb& aDb, - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType, - TBool aNoEdit - ); - - - - - /** - * Two-phased constructor. Leaves on failure. - * This function shall be used to create the access point - * settings/selection handling UI object.It is customizable through the - * parameters. This object is a small layer above the UI part and - * it provides a standard interface to select, edit, create access - * points. It has two main parts, Select and Edit. The first parameter, - * aStartWithSelection gives whether we would like to select or edit. - * In case of selection, there is the possibility to use this module in - * many applications. For this, two layouts are implemented, one is - * list pane used by General Settings which provides the list in a - * list-pane. The other layout is for the other applications requiring - * access point selection, a popup-list style as the decision was that - * General Settings will use list-pane and all other apps. popup-list - * style. It is the caller who selects the style so if spec. says - * otherwise, this module still can be used. - * It is also possible to start the UI without selection, so if any - * module has a 'linked/default/etc.' access point and stored it's UID, - * the module can simply call the editor part of the UI without having - * to select the AP once more. - * In case of editing only, (aStartWithSelection is EFalse), all other - * construction parameters are ignored and after construction caller - * can simply call DoRunSettingsL(..). - * In case of selection, a lot of other parameters can be specified to - * fulfil all requirements. There are three types of Options menu - * available: EApSettingsSelMenuNormal, EApSettingsSelMenuSelectOnly, - * EApSettingsSelMenuSelectNormal. - *
- *-EApSettingsSelMenuSelectOnly: Only Select is visible, no way to edit, - * delete, create, etc. - *
- * -EApSettingsSelMenuNormal:Options menu specified in General Settings, - * contains Edit, Delete, Create new, etc. menu items. - *
- * -EApSettingsSelMenuSelectNormal: Same as in EApSettingsSelMenuNormal - * BUT the first item is Select. This one makes it possible to select - * an access point and also possible to edit, create, delete, etc. - *
- * The following three parameters specify the filtering and ordering - * criteria for the selection list creation. First, it is possible to - * specify which ISP-type we are looking for. The possible values are: - *
- * KEApIspTypeInternetOnly: Filter allows only access points that are - * capable of only internet access. - *
- * KEApIspTypeWAPOnly: Filter allows only access points that are - * capable of only WAP access. - *
- * KEApIspTypeInternetAndWAP: Filter allows only access points that are - * capable of internet AND WAP access. - *
- * KEApIspTypeWAPMandatory: Filter allows only access points that are - * capable of WAP access AND contain mandatory WAP settings. - *
- * KEApIspTypeAll: No filtering is done for the isp-type, all types of - * access points are shown. - *
- * It is possible to combine them by simply adding/or-ing together the - * values, filtering will be done in such a way that only access points - * with the listed ISP-types will be shown. - * Second filtering possibility (aBearerFilter) is the desired bearer - * type. The possible values are the values of the TApBearerType enum - * type and their combinations, as in case of the ISP type. - * The ordering of the list can be specified with the aSortType - * parameter. It can have the following values: - * KEApSortUidAscending: The sorting is done according to the ID of - * the access points in ascending order. - * KEApSortUidDescending: The sorting is done according to the ID of - * the access points in descending order. - * KEApSortNameAscending: The sorting is done according to the name of - * the access points in ascending order. - * KEApSortNameDescending: The sorting is done according to the name of - * the access points in descending order. - * Caution! The ordering values can not be combined! - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the desired - * list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the desired - * menu type. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - * @param aNoEdit Gives wether editing is allowed or not - * @return The constructed CApSettingsHandlerImpl object. - */ - static CApSettingsHandlerImpl* NewLC( - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType, - TVpnFilterType aVpnFilterType, - TBool aNoEdit - ); - - - - /** - * Two-phased constructor. Leaves on failure. - * This function shall be used to create the access point - * settings/selection handling UI object. It is customizable through - * the parameters. This object is a small layer above the UI part and - * it provides a standard interface to select, edit, create access - * points. It has two main parts, Select and Edit. The first parameter, - * aStartWithSelection gives whether we would like to select or edit. - * In case of selection, there is the possibility to use this module in - * many applications. For this, two layouts are implemented, one is list - * pane used by General Settings which provides the list in a list-pane. - * The other layout is for the other applications requiring access point - * selection, a popup-list style as the decision was that General - * Settings will use list-pane and all other apps. popup-list style. - * It is the caller who selects the style so if spec. says otherwise, - * this module still can be used. It is also possible to start the UI - * without selection, so if any module has a 'linked/default/etc.' - * access point and stored it's UID, the module can simply call the - * editor part of the UI without having to select the AP once more. - * In case of editing only, (aStartWithSelection is EFalse), all other - * construction parameters are ignored and after construction caller can - * simply call DoRunSettingsL(..). In case of selection, a lot of other - * parameters can be specified to fulfil all requirements. There are - * three types of Options menu available: EApSettingsSelMenuNormal, - * EApSettingsSelMenuSelectOnly, EApSettingsSelMenuSelectNormal. - *
- *-EApSettingsSelMenuSelectOnly: Only Select is visible, no way to edit, - * delete, create, etc. - *
- * -EApSettingsSelMenuNormal:Options menu specified in General Settings, - * contains Edit, Delete, Create new, etc. menu items. - *
- * -EApSettingsSelMenuSelectNormal: Same as in EApSettingsSelMenuNormal - * BUT the first item is Select. This one makes it possible to select - * an access point and also possible to edit, create, delete, etc. - *
- * The following three parameters specify the filtering and ordering - * criteria for the selection list creation. First, it is possible to - * specify which ISP-type we are looking for. The possible values are: - *
- * KEApIspTypeInternetOnly: Filter allows only access points that are - * capable of only internet access. - *
- * KEApIspTypeWAPOnly: Filter allows only access points that are - * capable of only WAP access. - *
- * KEApIspTypeInternetAndWAP: Filter allows only access points that are - * capable of internet AND WAP access. - *
- * KEApIspTypeWAPMandatory: Filter allows only access points that are - * capable of WAP access AND contain mandatory WAP settings. - *
- * KEApIspTypeAll: No filtering is done for the isp-type, all types of - * access points are shown. - *
- * It is possible to combine them by simply adding/or-ing together the - * values, filtering will be done in such a way that only access points - * with the listed ISP-types will be shown. Second filtering possibility - * (aBearerFilter) is the desired bearer type. The possible values are - * the values of the TApBearerType enum type and their combinations, as - * in case of the ISP type. The ordering of the list can be specified - * with the aSortType parameter. It can have the following values: - * KEApSortUidAscending: The sorting is done according to the ID of - * the access points in ascending order. - * KEApSortUidDescending: The sorting is done according to the ID of - * the access points in descending order. - * KEApSortNameAscending: The sorting is done according to the name of - * the access points in ascending order. - * KEApSortNameDescending: The sorting is done according to the name of - * the access points in descending order. - * Caution! The ordering values can not be combined! - * @param aDb A database to work on - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the desired - * list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the desired - * menu type. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - * @param aNoEdit Gives wether editing is allowed or not - * @return The constructed CApSettingsHandlerImpl object. - */ - static CApSettingsHandlerImpl* NewLC( - CActiveApDb& aDb, - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType, - TVpnFilterType aVpnFilterType, - TBool aNoEdit - ); - - - - - - /** - * Two-phased constructor. Leaves on failure. - * This function shall be used to create the access point - * settings/selection handling UI object. It is customizable through - * the parameters. This object is a small layer above the UI part and - * it provides a standard interface to select, edit, create access - * points. It has two main parts, Select and Edit. The first parameter, - * aStartWithSelection gives whether we would like to select or edit. - * In case of selection, there is the possibility to use this module in - * many applications. For this, two layouts are implemented, one is list - * pane used by General Settings which provides the list in a list-pane. - * The other layout is for the other applications requiring access point - * selection, a popup-list style as the decision was that General - * Settings will use list-pane and all other apps. popup-list style. - * It is the caller who selects the style so if spec. says otherwise, - * this module still can be used. It is also possible to start the UI - * without selection, so if any module has a 'linked/default/etc.' - * access point and stored it's UID, the module can simply call the - * editor part of the UI without having to select the AP once more. - * In case of editing only, (aStartWithSelection is EFalse), all other - * construction parameters are ignored and after construction caller can - * simply call DoRunSettingsL(..). In case of selection, a lot of other - * parameters can be specified to fulfil all requirements. There are - * three types of Options menu available: EApSettingsSelMenuNormal, - * EApSettingsSelMenuSelectOnly, EApSettingsSelMenuSelectNormal. - *
- *-EApSettingsSelMenuSelectOnly: Only Select is visible, no way to edit, - * delete, create, etc. - *
- * -EApSettingsSelMenuNormal:Options menu specified in General Settings, - * contains Edit, Delete, Create new, etc. menu items. - *
- * -EApSettingsSelMenuSelectNormal: Same as in EApSettingsSelMenuNormal - * BUT the first item is Select. This one makes it possible to select - * an access point and also possible to edit, create, delete, etc. - *
- * The following three parameters specify the filtering and ordering - * criteria for the selection list creation. First, it is possible to - * specify which ISP-type we are looking for. The possible values are: - *
- * KEApIspTypeInternetOnly: Filter allows only access points that are - * capable of only internet access. - *
- * KEApIspTypeWAPOnly: Filter allows only access points that are - * capable of only WAP access. - *
- * KEApIspTypeInternetAndWAP: Filter allows only access points that are - * capable of internet AND WAP access. - *
- * KEApIspTypeWAPMandatory: Filter allows only access points that are - * capable of WAP access AND contain mandatory WAP settings. - *
- * KEApIspTypeAll: No filtering is done for the isp-type, all types of - * access points are shown. - *
- * It is possible to combine them by simply adding/or-ing together the - * values, filtering will be done in such a way that only access points - * with the listed ISP-types will be shown. Second filtering possibility - * (aBearerFilter) is the desired bearer type. The possible values are - * the values of the TApBearerType enum type and their combinations, as - * in case of the ISP type. The ordering of the list can be specified - * with the aSortType parameter. It can have the following values: - * KEApSortUidAscending: The sorting is done according to the ID of - * the access points in ascending order. - * KEApSortUidDescending: The sorting is done according to the ID of - * the access points in descending order. - * KEApSortNameAscending: The sorting is done according to the name of - * the access points in ascending order. - * KEApSortNameDescending: The sorting is done according to the name of - * the access points in descending order. - * Caution! The ordering values can not be combined! - * @param aDb A database to work on - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the desired - * list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the desired - * menu type. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - * @param aIncludeEasyWlan a TBool indicating whether it should - * include the easy wlan AP in the list or not. - * @param aNoEdit Gives wether editing is allowed or not - * @return The constructed CApSettingsHandlerImpl object. - */ - static CApSettingsHandlerImpl* NewLC( - CActiveApDb& aDb, - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType, - TVpnFilterType aVpnFilterType, - TBool aIncludeEasyWlan, - TBool aNoEdit - ); - - - - - /** - * Destructor. - */ - ~CApSettingsHandlerImpl(); - - - protected: - /** - * Constructor. - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the desired - * list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the desired - * menu type. - * @param aNoEdit Gives wether editing is allowed or not - */ - CApSettingsHandlerImpl( - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TBool aNoEdit - ); - - /** - * Constructor. - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the desired - * list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the desired - * menu type. - * @param aHelpMajor Major help ID - * @param aNoEdit Gives wether editing is allowed or not - */ - CApSettingsHandlerImpl( - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TUid aHelpMajor, - TBool aNoEdit - ); - - - /** - * Constructor. - * @param aStartWithSelection A boolean value indicating whether to - * select or edit an ap. - * @param aListType A TSelectionListType enum indicating the desired - * list type. - * @param aSelMenuType A TSelectionMenuType enum indicating the desired - * menu type. - * @param aNeedIpv6Support Whether IPv6 is supported or not - * @param aNoEdit Gives wether editing is allowed or not - */ - CApSettingsHandlerImpl( - TBool aStartWithSelection, - TSelectionListType aListType, - TSelectionMenuType aSelMenuType, - TBool aNeedIpv6Support, - TBool aNoEdit - ); - - - - /** - * Second-phase constructor. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - */ - void ConstructL( - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType - ); - - - /** - * Second-phase constructor. - * @param aDb A database to work on - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - */ - void ConstructL( - CActiveApDb& aDb, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType - ); - - - /** - * Second-phase constructor. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - */ - void ConstructL( - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TVpnFilterType aVpnFilterType - ); - - - /** - * Second-phase constructor. - * @param aDb A database to work on - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - */ - void ConstructL( - CActiveApDb& aDb, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TVpnFilterType aVpnFilterType - ); - - - - - /** - * Second-phase constructor. - * @param aDb A database to work on - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - * @param aIncludeEasyWlan a TBool indicating whether it should - * include the easy wlan AP in the list or not. - */ - void ConstructL( - CActiveApDb& aDb, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TVpnFilterType aVpnFilterType, - TBool aIncludeEasyWlan - ); - - - public: // New functions - /** - * Sets the filtering used in the access point selection. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @return No return value. Leaves on error. - */ - void SetFilterL( - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType - ); - - - /** - * Sets possible overrides of some texts. - * By default, text is read from resources. This provides a way to - * change some of the text to a caller-supplied one. The text must - * be read from resource and must be already localized. - * More than one text can be substituted, they are stored internally - * in an array. - * Currently not supported and supporting it is under discussion. - * @param aText2Change TTextID to identify the text to be replaced with - * @param aNewText Reference to the substitute text. - */ - void SetTextOverrideL( TTextID aText2Change, - const TDesC& aNewText ); - - - /** - * Gets possible overrides of a text. - * By default, text is read from resources. This provides a way to - * change some of the text to a caller-supplied one. The text must - * be read from resource and must be already localized. - * More than one text can be substituted, they are stored internally - * in an array. - * Currently not supported and supporting it is under discussion - * @param aTextID TTextID type to identify the text to be replaced with - * @return Reference to the substitute text. - */ - const TDesC& TextOverrideL( TTextID aTextId ); - - - /** - * Starts the settings component. - * Creates dialog(s) from scratch, launches and executes them. - * Can leave with error codes. - * @param TUint32 aHighlight The UID of the AP to highlight by default - * @param TUint32 aSelected The UID of the access point selected - * by the user. - * @return The accomplished task's flag-codes: - *
- * KApUiEventNone, - *
- * KApUiEventSelected, - *
- * KApUiEventCreatedBlank, - *
- * KApUiEventCreatedUsedOld, - *
- * KApUiEventEdited, - *
- * KApUiEventDeleted, - *
- * KApUiEventExitRequested - *
and their combinations. ( Bitwise OR ) - *
- * aSelected will be modified only if KApUiEventSelected is included - * in the flags. - *
- * In case it returns KApUiEventExitRequested, the user had choosen - * the Exit option from the Options menu which means - * that the caller application MUST exit! - *
- * Returns after completion! - */ - TInt RunSettingsL( TUint32 aHighLight, TUint32& aSelected ); - - - /** - * Component Validation Test. - * @return KErrNone. - */ - static TInt Cvt(); - - - protected: // New functions - /** - * Starts the settings component. - * Creates dialog(s) from scratch, launches and executes them. - * In case of error, leaves with error codes. - * @param TUint32 aHighlight The UID of the AP to highlight by default - * @param TUint32 aSelected The UID of the AP selected by the user - * @return The accomplished task's flag-codes: - *
- * KApUiEventNone, - *
- * KApUiEventSelected, - *
- * KApUiEventCreatedBlank, - *
- * KApUiEventCreatedUsedOld, - *
- * KApUiEventEdited, - *
- * KApUiEventDeleted - *
- * and their combinations. ( Bitwise OR ) - *
- * aSelected will be modified only if KApUiEventSelected is included - * in the flags. - *
- * Returns after completion! - */ - TInt DoRunSettingsL( TUint32 aHighLight, TUint32& aSelected ); - - - /** - * Starts the viewer component. - * Creates dialog(s) from scratch, launches and executes it. - * In case of error, leaves with error codes. - * @param TUint32 aUid The UID of the AP to view/edit - * @return Returns the completed task's flags - * KApUiEventNone, KApUiEventSelected, KApUiEventCreatedBlank, - * KApUiEventCreatedUsedOld, KApUiEventEdited, KApUiEventDeleted, - * KApUiEventExitRequested and their combinations. ( Bitwise OR ) - * In case it returns KApUiEventExitRequested, the user had choosen - * the Exit option from the Options menu which means - * that the caller application MUST exit! - *
- * Returns after completion! - */ - TInt RunViewerL( TUint32 aUid ); - - - /** - * Starts the viewer component. - * Creates dialog(s) from scratch, launches and executes it. - * In case of error, leaves with error codes. - * @param TUint32 aUid The UID of the AP to view/edit - * @return Returns the completed task's flags - * KApUiEventNone, KApUiEventSelected, KApUiEventCreatedBlank, - * KApUiEventCreatedUsedOld, KApUiEventEdited, KApUiEventDeleted, - * KApUiEventExitRequested and their combinations. ( Bitwise OR ) - * Returns after completion! - */ - TInt DoRunViewerL( TUint32 aUid ); - - - // handles the Delete access Point command. - void HandleApDeleteCmdL( TUint32 aUid, TBool aIsLast ); - - - // handles the Create blank new access Point command. - TUint32 HandleApBlankNewL( TInt aBearers, TInt aIsps ); - - - // handles the Create new access Point by using existing one command. - TUint32 HandleApUseOldNewL(); - - - // handles the Editing of the newly created access Point. - TUint32 EditAfterCreateL( TUint32 aUid, - CApAccessPointItem* aItem = NULL ); - - - /** - * Second-phase internal constructor. - * @param aDb A database to work on - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - * @param aIncludeEasyWlan a TBool indicating whether it should - * include the easy wlan AP in the list or not. - */ - void DoConstructL( CActiveApDb* aDb, TInt aIspFilter, - TInt aBearerFilter, TInt aSortType, - TVpnFilterType aVpnFilterType, - TBool aIncludeEasyWlan ); - - - /** - * Starts the selector component as a list - * Creates dialog(s) from scratch, launches and executes them. - * In case of error, leaves with error codes. - * @param TUint32 aHighlight The UID of the AP to highlight by default - * @param TUint32 aSelected The UID of the AP selected by the user - * @return The accomplished task's flag-codes: - *
- * KApUiEventNone, - *
- * KApUiEventSelected, - *
- * KApUiEventCreatedBlank, - *
- * KApUiEventCreatedUsedOld, - *
- * KApUiEventEdited, - *
- * KApUiEventDeleted - *
- * and their combinations. ( Bitwise OR ) - *
- * aSelected will be modified only if KApUiEventSelected is included - * in the flags. - *
- * Returns after completion! - */ - void DoRunListSettingsL( TUint32 aHighLight, TUint32& aSelected ); - - - /** - * Starts the selector component in a setting page - * Creates dialog(s) from scratch, launches and executes them. - * In case of error, leaves with error codes. - * @param TUint32 aHighlight The UID of the AP to highlight by default - * @param TUint32 aSelected The UID of the AP selected by the user - * @return The accomplished task's flag-codes: - *
- * KApUiEventNone, - *
- * KApUiEventSelected, - *
- * KApUiEventCreatedBlank, - *
- * KApUiEventCreatedUsedOld, - *
- * KApUiEventEdited, - *
- * KApUiEventDeleted - *
- * and their combinations. ( Bitwise OR ) - *
- * aSelected will be modified only if KApUiEventSelected is included - * in the flags. - *
- * Returns after completion! - */ - void DoRunSetPageSettingsL( TUint32 aHighLight, TUint32& aSelected ); - - - /** - * handles the Create new access Point by using existing one command. - * Called after user has selected the AP to copy - * Creates the new Ap and offers it for editing. - * @param aSelected The UID of the AP to copy. Shall not be KErrNone. - * @return The UID of the newly created Ap - */ - TUint32 DoHandleApUseOldNewL( TUint32 aSelected ); - - /** - * Selects the Ap to Copy, returns its UID. - * If not selected, KErrNone is returned - */ - TUint32 SelectApToCopyL(); - - - /** - * handles the Create blank new access Point command. - */ - TUint32 DoHandleApBlankNewL( TInt aBearers, TInt aIsps ); - - - /** - * handles the Delete network group command. - * @param aUid The uid of the network to delete - */ - void HandleNetworkDeleteCmdL( TUint32 aUid ); - - - /** - * Gets the local variant value - * @return A TInt stating the variant - */ - TInt GetVariantL(); - - - /** - * Gets confirmation about deleting an access point - * @param aUid A TUint32 holding the WAP access point ID of the - * access point to be deleted. - * @param aIsLast A TBool specifying whether the access point to be - * deleted is the last one or not. - * @return A TInt stating the result - */ - TInt ConfirmDeleteL( TUint32 aUid, TBool aIsLast ); - - - /** - * Wrapper for the public API - */ - void HandleRunSettingsL( TUint32 aHighLight, TUint32& aSelected ); - - - protected: // Functions from base classes - - friend class CApSettingsDlg; - friend class CApSelectorDialog; - friend class CApSelPopupList; - friend class CApNetSelPopupList; - friend class CApSettingsHandler; - - private: - /** - * Selects an appropriate bearer type for a given item according to - * the current filtering criterias - * @param aBearers The current bearer filter set - * @param aItem The CApAccessPointItem whoose bearer type is to be set. - */ - void ChooseBearerTypeL( TInt aBearers, CApAccessPointItem& aItem ); - - /** - * Duplciates an existing access point identified by the passed WAP ID - * @param aUid The WAP Access Point ID of the access point to duplicate - * @return The WAP Access Point ID of the newly created access point. - */ - TUint32 HandleDuplicateL( TUint32 aUid ); - - - -public: - TUint32 EventStore() { return iEventStore; }; - - - - - private: //data - TBool iStartWithSelection; - TSelectionListType iListType; - TSelectionMenuType iSelMenuType; - - TInt iIspFilter; - TInt iBearerFilter; - TApSetHandlerImplExtra* iExt; // Extra data holder structure - - TInt iReqIpvType; // Default is IPv4 - - CApSettingsModel* iModel; - CTextOverrides* iTextOverrides; - TUint32 iEventStore; // to hold the events - TUid iHelpMajor; - TBool iNoEdit; - -#ifdef __TEST_OOMDEBUG - TBool iMemTestOn; -#endif // __TEST_OOMDEBUG - - }; - -#endif - -// End of File