wlanutilities/eapwizard/inc/eapwizard_p.h
author hgs
Thu, 24 Jun 2010 10:49:51 +0300
changeset 39 7b3e49e4608a
permissions -rw-r--r--
201025

/*
 * 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: 
 *   EAP Wizard: Private implementation.
 *
 */

#ifndef EAPWIZARD_P_H
#define EAPWIZARD_P_H

// System includes
#include <QObject>
#include <QHash>

// User includes
#include "wlanwizardplugin.h"

// Forward declarations
class HbTranslator;
class HbStackedWidget;
class HbWidget;
class HbLabel;
class HbView;
class HbAction;
class HbDocumentLoader;
class WlanWizardHelper;
class EapWizardPage;
class EapQtConfigInterface;
class EapQtPluginHandle;
class EapQtConfig;
class EapWizard;
class TestWlanWizardContext;
// External data types

// Constants

/*!
   @addtogroup group_eap_wizard
   @{
 */

// Class declaration

class EapWizardPrivate : public QObject
{
    Q_OBJECT
public:
    /*!
       Enumerator for internal EAP configuration cache. This cache is used to
       store user input and selections. see configurations() and 
       setConfigurations() for howto access the configurations.
       
       Below is descripted which configuration can be used with a specific EAP
       type.
       EAP-TTLS & EAP-PEAP & EAP-TLS
       - CertificateCa
       - TunnelUsernameAutomatic
       - TunnelUsername
       - TunnelRealmAutomatic
       - TunnelRealm
       
       EAP-TTLS & EAP-PEAP & EAP-FAST
       - InnerType
       
       EAP-TLS
       - CertificateUser
       
       EAP-FAST
       - PacStorePassword
       - PacStoreState
       
       LEAP, PAP, EAP-GTC, EAP/Plain-MSChapv2
       - Username
       - Password
       
       PAP, EAP-GTC, EAP/Plain-MSChapv2
       - OuterType
       
       Remember to update trace.properties upon changes.
     */
    enum ConfigurationId
    {
        //! EapQtPluginHandle::Plugin (int), EAP outer type
        OuterType = 0,
        //! EapQtPluginHandle::Plugin (int), EAP inner type
        InnerType = 1,
        //! CertificateInformation, NULL: automatic, CA Certificate
        CertificateCa = 2,
        //! CertificateInformation, User Certificate
        CertificateUser = 3,
        //! bool, automatic username for EAP identify (outer type)
        TunnelUsernameAutomatic = 4,
        //! QString, username for EAP identify (outer type)
        TunnelUsername = 5,
        //! bool, automatic realm for EAP identify (outer type)
        TunnelRealmAutomatic = 6,
        //! QString, realm for EAP identify (outer type)
        TunnelRealm = 7,
        //! QString, username for inner methods or for LEAP
        Username = 8,
        //! QString, password for inner methods or for LEAP
        Password = 9,
        //! QString, PAC store password
        PacStorePassword = 10,
        //! EapQtPacStoreConfig::PacStoreState (int), PAC store state
        PacStoreState = 11,
    };

public:
    explicit EapWizardPrivate(WlanWizardHelper *wizardHelper);
    ~EapWizardPrivate();
   
public: // From WlanWizardPlugin
    bool summary(WlanWizardPlugin::Summary sum, QString &item, QString &value);
    bool storeSettings();
    QString errorString(int errorCode);
    
public:
    QVariant configurations(ConfigurationId confId) const;
    void setConfigurations(ConfigurationId confId, const QVariant &value);
    EapQtConfigInterface* eapConfigurationInterface() const;
    QString eapTypeToString(int id) const;
    WlanWizardHelper *wizardHelper() const;

signals:
        
public slots:

protected:

protected slots:

private:
    Q_DISABLE_COPY(EapWizardPrivate)
    void createPages();
    bool hasInnerMethod() const;
    void handleTlsMethodsSettings(
        EapQtConfig &eapConf, 
        EapQtPluginHandle &outerType);
    
    bool handleEapFastSettings(EapQtConfig &eapConf);
    
    void handleEapAkaSimSettings(EapQtConfig &eapConf);
    
    void handleLeapSettings(EapQtConfig &eapConf);
    
    bool storeOuterTypeSettings(EapQtPluginHandle &outerType);
    
    bool storeInnerTypeSettings(EapQtPluginHandle &outerType);
    
private slots:
    
private: // data
    // NOT owned pointers
    //! Wizard framework services (WLAN Wizard Plugin API)
    WlanWizardHelper *mWizardHelper;
    
    // Owned pointers
    //! Translator
    QScopedPointer<HbTranslator> mTranslator;
    //! EAP configuration and services (EAP Qt Configuration Interface API)
    QScopedPointer<EapQtConfigInterface> mEapConfIf;
    //! Internal container for EAP specific settings
    QHash<ConfigurationId, QVariant> mConfigurations;
    
    // Friend classes
    friend class TestWlanWizardContext;
};

/*! @} */

#endif