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