diff -r fc7b30ed2058 -r 05bc53fe583b cmmanager/cppacketdataapplugin/inc/cppacketdataapadvancedview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cmmanager/cppacketdataapplugin/inc/cppacketdataapadvancedview.h Tue Aug 31 15:35:44 2010 +0300 @@ -0,0 +1,158 @@ +/* +* Copyright (c) 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: +* Control Panel packet data AP advanced settings view header file. +* +*/ + +#ifndef CPPACKETDATAAPADVANCEDVIEW_H +#define CPPACKETDATAAPADVANCEDVIEW_H + +// System includes +#include +#include +#include +#include + +// User includes + +// Forward declarations +class HbDataForm; +class HbDataFormModel; +class HbDataFormModelItem; +class CmConnectionMethodShim; + +// External data types + +// Constants + +// Class declaration +class CpPacketDataApAdvancedView : public CpBaseSettingView +{ + Q_OBJECT + +public: + CpPacketDataApAdvancedView( + CmConnectionMethodShim *cmConnectionMethod, + QGraphicsItem *parent = 0); + ~CpPacketDataApAdvancedView(); + +signals: + +public slots: + +protected: + +protected slots: + +private: + Q_DISABLE_COPY(CpPacketDataApAdvancedView) + + //! Network type + enum NetworkType { + NetworkTypeIpv4 = 0, + NetworkTypeIpv6 + }; + + //! IPv6 DNS type + enum Ipv6DnsType { + Ipv6DnsTypeAutomatic = 0, + Ipv6DnsTypeWellKnown, + Ipv6DnsTypeUserDefined + }; + + void createAdvancedSettings(); + void createIpGroup(); + void updateIpGroup(); + void createIpv4SettingItems(); + void deleteIpv4SettingItems(); + void createIpv6SettingItems(); + void deleteIpv6SettingItems(); + void createProxyGroup(); + void updateProxyGroup(); + NetworkType getNetworkType(); + QString getIpAddress(CMManagerShim::ConnectionMethodAttribute attribute); + Ipv6DnsType getIpv6DnsType(); + void enableIpv4AddressFields(int state); + void enableIpv4DnsFields(int state); + void enableIpv6DnsFields(int selectionIndex); + bool validateAndSaveIpAddress( + HbDataFormModelItem *item, + CMManagerShim::ConnectionMethodAttribute attribute, + QAbstractSocket::NetworkLayerProtocol protocol); + void showMessageBox( + HbMessageBox::MessageBoxType type, + const QString &text); + bool tryUpdate(); + void handleUpdateError(); + +private slots: + void setEditorPreferences(const QModelIndex index); + void changeNetworkType(int type); + void changeIpv4AddressMode(int state); + void changeIpv4Address(); + void changeIpv4DnsMode(int state); + void changeIpv4PrimaryDnsAddress(); + void changeIpv4SecondaryDnsAddress(); + void changeIpv6DnsMode(int selectionIndex); + void changeIpv6PrimaryDnsAddress(); + void changeIpv6SecondaryDnsAddress(); + void changeProxyServer(); + void changeProxyPort(); + +private: // data + //! Dataform + HbDataForm *mForm; + //! Dataform model + HbDataFormModel *mModel; + //! Connection Settings Shim connection method pointer + CmConnectionMethodShim *mCmConnectionMethod; + //! "IP settings" group + HbDataFormModelItem *mIpGroup; + //! "Network type" (IPv4/IPv6) setting item + HbDataFormModelItem *mNetworkType; + //! "Automatic" setting item for phone IP address + HbDataFormModelItem *mIpv4Automatic; + //! "Phone IP address" setting item + HbDataFormModelItem *mIpv4Address; + //! "Automatic" setting item for IPv4 DNS addresses + HbDataFormModelItem *mIpv4DnsAutomatic; + //! "Primary name server" setting item + HbDataFormModelItem *mIpv4DnsAddress1; + //! "Secondary name server" setting item + HbDataFormModelItem *mIpv4DnsAddress2; + //! "Automatic" setting item for IPv6 DNS addresses + HbDataFormModelItem *mIpv6DnsAutomatic; + //! "Primary name server" setting item + HbDataFormModelItem *mIpv6DnsAddress1; + //! "Secondary name server" setting item + HbDataFormModelItem *mIpv6DnsAddress2; + //! "Proxy settings" group + HbDataFormModelItem *mProxyGroup; + //! "Proxy server address" setting item + HbDataFormModelItem *mProxyServer; + //! "Proxy port number" setting item + HbDataFormModelItem *mProxyPort; + //! Message box for info notes + QSharedPointer mMessageBox; + //! Flag for IPv6 support + bool mIpv6Supported; + //! Current network type (IPv4/IPv6) + NetworkType mCurrentNetworkType; + + // Friend classes + friend class TestCpPacketDataApPlugin; +}; + +#endif // CPPACKETDATAAPADVANCEDVIEW_H