diff -r ab513c8439db -r e8f4211554fb wlanutilities/wlanwizard/src/wlanwizardpagesummary.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlanutilities/wlanwizard/src/wlanwizardpagesummary.cpp Mon May 24 21:11:39 2010 +0300 @@ -0,0 +1,293 @@ +/* + * 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 Page: Summary + * + */ + +// System includes +#include +#include +#include +#include +#include +#include + +// User includes +#ifdef ICT_RESULT_ENUM +#include "wlanqtutilscommon.h" +#endif +#include "wlanwizard_p.h" +#include "wlanwizardplugin.h" +#include "wlanwizardsummaryviewitem.h" +#include "wlanwizardpagesummary.h" + +/*! + \class WlanWizardPageSummary + \brief Implements Wizard summary page. + */ + +// External function prototypes + +// Local constants + +//! Path for layout of custom list widget +static const char WlanWizardPageSummaryLayout[] = ":/wizardsummarylayout/"; + +// ======== LOCAL FUNCTIONS ======== + +// ======== MEMBER FUNCTIONS ======== + +/*! + Constructor. + + @param [in] parent pointer to private implementation of wizard. + */ +WlanWizardPageSummary::WlanWizardPageSummary(WlanWizardPrivate* parent) : + WlanWizardPageInternal(parent), + mListWidget(NULL) +{ +} + +/*! + Destructor. + */ +WlanWizardPageSummary::~WlanWizardPageSummary() +{ + HbStyleLoader::unregisterFilePath(WlanWizardPageSummaryLayout); + + // Wizard framework deletes the visualization (owns mListWidget). +} + +/*! + See WlanWizardPage::initializePage() + */ +HbWidget* WlanWizardPageSummary::initializePage() +{ + // Note that from summary page it is not possible to step back + // this means that it is not possible that this method is called twice. + Q_ASSERT(!mListWidget); + + loadDocml(); + int row = 0; + + appendToList( + row, + hbTrId("txt_occ_dblist_network_name"), + mWizard->configuration(WlanWizardPrivate::ConfSsid).toString()); + + appendToList( + row, hbTrId("txt_occ_dblist_network_mode"), networkModeText()); + + appendToList( + row, hbTrId("txt_occ_dblist_security_mode"), securityModeText()); + + addDynamicItems(row); + + return qobject_cast(mListWidget); +} + +/*! + See WlanWizardPage::nextId() + + @note this method is never called, because 'Next' toolbar button is not + visible in summary page. + + @param [out] removeFromStack return value is always false + + @return WlanWizardPageInternal::PageNone + */ +int WlanWizardPageSummary::nextId(bool &removeFromStack) const +{ + removeFromStack = false; + return WlanWizardPage::PageNone; +} + +/*! + Loads docml. + */ +void WlanWizardPageSummary::loadDocml() +{ + bool ok; + HbDocumentLoader docLoader(mWizard->mainWindow()); + + docLoader.load(":/docml/occ_add_wlan_05.docml", &ok); + Q_ASSERT(ok); + + mListWidget = qobject_cast(docLoader.findWidget("occ_add_wlan_05")); + Q_ASSERT(mListWidget != NULL); + + // Set own list prototype handler to disable TAP gestures and selections + mListWidget->setItemPrototype( + new WlanWizardSummaryListViewItem(mListWidget)); + + // set the layout name to match the layout name in hblistviewitem.css file + mListWidget->setLayoutName("wlanwizardsummaryitem"); + + // Register the location of hblistviewitem.css and hblistviewitem.widgetml + ok = HbStyleLoader::registerFilePath(WlanWizardPageSummaryLayout); + Q_ASSERT(ok); +} + +/*! + Gets localized network mode from the WlanWizardPrivate::ConfNetworkMode + configuration. + + @return localized network mode text. + */ +QString WlanWizardPageSummary::networkModeText() const +{ + QString ret; + int mode = mWizard->configuration( + WlanWizardPrivate::ConfNetworkMode).toInt(); + + switch (mode) { + case CMManagerShim::Adhoc: + ret = hbTrId("txt_occ_dblist_network_mode_val_adhoc"); + break; + + case CMManagerShim::Infra: + default: + Q_ASSERT(mode == CMManagerShim::Infra); + if (mWizard->configuration(WlanWizardPrivate::ConfHiddenWlan).toBool()) { + ret = hbTrId("txt_occ_dblist_network_mode_val_infrastructure_hi"); + } else { + ret = hbTrId("txt_occ_dblist_network_mode_val_infrastructure_pu"); + } + break; + } + return ret; +} + +/*! + Gets localized security mode from the WlanWizardPrivate::ConfSecurityMode + configuration. + + @return localized security mode text. + */ +QString WlanWizardPageSummary::securityModeText() const +{ + QString ret; + int mode = mWizard->configuration(WlanWizardPrivate::ConfSecurityMode).toInt(); + switch (mode) { + case CMManagerShim::WlanSecMode802_1x: + ret = hbTrId("txt_occ_dblist_security_mode_val_8021x"); + break; + + case CMManagerShim::WlanSecModeWep: + ret = hbTrId("txt_occ_dblist_security_mode_val_wep"); + break; + + case CMManagerShim::WlanSecModeWpa: + if (mWizard->configuration(WlanWizardPrivate::ConfUsePsk).toBool()) { + ret = hbTrId("txt_occ_dblist_security_mode_val_wpawpa2psk"); + } else { + ret = hbTrId("txt_occ_dblist_security_mode_val_wpawpa2_with_eap"); + } + break; + + case CMManagerShim::WlanSecModeWpa2: + if (mWizard->configuration(WlanWizardPrivate::ConfUsePsk).toBool()) { + ret = hbTrId("txt_occ_dblist_security_mode_val_wpa2_with_passwor"); + } else { + ret = hbTrId("txt_occ_dblist_security_mode_val_wpa2_with_eap"); + } + break; + + case CMManagerShim::WlanSecModeOpen: + default: + Q_ASSERT(mode == CMManagerShim::WlanSecModeOpen); + ret = hbTrId("txt_occ_dblist_security_mode_val_open"); + break; + } + return ret; +} + +/*! + Adds dynamic content to the view. + + @param [in,out] row row to where insert happens. + */ +void WlanWizardPageSummary::addDynamicItems(int &row) +{ + if (mWizard->isEapEnabled()) { + appendToListPluginInfo(WlanWizardPlugin::SummaryEapOuterType, row); + appendToListPluginInfo(WlanWizardPlugin::SummaryEapInnerType, row); + appendToListPluginInfo(WlanWizardPlugin::SummaryEapFastProvisioningMode, row); + } + + // TODO: Hotspot: no need to show destination.. + QString value; +#ifdef ICT_RESULT_ENUM + switch (mWizard->configuration(WlanWizardPrivate::ConfIctStatus).toInt()) { + case IctsPassed: + value = hbTrId("txt_occ_dblist_destination_val_internet"); + appendToList(row, hbTrId("txt_occ_dblist_destination"), value); + break; + case IctsHotspotPassed: + // Add nothing to list. + break; + case IctsCanceled: + // TODO: Next page: gereric error page. movement should be done from processsettings page not here. + break; + case IctsFailed: + default: + value = hbTrId("txt_occ_dblist_destination_val_uncategorized"); + appendToList(row, hbTrId("txt_occ_dblist_destination"), value); + } +#else + if (mWizard->configuration(WlanWizardPrivate::ConfIctStatus).toBool()) { + value = hbTrId("txt_occ_dblist_destination_val_internet"); + } else { + value = hbTrId("txt_occ_dblist_destination_val_uncategorized"); + } + appendToList(row, hbTrId("txt_occ_dblist_destination"), value); +#endif +} + +/*! + Appends new item to the end of the summary list + + @param [in,out] row number to where the item is inserted + @param [in] title title of the item + @param [in] value value of the item + */ +void WlanWizardPageSummary::appendToList( + int &row, + const QString title, + const QString value) +{ + HbListWidgetItem *item = new HbListWidgetItem(); + item->setText(title); + item->setSecondaryText(value); + mListWidget->insertItem(row++, item); +} + +/*! + Appends new item to the end of the summary list + + @param [in] id Plugin summary id + @param [in,out] row number to where the item is inserted + */ +void WlanWizardPageSummary::appendToListPluginInfo( + WlanWizardPlugin::Summary id, int &row ) +{ + QString title; + QString value; + WlanWizardPlugin *plugin = mWizard->wlanWizardPlugin(); + Q_ASSERT(plugin); + if (plugin->summary(id, title, value)) { + appendToList(row, title, value ); + } +}