wlanutilities/wlanwizard/inc/wlanwizard_p.h
author hgs
Thu, 24 Jun 2010 10:49:51 +0300
changeset 39 7b3e49e4608a
parent 31 e8f4211554fb
child 53 bdc64aa9b954
permissions -rw-r--r--
201025
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(
hgs
parents:
diff changeset
    65
        const QString &ssid, 
hgs
parents:
diff changeset
    66
        int networkMode, 
hgs
parents:
diff changeset
    67
        int securityMode,
hgs
parents:
diff changeset
    68
        bool usePsk, 
hgs
parents:
diff changeset
    69
        bool hidden, 
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(
hgs
parents:
diff changeset
    77
        const QString &ssid, 
hgs
parents:
diff changeset
    78
        int networkMode, 
hgs
parents:
diff changeset
    79
        int securityMode,
hgs
parents:
diff changeset
    80
        bool usePsk, 
hgs
parents:
diff changeset
    81
        bool hidden, 
hgs
parents:
diff changeset
    82
        bool wps);
hgs
parents:
diff changeset
    83
    
hgs
parents:
diff changeset
    84
    WlanQtUtils* wlanQtUtils() const;
hgs
parents:
diff changeset
    85
    WlanWizardPlugin* wlanWizardPlugin() const;
hgs
parents:
diff changeset
    86
    bool isEapEnabled() const;
hgs
parents:
diff changeset
    87
    bool handleIap();
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
public:
hgs
parents:
diff changeset
    90
    // from WlanWizardHelper, for all wizards
hgs
parents:
diff changeset
    91
    virtual QVariant configuration(ConfigurationId confId) const;
hgs
parents:
diff changeset
    92
    virtual void setConfiguration(ConfigurationId confId, const QVariant &value);
39
hgs
parents: 31
diff changeset
    93
    virtual void clearConfiguration(ConfigurationId confId);
hgs
parents: 31
diff changeset
    94
    virtual bool configurationExists(ConfigurationId confId);
31
hgs
parents:
diff changeset
    95
    virtual void enableNextButton(bool enable);
hgs
parents:
diff changeset
    96
    virtual void addPage(int pageId, WlanWizardPage *page);
hgs
parents:
diff changeset
    97
    virtual void nextPage();
hgs
parents:
diff changeset
    98
    virtual HbMainWindow* mainWindow() const;
hgs
parents:
diff changeset
    99
    virtual bool isCurrentPage(const HbWidget *page) const;
hgs
parents:
diff changeset
   100
    virtual int nextPageId(bool useWps);
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
signals:
hgs
parents:
diff changeset
   103
    
hgs
parents:
diff changeset
   104
public slots:
39
hgs
parents: 31
diff changeset
   105
hgs
parents: 31
diff changeset
   106
    void cancelTriggered();
31
hgs
parents:
diff changeset
   107
    
hgs
parents:
diff changeset
   108
protected:
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
protected slots:
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
private:
hgs
parents:
diff changeset
   113
    Q_DISABLE_COPY(WlanWizardPrivate)
hgs
parents:
diff changeset
   114
    static const int PageTimeout = 1500;
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
private slots:
hgs
parents:
diff changeset
   117
    void previousTriggered();
hgs
parents:
diff changeset
   118
    void nextTriggered();
hgs
parents:
diff changeset
   119
    void finishTriggered();
hgs
parents:
diff changeset
   120
    void onTimeOut();
hgs
parents:
diff changeset
   121
    void startPageOperation();
hgs
parents:
diff changeset
   122
    
hgs
parents:
diff changeset
   123
private:
hgs
parents:
diff changeset
   124
    void toNextPage();
hgs
parents:
diff changeset
   125
    void showPage(int pageId, bool removeFromStack);
hgs
parents:
diff changeset
   126
    void createPages();
hgs
parents:
diff changeset
   127
    void closeViews();
hgs
parents:
diff changeset
   128
    void updateFrame(int pageId);
hgs
parents:
diff changeset
   129
    void loadDocml();
hgs
parents:
diff changeset
   130
    void disconnectActions();
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
private:
hgs
parents:
diff changeset
   133
    // Not owned pointers
hgs
parents:
diff changeset
   134
    //! Pointer to Wizard API class, needed to send signals
hgs
parents:
diff changeset
   135
    WlanWizard *q_ptr;
hgs
parents:
diff changeset
   136
    //! Pointer to mainwindow from where the wizard was launched
hgs
parents:
diff changeset
   137
    HbMainWindow *mMainWindow;
hgs
parents:
diff changeset
   138
    //! used for timer protected pages (progressbar)
hgs
parents:
diff changeset
   139
    QTimer *mPageTimer;
hgs
parents:
diff changeset
   140
    //! Wizard heading aka HbDialog::heading
hgs
parents:
diff changeset
   141
    HbLabel *mTitle;
hgs
parents:
diff changeset
   142
    //! Toolbar action: Next
hgs
parents:
diff changeset
   143
    HbAction *mActionNext;
hgs
parents:
diff changeset
   144
    //! Toolbar action: Previous
hgs
parents:
diff changeset
   145
    HbAction *mActionPrevious;
hgs
parents:
diff changeset
   146
    //! Toolbar action: Finish
hgs
parents:
diff changeset
   147
    HbAction *mActionFinish;
hgs
parents:
diff changeset
   148
    //! Toolbar action: Cancel
hgs
parents:
diff changeset
   149
    HbAction *mActionCancel;
hgs
parents:
diff changeset
   150
    /*! acts as HbDialog::contentWidget. When next is clicked a wizard page
hgs
parents:
diff changeset
   151
       (HbWidget) is added to the stack. When prev is pressed the current
hgs
parents:
diff changeset
   152
        item is removed from the stack. The previous pages are always in the
hgs
parents:
diff changeset
   153
        stacked widget
hgs
parents:
diff changeset
   154
     */
hgs
parents:
diff changeset
   155
    HbStackedWidget *mStackedWidget;
hgs
parents:
diff changeset
   156
    
hgs
parents:
diff changeset
   157
    // Owned pointers
hgs
parents:
diff changeset
   158
    
hgs
parents:
diff changeset
   159
    //! Dialog, from docml
hgs
parents:
diff changeset
   160
    QScopedPointer<HbDialog> mDialog;
hgs
parents:
diff changeset
   161
    //! Translator
hgs
parents:
diff changeset
   162
    QScopedPointer<HbTranslator> mTranslator;
hgs
parents:
diff changeset
   163
    //! Provides services like: create/update iap, scan, connect, disconnect
hgs
parents:
diff changeset
   164
    QScopedPointer<WlanQtUtils> mWlanQtUtils;
hgs
parents:
diff changeset
   165
    //! Document loader for docml
hgs
parents:
diff changeset
   166
    QScopedPointer<HbDocumentLoader> mDocLoader;
hgs
parents:
diff changeset
   167
    //! Extensible Authentication Protocol (EAP) Wizard plugin, instantiated
hgs
parents:
diff changeset
   168
    //! when required
39
hgs
parents: 31
diff changeset
   169
    QScopedPointer<EapWizard> mEapWizard;
31
hgs
parents:
diff changeset
   170
    //! Wifi Protected Setup (WPS) Wizard plugin, instantiated when required
39
hgs
parents: 31
diff changeset
   171
    QScopedPointer<WpsWizard> mWpsWizard;
31
hgs
parents:
diff changeset
   172
    //! Maps UI object of page into a control object
hgs
parents:
diff changeset
   173
    QHash<HbWidget* , WlanWizardPage *> mPageMapper;
hgs
parents:
diff changeset
   174
    //! Maps page id to control object of page.
hgs
parents:
diff changeset
   175
    QHash<int, WlanWizardPage *> mPages;
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
    //! Holds wlan wizard configurations. 
hgs
parents:
diff changeset
   178
    QHash<ConfigurationId, QVariant> mConfigurations;
hgs
parents:
diff changeset
   179
    //! holds the page id which is displayed when WlanWizard::show() is called
hgs
parents:
diff changeset
   180
    int mFirstPageId;
hgs
parents:
diff changeset
   181
    //! Flag to keep track if movement to next page is allowed when timer is used
hgs
parents:
diff changeset
   182
    bool mPageFinished;
hgs
parents:
diff changeset
   183
    //! flag to indicate that wizard has been closed via either cancel or finish
hgs
parents:
diff changeset
   184
    bool mClosed;
hgs
parents:
diff changeset
   185
    
hgs
parents:
diff changeset
   186
    // Friend classes
hgs
parents:
diff changeset
   187
    friend class WlanWizard;
39
hgs
parents: 31
diff changeset
   188
    friend class TestWlanWizardContext;
31
hgs
parents:
diff changeset
   189
};
hgs
parents:
diff changeset
   190
hgs
parents:
diff changeset
   191
/*! @} */
hgs
parents:
diff changeset
   192
hgs
parents:
diff changeset
   193
#endif // WLANWIZARD_P_H