wlanutilities/wlanwizard/src/wlanwizard.cpp
author hgs
Mon, 24 May 2010 21:11:39 +0300
changeset 31 e8f4211554fb
child 53 bdc64aa9b954
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: API.
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
// System includes
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// User includes
hgs
parents:
diff changeset
    22
#include "wlanwizard.h"
hgs
parents:
diff changeset
    23
#include "wlanwizard_p.h"
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
/*!
hgs
parents:
diff changeset
    26
   \class WlanWizard
hgs
parents:
diff changeset
    27
   \brief Interface of WLAN Wizard.
hgs
parents:
diff changeset
    28
   
hgs
parents:
diff changeset
    29
   Example usage:
hgs
parents:
diff changeset
    30
   \code
hgs
parents:
diff changeset
    31
   MyClass::createWizard() {
hgs
parents:
diff changeset
    32
       mWizard = new WlanWizard(mainWindow());
hgs
parents:
diff changeset
    33
       connect(
hgs
parents:
diff changeset
    34
           mWizard, SIGNAL(finished(int, bool)), 
hgs
parents:
diff changeset
    35
           this, SLOT(finished(int, bool)));
hgs
parents:
diff changeset
    36
       connect(mWizard, SIGNAL(cancelled()), this, SLOT(cancelled()));
hgs
parents:
diff changeset
    37
   
hgs
parents:
diff changeset
    38
       // If client know the parameters for WLAN Access Point call following
hgs
parents:
diff changeset
    39
       mWizard->setParameters(
hgs
parents:
diff changeset
    40
           "MySSid", 
hgs
parents:
diff changeset
    41
           CmManagerShim::Infra, 
hgs
parents:
diff changeset
    42
           CmManagerShim::WlanSecModeWpa,
hgs
parents:
diff changeset
    43
           true,    // WPA-PSK
hgs
parents:
diff changeset
    44
           false,   // Non-Hidden
hgs
parents:
diff changeset
    45
           false ); // Non-Wifi Protected Setup  
hgs
parents:
diff changeset
    46
    
hgs
parents:
diff changeset
    47
       // and execute wizard
hgs
parents:
diff changeset
    48
       mWizard->show();
hgs
parents:
diff changeset
    49
   }
hgs
parents:
diff changeset
    50
   
hgs
parents:
diff changeset
    51
   void MyClass::finished(int iapId, bool connected) {
hgs
parents:
diff changeset
    52
       // User has successfully created WLAN IAP with the wizard. 
hgs
parents:
diff changeset
    53
       
hgs
parents:
diff changeset
    54
       // if connected equals to true, wizard has established connection to it
hgs
parents:
diff changeset
    55
       // now the client needs to connect also to given IAP Id to keep the
hgs
parents:
diff changeset
    56
       // connection open. 
hgs
parents:
diff changeset
    57
       // see WlanQtUtils or RConnection.
hgs
parents:
diff changeset
    58
       
hgs
parents:
diff changeset
    59
       // Delete wizard. Do not delete in this call stack since this call has 
hgs
parents:
diff changeset
    60
       // been done from the context of the wizards call stack.
hgs
parents:
diff changeset
    61
       mWizard->deleteLater();
hgs
parents:
diff changeset
    62
       mWizard = NULL;
hgs
parents:
diff changeset
    63
   }  
hgs
parents:
diff changeset
    64
   
hgs
parents:
diff changeset
    65
   void MyClass::cancelled() {
hgs
parents:
diff changeset
    66
       // wizard operation was cancelled by user, iap has not been created
hgs
parents:
diff changeset
    67
       // and WLAN connection is not established
hgs
parents:
diff changeset
    68
 
hgs
parents:
diff changeset
    69
       // Delete wizard. Do not delete in this call stack since this call has 
hgs
parents:
diff changeset
    70
       // been done from the context of the wizards call stack.      
hgs
parents:
diff changeset
    71
       mWizard->deleteLater();
hgs
parents:
diff changeset
    72
       mWizard = NULL;
hgs
parents:
diff changeset
    73
   }
hgs
parents:
diff changeset
    74
   \endcode
hgs
parents:
diff changeset
    75
     
hgs
parents:
diff changeset
    76
   Implements wizard based on wizard pattern.
hgs
parents:
diff changeset
    77
 */
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
/*!
hgs
parents:
diff changeset
    80
   \fn void WlanWizard::cancelled()
hgs
parents:
diff changeset
    81
   This signal is emitted when the execution of wizard has been cancelled.
hgs
parents:
diff changeset
    82
 */
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
/*!
hgs
parents:
diff changeset
    85
   \fn void WlanWizard::finished(int iapId, bool connected)
hgs
parents:
diff changeset
    86
   This signal is emitted when the execution of wizard has been finished
hgs
parents:
diff changeset
    87
   succesfully.
hgs
parents:
diff changeset
    88
   
hgs
parents:
diff changeset
    89
   @param iapId IAP ID that has been created.
hgs
parents:
diff changeset
    90
   @param connected true if the connection to wlan has been established.
hgs
parents:
diff changeset
    91
 */
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
// External function prototypes
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
// Local constants
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
// ======== LOCAL FUNCTIONS ========
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
/*!
hgs
parents:
diff changeset
   103
   Constructor of WLAN Wizard.
hgs
parents:
diff changeset
   104
   
hgs
parents:
diff changeset
   105
   @param [in] mainWindow HbMainWindow to where the wizard is going to be executed.
hgs
parents:
diff changeset
   106
 */
hgs
parents:
diff changeset
   107
WlanWizard::WlanWizard(HbMainWindow *mainWindow) :
hgs
parents:
diff changeset
   108
    d_ptr(new WlanWizardPrivate(this, mainWindow))
hgs
parents:
diff changeset
   109
{
hgs
parents:
diff changeset
   110
}
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
/*!
hgs
parents:
diff changeset
   113
   Destructor.
hgs
parents:
diff changeset
   114
 */
hgs
parents:
diff changeset
   115
WlanWizard::~WlanWizard()
hgs
parents:
diff changeset
   116
{
hgs
parents:
diff changeset
   117
    delete d_ptr;
hgs
parents:
diff changeset
   118
}
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
/*!
hgs
parents:
diff changeset
   121
   Client can set the known WLAN Access Point configurations to speed up wizard
hgs
parents:
diff changeset
   122
   processing and make it easier for end user.
hgs
parents:
diff changeset
   123
   
hgs
parents:
diff changeset
   124
   Values for network mode (CmManagerShim::WlanConnectionMode) and security mode 
hgs
parents:
diff changeset
   125
   (CmManagerShim::WlanSecMode). 
hgs
parents:
diff changeset
   126
   
hgs
parents:
diff changeset
   127
   Supported configuration sets: 
hgs
parents:
diff changeset
   128
   - Open: \a ssid \a networkMode \a securityMode 
hgs
parents:
diff changeset
   129
   - WEP: \a ssid \a networkMode \a securityMode
hgs
parents:
diff changeset
   130
   - WPA (2) with EAP: \a ssid \a networkMode \a securityMode \a usePsk (false)
hgs
parents:
diff changeset
   131
   - WPA (2) with PSK: \a ssid \a networkMode \a securityMode \a usePsk (true)
hgs
parents:
diff changeset
   132
   - 802.1x: \a ssid \a networkMode \a securityMode
hgs
parents:
diff changeset
   133
   
hgs
parents:
diff changeset
   134
   Hidden WLAN:
hgs
parents:
diff changeset
   135
   \a hidden can be used with \a networkMode CmManagerShim::Infra 
hgs
parents:
diff changeset
   136
   
hgs
parents:
diff changeset
   137
   Wifi Protected Setup
hgs
parents:
diff changeset
   138
   \a wps can be used with Open, WEP and WPA (2) with PSK.
hgs
parents:
diff changeset
   139
   
hgs
parents:
diff changeset
   140
   @param [in] ssid The name of WLAN network (ssid), max length 32 characters.
hgs
parents:
diff changeset
   141
   @param [in] networkMode Network mode of known access point
hgs
parents:
diff changeset
   142
   @param [in] securityMode Security mode of known access point
hgs
parents:
diff changeset
   143
   @param [in] usePsk used only with WPA or WPA2 \a securityMode
hgs
parents:
diff changeset
   144
   @param [in] hidden if true WLAN is hidden.
hgs
parents:
diff changeset
   145
   @param [in] wps is Wifi Protected Setup supported?
hgs
parents:
diff changeset
   146
 */
hgs
parents:
diff changeset
   147
void WlanWizard::setParameters(
hgs
parents:
diff changeset
   148
    const QString &ssid, 
hgs
parents:
diff changeset
   149
    int networkMode, 
hgs
parents:
diff changeset
   150
    int securityMode, 
hgs
parents:
diff changeset
   151
    bool usePsk,
hgs
parents:
diff changeset
   152
    bool hidden, 
hgs
parents:
diff changeset
   153
    bool wps)
hgs
parents:
diff changeset
   154
{
hgs
parents:
diff changeset
   155
    d_ptr->setParameters(ssid, networkMode, securityMode, usePsk, hidden, wps);
hgs
parents:
diff changeset
   156
}
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
/*!
hgs
parents:
diff changeset
   159
   Executes the wizard and shows the first page.
hgs
parents:
diff changeset
   160
   
hgs
parents:
diff changeset
   161
   @note it is not allowed to call this method twice with same instance.
hgs
parents:
diff changeset
   162
   
hgs
parents:
diff changeset
   163
   Possible signals:
hgs
parents:
diff changeset
   164
   - finished(int, bool): called after wizard has successfully completed
hgs
parents:
diff changeset
   165
   - cancelled(): user has cancelled the wizard operations.
hgs
parents:
diff changeset
   166
   
hgs
parents:
diff changeset
   167
   First page for the wizard is SSID (WLAN network name) query or if 
hgs
parents:
diff changeset
   168
   setParameters() has been called the first page is determined based on the
hgs
parents:
diff changeset
   169
   given configuration combination. 
hgs
parents:
diff changeset
   170
 */
hgs
parents:
diff changeset
   171
void WlanWizard::show()
hgs
parents:
diff changeset
   172
{
hgs
parents:
diff changeset
   173
    d_ptr->show();
hgs
parents:
diff changeset
   174
}