wlanutilities/wlanwizard/inc/wlanwizard_p.h
author hgs
Thu, 16 Sep 2010 12:52:33 +0300
changeset 61 e1d68407ed06
parent 60 822a45792fdd
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
hgs
parents:
diff changeset
     1
/*
39
hgs
parents: 31
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents: 31
diff changeset
     3
* All rights reserved.
hgs
parents: 31
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents: 31
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents: 31
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents: 31
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents: 31
diff changeset
     8
*
hgs
parents: 31
diff changeset
     9
* Initial Contributors:
hgs
parents: 31
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents: 31
diff changeset
    11
*
hgs
parents: 31
diff changeset
    12
* Contributors:
hgs
parents: 31
diff changeset
    13
*
hgs
parents: 31
diff changeset
    14
* Description: 
hgs
parents: 31
diff changeset
    15
* WLAN Wizard: Private implementation.
hgs
parents: 31
diff changeset
    16
*/
31
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef WLANWIZARD_P_H
hgs
parents:
diff changeset
    19
#define WLANWIZARD_P_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// System includes
hgs
parents:
diff changeset
    22
#include <QObject>
hgs
parents:
diff changeset
    23
#include <QHash>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// User includes
hgs
parents:
diff changeset
    26
#include "wlanwizardhelper.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// Forward declarations
hgs
parents:
diff changeset
    29
class QTimer;
hgs
parents:
diff changeset
    30
class HbTranslator;
hgs
parents:
diff changeset
    31
class HbStackedWidget;
hgs
parents:
diff changeset
    32
class HbWidget;
hgs
parents:
diff changeset
    33
class HbLabel;
hgs
parents:
diff changeset
    34
class HbDialog;
hgs
parents:
diff changeset
    35
class HbAction;
hgs
parents:
diff changeset
    36
class HbDocumentLoader;
hgs
parents:
diff changeset
    37
class HbMainWindow;
hgs
parents:
diff changeset
    38
class WlanQtUtils;
hgs
parents:
diff changeset
    39
class WlanWizardPlugin;
hgs
parents:
diff changeset
    40
class WlanWizardPage;
hgs
parents:
diff changeset
    41
class WlanWizard;
hgs
parents:
diff changeset
    42
class EapWizard;
hgs
parents:
diff changeset
    43
class WpsWizard;
hgs
parents:
diff changeset
    44
39
hgs
parents: 31
diff changeset
    45
class TestWlanWizardContext;
31
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
// External data types
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
// Constants
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
/*!
hgs
parents:
diff changeset
    52
   @addtogroup group_wlan_wizard
hgs
parents:
diff changeset
    53
   @{   
hgs
parents:
diff changeset
    54
 */
hgs
parents:
diff changeset
    55
class WlanWizardPrivate: public QObject, public WlanWizardHelper
hgs
parents:
diff changeset
    56
{
hgs
parents:
diff changeset
    57
	Q_OBJECT
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
public:
hgs
parents:
diff changeset
    60
    // API implementation
hgs
parents:
diff changeset
    61
    WlanWizardPrivate(WlanWizard* wizard, HbMainWindow *mainWindow);
hgs
parents:
diff changeset
    62
    virtual ~WlanWizardPrivate();
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    void setParameters(
60
hgs
parents: 53
diff changeset
    65
        const QString &name,
hgs
parents: 53
diff changeset
    66
        const QByteArray &ssid,
31
hgs
parents:
diff changeset
    67
        int networkMode, 
hgs
parents:
diff changeset
    68
        int securityMode,
hgs
parents:
diff changeset
    69
        bool usePsk, 
hgs
parents:
diff changeset
    70
        bool wps);
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
    void show();
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
public:
hgs
parents:
diff changeset
    75
    // For WLAN Wizard pages
hgs
parents:
diff changeset
    76
    int getNextPageId(
60
hgs
parents: 53
diff changeset
    77
        const QString &name,
hgs
parents: 53
diff changeset
    78
        const QByteArray &ssid,
31
hgs
parents:
diff changeset
    79
        int networkMode, 
hgs
parents:
diff changeset
    80
        int securityMode,
hgs
parents:
diff changeset
    81
        bool usePsk, 
hgs
parents:
diff changeset
    82
        bool hidden, 
hgs
parents:
diff changeset
    83
        bool wps);
hgs
parents:
diff changeset
    84
    
hgs
parents:
diff changeset
    85
    WlanQtUtils* wlanQtUtils() const;
hgs
parents:
diff changeset
    86
    WlanWizardPlugin* wlanWizardPlugin() const;
hgs
parents:
diff changeset
    87
    bool isEapEnabled() const;
hgs
parents:
diff changeset
    88
    bool handleIap();
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
public:
hgs
parents:
diff changeset
    91
    // from WlanWizardHelper, for all wizards
hgs
parents:
diff changeset
    92
    virtual QVariant configuration(ConfigurationId confId) const;
hgs
parents:
diff changeset
    93
    virtual void setConfiguration(ConfigurationId confId, const QVariant &value);
39
hgs
parents: 31
diff changeset
    94
    virtual void clearConfiguration(ConfigurationId confId);
hgs
parents: 31
diff changeset
    95
    virtual bool configurationExists(ConfigurationId confId);
31
hgs
parents:
diff changeset
    96
    virtual void enableNextButton(bool enable);
hgs
parents:
diff changeset
    97
    virtual void addPage(int pageId, WlanWizardPage *page);
hgs
parents:
diff changeset
    98
    virtual void nextPage();
hgs
parents:
diff changeset
    99
    virtual HbMainWindow* mainWindow() const;
hgs
parents:
diff changeset
   100
    virtual bool isCurrentPage(const HbWidget *page) const;
hgs
parents:
diff changeset
   101
    virtual int nextPageId(bool useWps);
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
signals:
hgs
parents:
diff changeset
   104
    
hgs
parents:
diff changeset
   105
public slots:
39
hgs
parents: 31
diff changeset
   106
hgs
parents: 31
diff changeset
   107
    void cancelTriggered();
31
hgs
parents:
diff changeset
   108
    
hgs
parents:
diff changeset
   109
protected:
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
protected slots:
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
private:
hgs
parents:
diff changeset
   114
    Q_DISABLE_COPY(WlanWizardPrivate)
hgs
parents:
diff changeset
   115
    static const int PageTimeout = 1500;
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
private slots:
hgs
parents:
diff changeset
   118
    void previousTriggered();
hgs
parents:
diff changeset
   119
    void nextTriggered();
hgs
parents:
diff changeset
   120
    void finishTriggered();
hgs
parents:
diff changeset
   121
    void onTimeOut();
hgs
parents:
diff changeset
   122
    void startPageOperation();
hgs
parents:
diff changeset
   123
    
hgs
parents:
diff changeset
   124
private:
hgs
parents:
diff changeset
   125
    void toNextPage();
hgs
parents:
diff changeset
   126
    void showPage(int pageId, bool removeFromStack);
hgs
parents:
diff changeset
   127
    void createPages();
hgs
parents:
diff changeset
   128
    void closeViews();
hgs
parents:
diff changeset
   129
    void updateFrame(int pageId);
hgs
parents:
diff changeset
   130
    void loadDocml();
61
hgs
parents: 60
diff changeset
   131
    void connectActions();
31
hgs
parents:
diff changeset
   132
    void disconnectActions();
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
private:
hgs
parents:
diff changeset
   135
    // Not owned pointers
hgs
parents:
diff changeset
   136
    //! Pointer to Wizard API class, needed to send signals
hgs
parents:
diff changeset
   137
    WlanWizard *q_ptr;
hgs
parents:
diff changeset
   138
    //! Pointer to mainwindow from where the wizard was launched
hgs
parents:
diff changeset
   139
    HbMainWindow *mMainWindow;
hgs
parents:
diff changeset
   140
    //! used for timer protected pages (progressbar)
hgs
parents:
diff changeset
   141
    QTimer *mPageTimer;
hgs
parents:
diff changeset
   142
    //! Wizard heading aka HbDialog::heading
hgs
parents:
diff changeset
   143
    HbLabel *mTitle;
hgs
parents:
diff changeset
   144
    //! Toolbar action: Next
hgs
parents:
diff changeset
   145
    HbAction *mActionNext;
hgs
parents:
diff changeset
   146
    //! Toolbar action: Previous
hgs
parents:
diff changeset
   147
    HbAction *mActionPrevious;
hgs
parents:
diff changeset
   148
    //! Toolbar action: Finish
hgs
parents:
diff changeset
   149
    HbAction *mActionFinish;
hgs
parents:
diff changeset
   150
    //! Toolbar action: Cancel
hgs
parents:
diff changeset
   151
    HbAction *mActionCancel;
hgs
parents:
diff changeset
   152
    /*! acts as HbDialog::contentWidget. When next is clicked a wizard page
hgs
parents:
diff changeset
   153
       (HbWidget) is added to the stack. When prev is pressed the current
hgs
parents:
diff changeset
   154
        item is removed from the stack. The previous pages are always in the
hgs
parents:
diff changeset
   155
        stacked widget
hgs
parents:
diff changeset
   156
     */
hgs
parents:
diff changeset
   157
    HbStackedWidget *mStackedWidget;
hgs
parents:
diff changeset
   158
    
hgs
parents:
diff changeset
   159
    // Owned pointers
hgs
parents:
diff changeset
   160
    
hgs
parents:
diff changeset
   161
    //! Dialog, from docml
hgs
parents:
diff changeset
   162
    QScopedPointer<HbDialog> mDialog;
hgs
parents:
diff changeset
   163
    //! Translator
hgs
parents:
diff changeset
   164
    QScopedPointer<HbTranslator> mTranslator;
hgs
parents:
diff changeset
   165
    //! Provides services like: create/update iap, scan, connect, disconnect
hgs
parents:
diff changeset
   166
    QScopedPointer<WlanQtUtils> mWlanQtUtils;
hgs
parents:
diff changeset
   167
    //! Document loader for docml
hgs
parents:
diff changeset
   168
    QScopedPointer<HbDocumentLoader> mDocLoader;
hgs
parents:
diff changeset
   169
    //! Extensible Authentication Protocol (EAP) Wizard plugin, instantiated
hgs
parents:
diff changeset
   170
    //! when required
39
hgs
parents: 31
diff changeset
   171
    QScopedPointer<EapWizard> mEapWizard;
31
hgs
parents:
diff changeset
   172
    //! Wifi Protected Setup (WPS) Wizard plugin, instantiated when required
39
hgs
parents: 31
diff changeset
   173
    QScopedPointer<WpsWizard> mWpsWizard;
31
hgs
parents:
diff changeset
   174
    //! Maps UI object of page into a control object
hgs
parents:
diff changeset
   175
    QHash<HbWidget* , WlanWizardPage *> mPageMapper;
hgs
parents:
diff changeset
   176
    //! Maps page id to control object of page.
hgs
parents:
diff changeset
   177
    QHash<int, WlanWizardPage *> mPages;
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
    //! Holds wlan wizard configurations. 
hgs
parents:
diff changeset
   180
    QHash<ConfigurationId, QVariant> mConfigurations;
hgs
parents:
diff changeset
   181
    //! holds the page id which is displayed when WlanWizard::show() is called
hgs
parents:
diff changeset
   182
    int mFirstPageId;
hgs
parents:
diff changeset
   183
    //! Flag to keep track if movement to next page is allowed when timer is used
hgs
parents:
diff changeset
   184
    bool mPageFinished;
hgs
parents:
diff changeset
   185
    //! flag to indicate that wizard has been closed via either cancel or finish
hgs
parents:
diff changeset
   186
    bool mClosed;
hgs
parents:
diff changeset
   187
    
hgs
parents:
diff changeset
   188
    // Friend classes
hgs
parents:
diff changeset
   189
    friend class WlanWizard;
39
hgs
parents: 31
diff changeset
   190
    friend class TestWlanWizardContext;
31
hgs
parents:
diff changeset
   191
};
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
/*! @} */
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
#endif // WLANWIZARD_P_H