wlanutilities/wlanwizard/src/wlanwizard_p.cpp
branchRCL_3
changeset 25 f28ada11abbf
parent 24 63be7eb3fc78
--- a/wlanutilities/wlanwizard/src/wlanwizard_p.cpp	Tue Aug 31 16:18:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1300 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-* WLAN Wizard: Private implementation.
-*/
-
-// System includes
-
-#include <QApplication>
-#include <QGraphicsWidget>
-#include <QTimer>
-#include <QDebug>
-
-#include <HbTranslator>
-#include <HbDocumentLoader>
-#include <HbMainWindow>
-#include <HbDialog>
-#include <HbStackedWidget>
-#include <HbLabel>
-#include <HbAction>
-#include <HbStyleLoader>
-
-// User includes
-
-#include "eapwizard.h"
-#include "wpswizard.h"
-#include "wlanqtutils.h"
-#include "wlanqtutilsap.h"
-#include "wlanwizardplugin.h"
-#include "wlanwizard.h"
-#include "wlanwizard_p.h"
-#include "wlanwizardutils.h"
-#include "wlanwizardpagekeyquery.h"
-#include "wlanwizardpagesummary.h"
-#include "wlanwizardpageprocessingsettings.h"
-#include "wlanwizardpagegenericerror.h"
-#include "wlanwizardpagessid.h"
-#include "wlanwizardpagenetworkmode.h"
-#include "wlanwizardpagescanning.h"
-#include "wlanwizardpagesecuritymode.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "wlanwizard_pTraces.h"
-#endif
-
-/*!
-   \class WlanWizardPrivate
-   \brief Private implementation of WlanWizard. Implements the interface
-   WlanWizardHelper to the wizard plugins. 
- */
-
-// External function prototypes
-
-// Local constants
-
-/*!
-   \var PageTimeout Timeout for timer protected pages. 1.5sec
- */
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
-   Constructor of private implementation.
-   
-   @param [in] wizard Pointer to the API class.
-   @param [in] mainWindow pointer to mainwindow.
- */
-WlanWizardPrivate::WlanWizardPrivate(
-    WlanWizard* wizard, 
-    HbMainWindow *mainWindow) :
-    QObject(wizard),
-    q_ptr(wizard), 
-    mMainWindow(mainWindow), 
-    mPageTimer(new QTimer(this)),
-    mTitle(NULL),
-    mActionNext(NULL),
-    mActionPrevious(NULL),
-    mActionFinish(NULL),
-    mActionCancel(NULL),
-    mStackedWidget(NULL),
-    mDialog(NULL),
-    mTranslator(new HbTranslator("wlanwizard")),
-    mWlanQtUtils(new WlanQtUtils()),
-    mDocLoader(new HbDocumentLoader(mainWindow)),
-    mEapWizard(NULL), 
-    mWpsWizard(NULL), 
-    mFirstPageId(WlanWizardPageInternal::PageNone),
-    mPageFinished(false),
-    mClosed(false)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_WLANWIZARDPRIVATE_ENTRY);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_WLANWIZARDPRIVATE,
-        "WlanWizardPrivate::WlanWizardPrivate;this=%x", 
-        this);
-    
-    // Set initial values for configurations
-    setConfiguration(ConfIapId, WlanQtUtils::IapIdNone);
-    setConfiguration(ConfConnected, false);
-    setConfiguration(ConfWlanScanSSID, false);
-    setConfiguration(ConfProcessSettings, false);
-    setConfiguration(ConfIctStatus, false);
-
-    // Initialize timer for timer protected pages
-    mPageTimer->setSingleShot(true);
-
-    // Load the wizard frame (title, content, actions) from docml 
-    loadDocml();
-
-    // Creates the control object of the wlan wizard pages. 
-    createPages();
-
-    // EAP Wizard will add wizard pages at construction phase using
-    // WlanWizardHelper::addPage()
-    mEapWizard.reset(new EapWizard(this) );
-
-    // WPS Wizard will add wizard pages at construction phase using
-    // WlanWizardHelper::addPage()
-    mWpsWizard.reset(new WpsWizard(this));
-
-    // First page is SSID query, unless client sets configurations via
-    // setParameters(), which decides the first page..
-    mFirstPageId = WlanWizardPageInternal::PageSsid;
-
-    OstTraceExt2(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_WLANWIZARDPRIVATE_DONE,
-        "WlanWizardPrivate::WlanWizardPrivate - done;"
-        "this=%x;mFirstPageId=%{PageIds}",
-        (unsigned)this,
-        mFirstPageId);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_WLANWIZARDPRIVATE_EXIT);
-}
-
-/*!
-   Destructor.
- */
-WlanWizardPrivate::~WlanWizardPrivate()
-{
-    OstTraceFunctionEntry0(DUP1_WLANWIZARDPRIVATE_WLANWIZARDPRIVATE_ENTRY);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_DWLANWIZARDPRIVATE,
-        "WlanWizardPrivate::~WlanWizardPrivate;this=%x",
-        this);
-    
-    // Remove wizard pages from stackedwidgets, since stackedwidget owns the
-    // objects and all pages are deleted below. 
-    while (mStackedWidget->count()) {
-        mStackedWidget->removeAt(0);
-    }
-
-    // Delete UI instances (HbWidget) of pages
-    QHashIterator<HbWidget*, WlanWizardPage*> i(mPageMapper);
-    while (i.hasNext()) {
-        i.next();
-        delete i.key();
-    }
-    mPageMapper.clear();
-
-    // WlanWizardPage objects are automatically deleted since this is the
-    // parent of the objects.
-    mPages.clear();
-    
-    // timer is cancelled/deleted automatically when the parent (this) is deleted 
-    
-    // TODO: See TSW Error: MTAA-854DK8 and loadDocml()
-    HbStyleLoader::unregisterFilePath(":/css/custom.css");
-    
-    mDialog->setAttribute( Qt::WA_DeleteOnClose, true );
-    mDialog->close();
-    // Remove the pointer from QScopedPointer to prevent double deallocation
-    mDialog.take();
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_DWLANWIZARDPRIVATE_DONE,
-        "WlanWizardPrivate::~WlanWizardPrivate-Done;this=%x",
-        this);
-    
-    OstTraceFunctionExit0(DUP1_WLANWIZARDPRIVATE_WLANWIZARDPRIVATE_EXIT);
-}
-
-/*!
-   See WlanWizard::setParameters().
- */
-void WlanWizardPrivate::setParameters(
-    const QString &ssid,
-    int networkMode,
-    int securityMode, 
-    bool usePsk,
-    bool wps)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_SETPARAMETERS_ENTRY);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_SETPARAMETERS, 
-        "WlanWizardPrivate::setParameters;this=%x", 
-        this);
-    
-    mFirstPageId = getNextPageId(
-        ssid,
-        networkMode,
-        securityMode,
-        usePsk,
-        false,
-        wps);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_SETPARAMETERS_DONE, 
-        "WlanWizardPrivate::setParameters - Done;this=%x", 
-        this);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_SETPARAMETERS_EXIT);
-}
-
-/*!
-   See WlanWizard::show().
- */
-void WlanWizardPrivate::show()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_SHOW_ENTRY);
-    
-    OstTraceExt2(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_SHOW,
-        "WlanWizardPrivate::show;this=%x;mFirstPageId=%{PageIds}", 
-        (unsigned)this,
-        mFirstPageId);
-    
-    Q_ASSERT(mClosed == false);
-    showPage(mFirstPageId, false);
-    mDialog->show();
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_SHOW_DONE,
-        "WlanWizardPrivate::show - Done;this=%x;",
-        (unsigned)this);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_SHOW_EXIT);
-}
-
-/*!
-   See WlanWizard::setParameters() for descriptions of parameters.
-   
-   Based on the provided parameters next page id is returned.
-   
-   @return next page id based on provided configurations.
- */
-int WlanWizardPrivate::getNextPageId(
-    const QString &ssid, 
-    int networkMode, 
-    int securityMode, 
-    bool usePsk,
-    bool hidden, 
-    bool wps)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_GETNEXTPAGEID_ENTRY);
-    
-    setConfiguration(ConfProcessSettings, true);
-    setConfiguration(ConfSsid, ssid);
-    setConfiguration(ConfNetworkMode, networkMode);
-    setConfiguration(ConfSecurityMode, securityMode);
-    setConfiguration(ConfUsePsk, usePsk);
-    setConfiguration(ConfWlanScanSSID, hidden);
-
-    OstTrace1(
-        TRACE_NORMAL,
-        WLANWIZARDPRIVATE_GETNEXTPAGEID, 
-        "WlanWizardPrivate::getNextPageId;wps=%u", 
-        wps);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_GETNEXTPAGEID_EXIT);
-    return nextPageId(wps);
-}
-
-/*!
-   Utility method for WLAN Wizard pages to query the wlanqtutils class.
-   
-   @return a valid pointer to WlanQtUtils class.
- */
-WlanQtUtils* WlanWizardPrivate::wlanQtUtils() const
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_WLANQTUTILS_ENTRY);
-    
-    Q_ASSERT(mWlanQtUtils.data());
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_WLANQTUTILS_EXIT);
-    return mWlanQtUtils.data();
-}
-
-/*!
-   Utility method for WLAN Wizard pages to query active wizard plugin object
-   
-   @return NULL in case plugin is not active.
- */ 
-WlanWizardPlugin* WlanWizardPrivate::wlanWizardPlugin() const
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_WLANWIZARDPLUGIN_ENTRY);
-    
-    WlanWizardPlugin* plugin = NULL;
-
-    if (isEapEnabled()) {
-        plugin = mEapWizard.data();
-        Q_ASSERT(plugin);
-    }
-    
-    OstTrace1(
-        TRACE_NORMAL,
-        WLANWIZARDPRIVATE_WLANWIZARDPLUGIN, 
-        "WlanWizardPrivate::wlanWizardPlugin;plugin=%x", 
-        plugin);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_WLANWIZARDPLUGIN_EXIT);
-    return plugin;
-}
-
-/*!
-   Utility method for WLAN Wizard pages to query if EAP mode is active at the
-   moment
-   
-   @return true in case EAP is currently activated.
- */
-bool WlanWizardPrivate::isEapEnabled() const
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_ISEAPENABLED_ENTRY);
-    
-    bool ret = false;
-    int secMode = configuration(ConfSecurityMode).toInt();
-
-    if (((secMode == CMManagerShim::WlanSecModeWpa || 
-          secMode == CMManagerShim::WlanSecModeWpa2) && 
-          !configuration(ConfUsePsk).toBool()) || 
-        secMode == CMManagerShim::WlanSecMode802_1x) {
-        ret = true;
-    }
-
-    OstTrace1(
-        TRACE_NORMAL,
-        WLANWIZARDPRIVATE_ISEAPENABLED, 
-        "WlanWizardPrivate::isEapEnabled;ret=%u", 
-        ret);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_ISEAPENABLED_EXIT);
-    return ret;
-}
-
-/*!
-   Creates new iap or updates existing iap.
-   
-   @return false in case IAP creation/update failed.
- */
-bool WlanWizardPrivate::handleIap()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_HANDLEIAP_ENTRY);
-    
-    OstTrace0(
-        TRACE_FLOW,
-        WLANWIZARDPRIVATE_HANDLEIAP,
-        "WlanWizardPrivate::handleIap");
-    
-    bool ret = true;
-    bool usePsk = true;
-    int securityMode = configuration(ConfSecurityMode).toInt();
-    WlanQtUtilsAp wlanAp;
-   
-    // Set default values
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPsk, QString());
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, true );
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepDefaultIndex, CMManagerShim::WepKeyIndex1 );
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey1, QString());
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey2, QString());
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey3, QString());
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey4, QString());
-    
-    // Set configuration
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdSsid, configuration(ConfSsid));
-    wlanAp.setValue(
-        WlanQtUtilsAp::ConfIdConnectionMode, 
-        configuration(ConfNetworkMode));
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdSecurityMode, securityMode);
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdHidden, false);
-    wlanAp.setValue(WlanQtUtilsAp::ConfIdWlanScanSSID, configuration(ConfWlanScanSSID));
-
-    switch (securityMode) {
-    case CMManagerShim::WlanSecModeWep:
-        wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey1, configuration(ConfKeyWep1));
-        wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey2, configuration(ConfKeyWep2));
-        wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey3, configuration(ConfKeyWep3));
-        wlanAp.setValue(WlanQtUtilsAp::ConfIdWepKey4, configuration(ConfKeyWep4));
-        wlanAp.setValue(
-            WlanQtUtilsAp::ConfIdWepDefaultIndex,
-            configuration(ConfKeyWepDefault));
-        break;
-
-    case CMManagerShim::WlanSecModeWpa:
-    case CMManagerShim::WlanSecModeWpa2:
-        usePsk = configuration(ConfUsePsk).toBool();
-        wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPskUse, usePsk);
-        if (usePsk){
-            wlanAp.setValue(WlanQtUtilsAp::ConfIdWpaPsk, configuration(ConfKeyWpa));
-        }
-        break;
-    
-    default:
-        Q_ASSERT(securityMode == CMManagerShim::WlanSecModeOpen ||
-            securityMode == CMManagerShim::WlanSecMode802_1x);
-        // No WLAN Specific configuration
-        break;
-    }
-    
-    // Create IAP if does not exists or update the existing IAP
-    int referenceId = configuration(ConfIapId).toInt();
-    if (referenceId == WlanQtUtils::IapIdNone) {
-        OstTrace0(
-            TRACE_FLOW,
-            WLANWIZARDPRIVATE_HANDLEIAP_CREATE, 
-            "WlanWizardPrivate::handleIap: Create IAP");
-        
-        referenceId = mWlanQtUtils->createIap(&wlanAp);
-        setConfiguration(ConfIapId, referenceId);
-        
-        if (referenceId == WlanQtUtils::IapIdNone) {
-            ret = false;
-        }
-    } else {
-        OstTrace0(
-            TRACE_FLOW,
-            WLANWIZARDPRIVATE_HANDLEIAP_UPDATE, 
-            "WlanWizardPrivate::handleIap: Update IAP");
-
-        ret = mWlanQtUtils->updateIap(referenceId, &wlanAp);
-    }
-   
-    if (ret) {
-        // Store Wizard plugin specific settings here.
-        WlanWizardPlugin* plugin = wlanWizardPlugin();
-        if (plugin) {
-            OstTrace0(
-                TRACE_FLOW,
-                WLANWIZARDPRIVATE_HANDLEIAP_PLUGIN, 
-                "WlanWizardPrivate::handleIap: Plugin");
-            // Plugin gets the IAP ID from configuration
-            ret = plugin->storeSettings();
-        }
-    }
-    
-    OstTrace1(
-        TRACE_FLOW,
-        WLANWIZARDPRIVATE_HANDLEIAP_DONE,
-        "WlanWizardPrivate::handleIap: Done;ret=%d",
-        ret);
-
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_HANDLEIAP_EXIT);
-    return ret;
-}
-
-/*!
-   See WlanWizardHelper::configuration().
- */
-QVariant WlanWizardPrivate::configuration(ConfigurationId confId) const
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_CONFIGURATION_ENTRY);
-    
-    Q_ASSERT(mConfigurations.contains(confId));
-
-#ifdef OST_TRACE_COMPILER_IN_USE
-    QString tmp;
-    QDebug tmpStream(&tmp);
-    tmpStream << mConfigurations[confId];
-    TPtrC16 string( tmp.utf16(), tmp.length() );
-    
-    OstTraceExt2(
-        TRACE_NORMAL,
-        WLANWIZARDPRIVATE_CONFIGURATIONS, 
-        "WlanWizardPrivate::configuration;confId=%{ConfigurationId};string=%S", 
-        (uint)confId,
-        string);
-#endif
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_CONFIGURATION_EXIT);
-    return mConfigurations[confId];
-}
-
-/*!
-   See WlanWizardHelper::setConfiguration().
- */
-void WlanWizardPrivate::setConfiguration(
-    ConfigurationId confId, 
-    const QVariant &value)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_SETCONFIGURATION_ENTRY);
-    
-#ifdef OST_TRACE_COMPILER_IN_USE
-    QString tmp;
-    QDebug tmpStream(&tmp);
-    tmpStream << value;
-    TPtrC16 string( tmp.utf16(), tmp.length() );
-    
-    OstTraceExt2(
-        TRACE_NORMAL,
-        WLANWIZARDPRIVATE_SETCONFIGURATION, 
-        "WlanWizardPrivate::setConfiguration;"
-        "confId=%{ConfigurationId};string=%S", 
-        (uint)confId,
-        string);
-#endif
-
-    mConfigurations[confId] = value;
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_SETCONFIGURATION_EXIT);
-}
-
-/*!
- * See WlanWizardHelper::clearConfiguration().
- */
-void WlanWizardPrivate::clearConfiguration(ConfigurationId confId)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_CLEARCONFIGURATION_ENTRY);
-    
-    OstTrace1(
-        TRACE_FLOW,
-        WLANWIZARDPRIVATE_CLEARCONFIGURATION,
-        "WlanWizardPrivate::clearConfiguration;confId=%{ConfigurationId}",
-        (uint)confId);
-    
-    mConfigurations.remove(confId);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_CLEARCONFIGURATION_EXIT);
-}
-
-/*!
- * See WlanWizardHelper::configurationExists().
- */
-bool WlanWizardPrivate::configurationExists(ConfigurationId confId)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_CONFIGURATIONEXISTS_ENTRY);
-    
-    OstTrace1(
-        TRACE_DUMP,
-        WLANWIZARDPRIVATE_CONFIGURATIONEXISTS,
-        "WlanWizardPrivate::configurationExists;confId=%{ConfigurationId}",
-        (uint)confId);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_CONFIGURATIONEXISTS_EXIT);
-    return mConfigurations[confId].isValid();
-}
-    
-/*!
-   See WlanWizardHelper::enableNextButton().
- */
-void WlanWizardPrivate::enableNextButton(bool enable)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_ENABLENEXTBUTTON_ENTRY);
-    
-    OstTraceExt2(
-        TRACE_FLOW,
-        WLANWIZARDPRIVATE_ENABLENEXTBUTTON,
-        "WlanWizardPrivate::enableNextButton;this=%x;enable=%x",
-        (unsigned)this,
-        (uint)enable);
-    mActionNext->setEnabled(enable);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_ENABLENEXTBUTTON_EXIT);
-}
-
-/*!
-   See WlanWizardHelper::addPage().
- */
-void WlanWizardPrivate::addPage(int pageId, WlanWizardPage *page)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_ADDPAGE_ENTRY);
-    
-    OstTraceExt3(
-        TRACE_FLOW,
-        WLANWIZARDPRIVATE_ADDPAGE, 
-        "WlanWizardPrivate::addPage;this=%x;pageId=%{PageIds};page=%x",
-        (unsigned)this,
-        pageId,
-        (uint)(page));
-
-    Q_ASSERT(!mPages.contains(pageId));
-    mPages[pageId] = page;
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_ADDPAGE_EXIT);
-}
-
-/*!
-   See WlanWizardHelper::nextPage().
- */
-void WlanWizardPrivate::nextPage()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_NEXTPAGE_ENTRY);
-    
-    OstTrace1(
-        TRACE_FLOW,
-        WLANWIZARDPRIVATE_NEXTPAGE,
-        "WlanWizardPrivate::nextPage;this=%x",
-        this);
-    
-    mPageFinished = true;
-    toNextPage();
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_NEXTPAGE_EXIT);
-}
-
-/*!
-   See WlanWizardHelper::mainWindow().
- */
-HbMainWindow* WlanWizardPrivate::mainWindow() const
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_MAINWINDOW_ENTRY);
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_MAINWINDOW_EXIT);
-    return mMainWindow;
-}
-
-/*!
-   See WlanWizardHelper::isCurrentPage().
- */
-bool WlanWizardPrivate::isCurrentPage(const HbWidget *page) const
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_ISCURRENTPAGE_ENTRY);
-    
-    bool ret = false;
-    if (mStackedWidget->currentWidget() == page) {
-        ret = true;
-    }
-    
-    OstTraceExt2(
-        TRACE_FLOW,
-        WLANWIZARDPRIVATE_ISCURRENTPAGE, 
-        "WlanWizardPrivate::isCurrentPage;page=%x;ret=%d", 
-        (uint)page,
-        ret);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_ISCURRENTPAGE_EXIT);
-    return ret;
-}
-
-/*!
-   See WlanWizardHelper::nextPageId()
- */
-int WlanWizardPrivate::nextPageId(bool useWps)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_NEXTPAGEID_ENTRY);
-    
-    int ret;
-    if (useWps) {
-        ret = WlanWizardPage::PageWpsStart;
-    } else {
-        int secMode = configuration(WlanWizardHelper::ConfSecurityMode).toInt();
-        switch (secMode) {
-        case CMManagerShim::WlanSecModeWep:
-            ret = WlanWizardPageInternal::PageKeyQuery;
-            break;
-            
-        case CMManagerShim::WlanSecModeWpa:
-        case CMManagerShim::WlanSecModeWpa2:
-            if (configuration(WlanWizardHelper::ConfUsePsk).toBool()) {
-                ret = WlanWizardPageInternal::PageKeyQuery;
-            } else {
-                ret = WlanWizardPage::PageEapStart;
-            }
-            break;
-            
-        case CMManagerShim::WlanSecMode802_1x:
-            ret = WlanWizardPage::PageEapStart;
-            break;
-            
-        default:
-            Q_ASSERT(
-                secMode == CMManagerShim::WlanSecModeOpen || 
-                secMode == CMManagerShim::WlanSecModeWapi);
-            
-            setConfiguration(ConfSecurityMode, CMManagerShim::WlanSecModeOpen);
-            ret = WlanWizardPageInternal::PageProcessSettings;
-            break;
-        }
-    }
-
-    OstTraceExt3(
-        TRACE_NORMAL,
-        WLANWIZARDPRIVATE_NEXTPAGEID,
-        "WlanWizardPrivate::nextPageId;this=%x;useWps=%x;ret=%{PageIds}",
-        (unsigned)this,
-        (TUint)(useWps),
-        ret);
-
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_NEXTPAGEID_EXIT);
-    return ret;
-}
-
-/*!
-   Called when Cancel toolbar button is pressed. In case IAP has been created
-   it will be disconnected and the IAP settings are deleted and finally the
-   wizard is closed. 
-   
-   Indicates also to the current wizard page that cancel has been pressed.
- */
-void WlanWizardPrivate::cancelTriggered()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_CANCELTRIGGERED_ENTRY);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_CANCELTRIGGERED,
-        "WlanWizardPrivate::cancelTriggered;this=%x",
-        this);
-    
-    // Disconnect receiving more signals from any actions
-    disconnectActions();
-    
-    mPageTimer->stop();
-
-    HbWidget *widget = qobject_cast<HbWidget*>(mStackedWidget->currentWidget());
-    Q_ASSERT(widget);
-    mPageMapper[widget]->cancelTriggered();
-
-    int referenceId = configuration(ConfIapId).toInt();
-    if (referenceId != WlanQtUtils::IapIdNone) {
-        // call disconnect even if
-        // - connection is not open
-        // - connection establishment is ongoing
-        mWlanQtUtils->disconnectIap(referenceId);
-        
-        // if IAP deletion fails, there is nothing we can do with it
-        mWlanQtUtils->deleteIap(referenceId);
-        setConfiguration(ConfIapId, WlanQtUtils::IapIdNone);
-    }
-    closeViews();
-    Q_ASSERT(q_ptr);
-
-    OstTrace0(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_CANCELTRIGGERED_EMIT,
-        "WlanWizardPrivate::cancelTriggered - emit cancelled()");
-    
-    emit q_ptr->cancelled();
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_CANCELTRIGGERED_DONE,
-        "WlanWizardPrivate::cancelTriggered - Done;this=%x",
-        this);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_CANCELTRIGGERED_EXIT);
-}
-
-/*!
-   Called when Previous toolbar button is pressed. Shows the previous wizard 
-   page in stacked widget and indicates wizard page that previous has been 
-   pressed.
- */
-void WlanWizardPrivate::previousTriggered()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_PREVIOUSTRIGGERED_ENTRY);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_PREVIOUSTRIGGERED,
-        "WlanWizardPrivate::previousTriggered;this=%x",
-        this);
-    
-    mPageTimer->stop();
-
-    int index = mStackedWidget->currentIndex();
-    HbWidget *widget = qobject_cast<HbWidget*>(mStackedWidget->currentWidget());
-    Q_ASSERT(widget);
-    int back = mPageMapper[widget]->previousTriggered();
-
-    // check that at least one page is left in the stack
-    Q_ASSERT( back < mStackedWidget->count());
-
-    // When a widget which is last in the stack is removed the currentindex
-    // is automatically updated.
-    for (int i = 0; i < back; ++i) {
-        mStackedWidget->removeAt(index - i);
-    }
-
-    widget = qobject_cast<HbWidget*> (mStackedWidget->currentWidget());
-    Q_ASSERT(widget);
-    WlanWizardPage* page = mPageMapper[widget];
-    Q_ASSERT(page);
-    // In error case if page (value) is not found default contructed key is 
-    // returned, in this case default value for int is 0 which means PageNone.
-    updateFrame(mPages.key(page));
-    enableNextButton(page->showPage());
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_PREVIOUSTRIGGERED_DONE,
-        "WlanWizardPrivate::previousTriggered - Done;this=%x",
-        this);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_PREVIOUSTRIGGERED_EXIT);
-}
-
-/*!
-   Next toolbar button has been pressed. Wizard framework asks from the current
-   page what should be the next page id and shows it.
- */
-void WlanWizardPrivate::nextTriggered()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_NEXTTRIGGERED_ENTRY);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_NEXTTRIGGERED,
-        "WlanWizardPrivate::nextTriggered;this=%x",
-        this);
-    
-    mPageTimer->stop();
-
-    HbWidget *widget = qobject_cast<HbWidget*>(mStackedWidget->currentWidget());
-    Q_ASSERT(widget);
-
-    bool removeFromStack;
-    int pageId = mPageMapper[widget]->nextId(removeFromStack);
-    showPage(pageId, removeFromStack);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_NEXTTRIGGERED_DONE,
-        "WlanWizardPrivate::nextTriggered - Done;this=%x",
-        this);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_NEXTTRIGGERED_EXIT);
-}
-
-/*!
-   Finish button has been pressed. Closes the wizard and sends finished()
-   signal to the client. 
- */
-void WlanWizardPrivate::finishTriggered()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_FINISHTRIGGERED_ENTRY);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_FINISHTRIGGERED,
-        "WlanWizardPrivate::finishTriggered;this=%x",
-        this);
-    
-    // Disconnect receiving more signals from any actions
-    disconnectActions();
-    
-    mPageTimer->stop();
-    closeViews();
-
-    Q_ASSERT(q_ptr);
-    emit q_ptr->finished(
-        configuration(ConfIapId).toInt(), 
-        configuration(ConfConnected).toBool());
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_FINISHTRIGGERED_DONE,
-        "WlanWizardPrivate::finishTriggered - Done;this=%x",
-        this);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_FINISHTRIGGERED_EXIT);
-}
-
-/*!
-   In case wizard page is using timer protection for the page, this is the
-   slot to handle the callback from the timer.
- */
-void WlanWizardPrivate::onTimeOut()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_ONTIMEOUT_ENTRY);
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_ONTIMEOUT,
-        "WlanWizardPrivate::onTimeOut;this=%x",
-        this);
-    
-    toNextPage();
-    
-    OstTrace1(
-        TRACE_BORDER,
-        WLANWIZARDPRIVATE_ONTIMEOUT_DONE,
-        "WlanWizardPrivate::onTimeOut - Done;this=%x",
-        this);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_ONTIMEOUT_EXIT);
-}
-
-/*!
-   Slot to start wizard page operation asynchronous. Starts also the timer
-   to protect the wizard page.
- */
-void WlanWizardPrivate::startPageOperation()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_STARTPAGEOPERATION_ENTRY);
-    
-    // Process this if wizard has not been closed
-    if (mClosed == false) {
-        OstTrace1(
-            TRACE_BORDER,
-            WLANWIZARDPRIVATE_STARTPAGEOPERATION,
-            "WlanWizardPrivate::startPageOperation;this=%x",
-            this);
-        
-        HbWidget *widget = 
-            qobject_cast<HbWidget*>(mStackedWidget->currentWidget());
-        Q_ASSERT(widget);
-        mPageFinished = false;
-        mPageTimer->start(PageTimeout);
-        mPageMapper[widget]->startOperation();
-        
-        OstTrace1(
-            TRACE_BORDER,
-            WLANWIZARDPRIVATE_STARTPAGEOPERATION_DONE,
-            "WlanWizardPrivate::startPageOperation - DONE;this=%x",
-            this);
-    }
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_STARTPAGEOPERATION_EXIT);
-}
-
-/*!
-   In case the wizard page uses timer protection this method determines when
-   the next page is shown.
- */
-void WlanWizardPrivate::toNextPage()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_TONEXTPAGE_ENTRY);
-    
-    if (mPageFinished && !(mPageTimer->isActive())) {
-        OstTrace1(
-            TRACE_FLOW,
-            WLANWIZARDPRIVATE_TONEXTPAGE,
-            "WlanWizardPrivate::toNextPage;this=%x",
-            this);
-        
-        // process this asynchronous. Main purpose is to release the current
-        // call stack and process the page change using new call stack
-        QMetaObject::invokeMethod(this, "nextTriggered", Qt::QueuedConnection);
-    }
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_TONEXTPAGE_EXIT);
-}
-
-/*!
-   Show requested page and removes the current wizard page from the stack if
-   required. This method updates the title and toolbar accordingly.
-   
-   See WlanWizardPage::nextId()
-   
-   @param [in] pageId Wizard Page ID to be shown
-   @param [in] removeFromStack if true the current wizard page is removed from
-                               the stackedwidget. 
- */
-void WlanWizardPrivate::showPage(int pageId, bool removeFromStack)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_SHOWPAGE_ENTRY);
-    
-    OstTraceExt3(
-        TRACE_FLOW,
-        WLANWIZARDPRIVATE_SHOWPAGE,
-        "WlanWizardPrivate::showPage;this=%x;"
-        "pageId=%{PageIds};removeFromStack=%x",
-        (unsigned)this,
-        pageId,
-        (TUint)(removeFromStack));
-    
-    // PageNone is returned by wizard pages when some validation of page content
-    // has not passed and the page does not want to process wizard to next page
-    if (pageId == WlanWizardPage::PageNone) {
-        OstTraceFunctionExit0(WLANWIZARDPRIVATE_SHOWPAGE_EXIT);
-        return;
-    }
-    
-    //  PageProcessSettings is shown only when WLAN AP is found in scanning
-    // 1/ when client calls setParameters()
-    // 2/ scanning page has found match with given SSID
-    if (pageId == WlanWizardPage::PageProcessSettings) {
-        if (configuration(ConfProcessSettings).toBool() == false) {
-            if (handleIap()){
-                pageId = WlanWizardPageInternal::PageSummary;
-            } else {
-                pageId = WlanWizardPage::PageGenericError;
-                setConfiguration(
-                    ConfGenericErrorString, 
-                    hbTrId("txt_occ_dialog_unable_to_save_settings_please_ret"));
-                
-                setConfiguration(
-                    ConfGenericErrorPageStepsBackwards, 
-                    WlanWizardPage::OneStepBackwards);
-            }
-            OstTraceExt2(
-                TRACE_FLOW,
-                WLANWIZARDPRIVATE_SHOWPAGE_UPDATE,
-                "WlanWizardPrivate::showPage - change page;this=%x;"
-                "pageId=%{PageIds}",
-                (unsigned)this,
-                pageId);
-        }
-    }
-
-    // Create visualization of next page and store it to mappers
-    WlanWizardPage* page = mPages[pageId];
-    Q_ASSERT(page);
-    HbWidget* widget = page->initializePage();
-    Q_ASSERT(widget);
-    mPageMapper[widget] = page;
-
-    // index calculation has to be happened before adding new widget into
-    // the stacked widget. Since the internal implementation of stackedwidget
-    // sets the first widget in the stack to current widget..
-    // and when there are not any widgets in the stack the current index is
-    // -1. Valid index starts from 0.
-    int index = mStackedWidget->currentIndex();
-
-    if (removeFromStack) {
-        // widget is removed from the stacked widget, not deleted
-        mStackedWidget->removeAt(index);
-    } else {
-        index++;
-    }
-    mStackedWidget->addWidget(widget);
-    mStackedWidget->setCurrentIndex(index);
-    updateFrame(pageId);
-    enableNextButton(page->showPage());    
-
-    // If wizard page needs to start some control operation trigger it 
-    // asyncronously so that the UI gets more priority to get painted correctly
-    // before any operation takes place in wizard page. This is important for
-    // timer protected pages. Makes wizard to work smother from UI perspective
-    if (page->requiresStartOperation()) {
-        OstTrace0(
-            TRACE_FLOW,
-            WLANWIZARDPRIVATE_SHOWPAGE_INVOKE,
-            "WlanWizardPrivate::showPage - Invoke startOperation");
-        
-        QMetaObject::invokeMethod(this, "startPageOperation", Qt::QueuedConnection);
-    }
-    
-    OstTraceFunctionExit0(DUP1_WLANWIZARDPRIVATE_SHOWPAGE_EXIT);
-}
-
-/*!
-   Creates all control objects of WLAN wizard pages which are inherited from
-   WlanWizardPage and adds those into a internal database. 
- */
-void WlanWizardPrivate::createPages()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_CREATEPAGES_ENTRY);
-    
-    OstTrace0(
-        TRACE_NORMAL,
-        WLANWIZARDPRIVATE_CREATEPAGES,
-        "WlanWizardPrivate::createPages");
-    
-    addPage(
-        WlanWizardPageInternal::PageKeyQuery, 
-        new WlanWizardPageKeyQuery(this));
-    
-    addPage(
-        WlanWizardPageInternal::PageProcessSettings, 
-        new WlanWizardPageProcessingSettings(this));
-    
-    addPage(
-        WlanWizardPageInternal::PageSummary, 
-        new WlanWizardPageSummary(this));
-
-    addPage(
-        WlanWizardPageInternal::PageGenericError, 
-        new WlanWizardPageGenericError(this));
-    
-    addPage(
-        WlanWizardPageInternal::PageSsid,
-        new WlanWizardPageSsid(this));
-    
-    addPage(
-        WlanWizardPageInternal::PageScanning, 
-        new WlanWizardPageScanning(this));
-    
-    addPage(
-        WlanWizardPageInternal::PageNetworkMode, 
-        new WlanWizardPageNetworkMode(this));
-    
-    addPage(
-        WlanWizardPageInternal::PageNetworkSecurity, 
-        new WlanWizardPageSecurityMode(this));
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_CREATEPAGES_EXIT);
-}
-
-/*!
-   Called when wizard is closed 
-   - cancelled by the user
-   - finished by the user
- */
-void WlanWizardPrivate::closeViews()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_CLOSEVIEWS_ENTRY);
-    
-    mDialog->hide();
-    mClosed = true;
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_CLOSEVIEWS_EXIT);
-}
-
-/*!
-   This method takes care of the title of wizard and toolbutton. Correct items
-   are selected based on the \a pageId and the amount of objects in the stacked
-   widget.
-   
-   @param [in] pageId Wizard Page Id
- */
-void WlanWizardPrivate::updateFrame(int pageId)
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_UPDATEFRAME_ENTRY);
-    
-    int currentIndex = mStackedWidget->currentIndex();
-
-    OstTraceExt3(
-        TRACE_FLOW,
-        WLANWIZARDPRIVATE_UPDATEFRAME, 
-        "WlanWizardPrivate::updateFrame;this=%x;pageId=%{PageIds};currentIndex=%d",
-        (unsigned)this,
-        pageId,
-        (uint)(currentIndex));
-    
-    // For last page (summary) show Finish instead of Next button
-    if (pageId == WlanWizardPageInternal::PageSummary) {
-        mTitle->setPlainText(hbTrId("txt_occ_title_wlan_setup_wizard_summary"));
-        mActionFinish->setVisible(true);
-        mActionNext->setVisible(false);
-        mActionPrevious->setVisible(false);
-    } else {
-        // Index starts from zero, wizard page numbering starts from one.
-        mTitle->setPlainText(
-            hbTrId("txt_occ_title_wlan_setup_wizard_step_l1").arg(
-                currentIndex + 1));
-        mActionFinish->setVisible(false);
-        mActionNext->setVisible(true);
-
-        // If first page is shown then Previous button is disabled
-        if (currentIndex < 1) {
-            mActionPrevious->setVisible(false);
-        } else {
-            mActionPrevious->setVisible(true);
-            if (pageId == WlanWizardPage::PageProcessSettings) {
-                mActionPrevious->setEnabled(false);
-            } else {
-                mActionPrevious->setEnabled(true);
-            }
-        }
-    }
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_UPDATEFRAME_EXIT);
-}
-
-/*!
-   Loads widgets and objects from the docml file. 
- */
-void WlanWizardPrivate::loadDocml()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_LOADDOCML_ENTRY);
-    
-    bool ok = true;
-    
-    mDocLoader->load(":/docml/occ_wlan_wizard_main.docml", &ok);
-    Q_ASSERT(ok);
-
-    mDialog.reset( qobject_cast<HbDialog*> (mDocLoader->findWidget("dialog")) );
-    Q_ASSERT(mDialog != NULL);
-
-    mTitle = qobject_cast<HbLabel*> (mDocLoader->findWidget("title"));
-    Q_ASSERT(mTitle != NULL);
-
-    mStackedWidget = 
-        qobject_cast<HbStackedWidget*> (mDocLoader->findWidget("stackedWidget"));
-    Q_ASSERT(mStackedWidget != NULL);
-
-    mActionNext = qobject_cast<HbAction*> (mDocLoader->findObject("actionNext"));
-    Q_ASSERT(mActionNext != NULL);
-
-    mActionPrevious = 
-        qobject_cast<HbAction*> (mDocLoader->findObject("actionPrevious"));
-    Q_ASSERT(mActionPrevious != NULL);
-
-    mActionFinish = 
-        qobject_cast<HbAction*> (mDocLoader->findObject("actionFinish"));
-    Q_ASSERT(mActionFinish != NULL);
-
-    mActionCancel = 
-        qobject_cast<HbAction*> (mDocLoader->findObject("actionCancel"));
-    Q_ASSERT(mActionCancel != NULL);
-    
-    // Actions are added from left to right to the toolbar of dialog
-    mDialog->addAction(mActionPrevious);
-    mDialog->addAction(mActionCancel);
-    mDialog->addAction(mActionNext);
-    mDialog->addAction(mActionFinish);
-    
-    // TODO: workaround to prevent action to close the dialog
-    disconnect(mActionPrevious, SIGNAL(triggered()), mDialog.data(), SLOT(close()));
-    disconnect(mActionCancel, SIGNAL(triggered()), mDialog.data(), SLOT(close()));
-    disconnect(mActionNext, SIGNAL(triggered()), mDialog.data(), SLOT(close()));
-    disconnect(mActionFinish, SIGNAL(triggered()), mDialog.data(), SLOT(close()));
-
-    ok = true;
-    ok = connect(mPageTimer, SIGNAL(timeout()), this, SLOT(onTimeOut()));
-    Q_ASSERT(ok);
-    
-    ok = connect(
-        mActionNext,
-        SIGNAL(triggered()), 
-        this,
-        SLOT(nextTriggered()));
-    Q_ASSERT(ok);
-    
-    ok = connect(
-        mActionPrevious,
-        SIGNAL(triggered()), 
-        this,
-        SLOT(previousTriggered()));
-    Q_ASSERT(ok);
-    
-    ok = connect(
-        mActionFinish,
-        SIGNAL(triggered()), 
-        this,
-        SLOT(finishTriggered()));
-    Q_ASSERT(ok);
-    
-    ok = connect(
-        mActionCancel,
-        SIGNAL(triggered()), 
-        this,
-        SLOT(cancelTriggered()));
-    Q_ASSERT(ok);
-
-    // TODO: workaround for full screen dialog, with docml it is possible to
-    // define fullscreen dialog, mut resize is not done correctly when orientation
-    // is changed. See TSW Error: MTAA-854DK8
-    ok = HbStyleLoader::registerFilePath(":/css/custom.css");
-    Q_ASSERT(ok);
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_LOADDOCML_EXIT);
-}
-
-/*!
-   Disconnect receiving triggered() signal from any toolbar action.
- */
-void WlanWizardPrivate::disconnectActions()
-{
-    OstTraceFunctionEntry0(WLANWIZARDPRIVATE_DISCONNECTACTIONS_ENTRY);
-    
-    disconnect(
-        mActionNext,
-        SIGNAL(triggered()), 
-        this,
-        SLOT(nextTriggered()));
-    
-    disconnect(
-        mActionPrevious,
-        SIGNAL(triggered()), 
-        this,
-        SLOT(previousTriggered()));
-    
-    disconnect(
-        mActionFinish,
-        SIGNAL(triggered()), 
-        this,
-        SLOT(finishTriggered()));
-
-    disconnect(
-        mActionCancel,
-        SIGNAL(triggered()), 
-        this,
-        SLOT(cancelTriggered()));
-    
-    OstTraceFunctionExit0(WLANWIZARDPRIVATE_DISCONNECTACTIONS_EXIT);
-}