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