--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlanutilities/wlansniffer/wlansnifferapplication/src/wlansnifferlistview.cpp Tue Aug 31 16:18:40 2010 +0300
@@ -0,0 +1,687 @@
+/*
+* Copyright (c) 2009-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 Sniffer List View.
+*/
+
+// System includes
+
+#include <QGraphicsWidget>
+#include <QSharedPointer>
+#include <QObjectList>
+
+#include <HbLabel>
+#include <HbPushButton>
+#include <HbMenu>
+#include <HbAction>
+#include <HbListWidget>
+#include <HbListWidgetItem>
+#include <HbDocumentLoader>
+#include <HbInstance>
+#include <HbMessageBox>
+#include <HbParameterLengthLimiter>
+
+#include <xqserviceutil.h>
+
+// User includes
+
+#include "wlanqtutils.h"
+#include "wlanqtutilsap.h"
+#include "wlanqtutilsiap.h"
+
+#include "wlansnifferengine.h"
+#include "wlansniffermainwindow.h"
+#include "wlansnifferlistview.h"
+#include "wlansnifferlistitem.h"
+#include "wlansnifferlistwidget.h"
+
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "wlansnifferlistviewTraces.h"
+#endif
+
+/*!
+ \class WlanSnifferListView
+ \brief WLAN Sniffer application's list view implementation.
+*/
+
+// External function prototypes
+
+// Local constants
+
+//! WLAN Sniffer list view docml file location
+static const QString WlanSnifferListViewDocml(":/docml/wlansnifferlistview.docml");
+
+//! WLAN Sniffer list view object name
+static const QString WlanSnifferListViewName("occ_list");
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+
+/*!
+ Constructor.
+
+ @param [in] engine WLAN Sniffer application engine.
+ @param [in] mainWindow WLAN Sniffer main window.
+*/
+
+WlanSnifferListView::WlanSnifferListView(
+ WlanSnifferEngine *engine,
+ WlanSnifferMainWindow *mainWindow) :
+ HbView(),
+ mDocLoader(new HbDocumentLoader(mainWindow)),
+ mWlanListWidget(),
+ mContextMenu(),
+ mContextMenuData(),
+ mWlanEnableDialog(),
+ mIgnoreWlanScanResults(false),
+ mConnectingIapId(WlanQtUtils::IapIdNone),
+ mEngine(engine),
+ mSwitchWlanAction(0),
+ mAddWlanAction(0),
+ mWlanList(0),
+ mStatusLabel(0),
+ mWlanButton(0)
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_WLANSNIFFERLISTVIEW_ENTRY);
+
+ // Initialize UI from the docml based on standalone/embedded status
+ loadDocml(mEngine->isEmbedded());
+
+ if (mEngine->isEmbedded()) {
+ // We need to create a custom navigation action and handle exiting
+ // from the application differently in case the application was
+ // launched as embedded via QtHighway
+ HbAction *completeAction = new HbAction(Hb::BackNaviAction, this);
+ setNavigationAction(completeAction);
+ bool connectStatus = connect(
+ completeAction,
+ SIGNAL(triggered(bool)),
+ mEngine,
+ SLOT(completeService()));
+ Q_ASSERT(connectStatus);
+ }
+
+ // Connect WLAN network open & close signals
+ bool connectStatus = connect(
+ mEngine->wlanQtUtils(),
+ SIGNAL(wlanNetworkOpened(int)),
+ this,
+ SLOT(updateConnectionOpened(int)));
+ Q_ASSERT(connectStatus);
+ connectStatus = connect(
+ mEngine->wlanQtUtils(),
+ SIGNAL(wlanNetworkClosed(int, int)),
+ this,
+ SLOT(updateConnectionClosed(int))); // "reason" parameter ignored
+ Q_ASSERT(connectStatus);
+
+ // Connect WLAN ON/OFF setting change signal
+ connectStatus = connect(
+ mEngine,
+ SIGNAL(masterWlanStatus(bool)),
+ this,
+ SLOT(updateWlanEnabled()));
+ Q_ASSERT(connectStatus);
+
+ // Connect Force Disable WLAN setting change signal
+ connectStatus = connect(
+ mEngine,
+ SIGNAL(forceDisableWlanStatus(bool)),
+ this,
+ SLOT(updateWlanEnabled()));
+ Q_ASSERT(connectStatus);
+
+ // Connect signals to catch user interaction with the WLAN network list
+ connectStatus = connect(
+ mWlanList,
+ SIGNAL(activated(HbListWidgetItem *)),
+ this,
+ SLOT(handleListItemActivated(HbListWidgetItem *)));
+ Q_ASSERT(connectStatus);
+ connectStatus = connect(
+ mWlanList,
+ SIGNAL(longPressed(HbListWidgetItem *, QPointF)),
+ this,
+ SLOT(handleListItemLongPressed(HbListWidgetItem *, QPointF)));
+ Q_ASSERT(connectStatus);
+
+ // Connect signals to catch user interaction with WLAN ON/OFF switching
+ connectStatus = connect(
+ mWlanButton,
+ SIGNAL(clicked(bool)),
+ this,
+ SLOT(handleWlanToggled()));
+ Q_ASSERT(connectStatus);
+ connectStatus = connect(
+ mSwitchWlanAction,
+ SIGNAL(triggered(bool)),
+ this,
+ SLOT(handleWlanToggled()));
+ Q_ASSERT(connectStatus);
+
+ // Connect adding WLAN manually
+ connectStatus = connect(
+ mAddWlanAction,
+ SIGNAL(triggered(bool)),
+ this,
+ SLOT(startWlanWizard()));
+ Q_ASSERT(connectStatus);
+
+ // Connect WLAN scan results signal
+ connectStatus = connect(
+ mEngine,
+ SIGNAL(wlanScanReady()),
+ this,
+ SLOT(updateListContent()));
+ Q_ASSERT(connectStatus);
+
+ // Set the initial value of WLAN state
+ updateWlanEnabled();
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_WLANSNIFFERLISTVIEW_EXIT);
+}
+
+/*!
+ Destructor.
+*/
+
+WlanSnifferListView::~WlanSnifferListView()
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_WLANSNIFFERLISTVIEWDESTR_ENTRY);
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_WLANSNIFFERLISTVIEWDESTR_EXIT);
+}
+
+/*!
+ Loading of WLAN Sniffer List View docml.
+
+ @param [in] isEmbedded TRUE if WLAN Sniffer is launched as embedded.
+*/
+
+void WlanSnifferListView::loadDocml(bool isEmbedded)
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_LOADDOCML_ENTRY);
+
+ // Pass the view to the document loader. Document loader uses this view
+ // when docml is parsed, instead of creating a new view.
+ setObjectName(WlanSnifferListViewName);
+ QObjectList objectList;
+ objectList.append(this);
+ mDocLoader->setObjectTree(objectList);
+
+ // First load the common section
+ bool ok = false;
+ mDocLoader->load(WlanSnifferListViewDocml, &ok);
+ Q_ASSERT(ok);
+
+ // Then load the mode specific section
+ if (isEmbedded) {
+ mDocLoader->load(WlanSnifferListViewDocml, "embedded", &ok);
+ } else {
+ mDocLoader->load(WlanSnifferListViewDocml, "standalone", &ok);
+ }
+ Q_ASSERT(ok);
+
+ // Load the view by name from the xml file
+ QGraphicsWidget *widget = mDocLoader->findWidget(WlanSnifferListViewName);
+ Q_ASSERT(widget);
+
+ // Set view menu
+ HbMenu *viewMenu = qobject_cast<HbMenu *>(mDocLoader->findWidget("viewMenu"));
+ Q_ASSERT(viewMenu);
+ setMenu(viewMenu);
+
+ // WLAN Sniffer list widget takes responsibility of the list widget behaviour
+ mWlanList = qobject_cast<HbListWidget *>(mDocLoader->findWidget("listWidget"));
+ Q_ASSERT(mWlanList);
+ mWlanListWidget = QSharedPointer<WlanSnifferListWidget>(new WlanSnifferListWidget(mWlanList));
+
+ // Retrieve pointers to widgets we need to access from the code
+ mSwitchWlanAction = qobject_cast<HbAction *>(mDocLoader->findObject("switchWlanAction"));
+ Q_ASSERT(mSwitchWlanAction);
+
+ mAddWlanAction = qobject_cast<HbAction *>(mDocLoader->findObject("addWlanAction"));
+ Q_ASSERT(mAddWlanAction);
+
+ mWlanButton = qobject_cast<HbPushButton *>(mDocLoader->findWidget("wlanButton"));
+ Q_ASSERT(mWlanButton);
+
+ mStatusLabel = qobject_cast<HbLabel *>(mDocLoader->findWidget("statusLabel"));
+ Q_ASSERT(mStatusLabel);
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_LOADDOCML_EXIT);
+}
+
+/*!
+ Updates WLAN status label based on current WLAN status.
+
+ @param [in] enabled True if WLAN is enabled.
+*/
+
+void WlanSnifferListView::updateWlanStatusLabel(bool enabled)
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_UPDATEWLANSTATUSLABEL_ENTRY);
+
+ QString status;
+ if (!enabled) {
+ // WLAN is OFF
+ status = hbTrId("txt_occ_grid_wlan_is_switched_off");
+ } else {
+ int iapId = mEngine->wlanQtUtils()->activeIap();
+
+ switch (mEngine->wlanQtUtils()->connectionStatus()) {
+ case WlanQtUtils::ConnStatusConnecting:
+ // WLAN is connecting
+ Q_ASSERT(iapId != WlanQtUtils::IapIdNone);
+ status = HbParameterLengthLimiter(
+ "txt_occ_grid_connecting_to_1").arg(
+ mEngine->wlanQtUtils()->iapName(iapId));
+ break;
+
+ case WlanQtUtils::ConnStatusConnected:
+ // WLAN is connected
+ Q_ASSERT(iapId != WlanQtUtils::IapIdNone);
+ status = HbParameterLengthLimiter(
+ "txt_occ_grid_connected_to_1").arg(
+ mEngine->wlanQtUtils()->iapName(iapId));
+ break;
+
+ default:
+ // WLAN is disconnected
+ status = hbTrId("txt_occ_grid_not_connected");
+ break;
+ }
+ }
+ mStatusLabel->setPlainText(status);
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_UPDATEWLANSTATUSLABEL_EXIT);
+}
+
+/*!
+ Handles a "Connect" action for the selected IAP or AP item.
+
+ @param data IAP ID (int), or AP class (WlanQtUtilsAp) to connect.
+*/
+
+void WlanSnifferListView::handleConnect(QVariant data)
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_HANDLECONNECT_ENTRY);
+
+ // Check whether we need to disconnect a previous connection first
+ int activeWlanId = mEngine->wlanQtUtils()->activeIap();
+
+ // Get IAP ID if IAP is available
+ int iapId = WlanQtUtils::IapIdNone;
+ if (data.canConvert<int>()) {
+ iapId = data.toInt();
+ }
+ OstTraceExt2(
+ TRACE_NORMAL,
+ WLANSNIFFERLISTVIEW_HANDLECONNECT,
+ "WlanSnifferListView::handleConnect;activeWlanId=%d;iapId=%d",
+ activeWlanId,
+ iapId);
+
+ // Skip connecting if the IAP is already connected
+ if (activeWlanId != WlanQtUtils::IapIdNone && iapId == activeWlanId) {
+ return;
+ }
+
+ if (activeWlanId != WlanQtUtils::IapIdNone) {
+ mEngine->wlanQtUtils()->disconnectIap(activeWlanId);
+
+ // Update list widget so that the IAP is no longer connected
+ updateListContent();
+ }
+
+ if (iapId != WlanQtUtils::IapIdNone) {
+ // Item was an IAP, connect it.
+ mConnectingIapId = iapId;
+ mStatusLabel->setPlainText(
+ HbParameterLengthLimiter(
+ "txt_occ_grid_connecting_to_1").arg(
+ mEngine->wlanQtUtils()->iapName(iapId)));
+ mEngine->wlanQtUtils()->connectIap(iapId);
+ } else {
+ // Item is a WLAN AP. Summon the Wlan Wizard to handle creation
+ // of the IAP and connecting it.
+ Q_ASSERT(data.canConvert<WlanQtUtilsAp>());
+ WlanQtUtilsAp ap = data.value<WlanQtUtilsAp>();
+ emit wizardTriggered(&ap);
+ }
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_HANDLECONNECT_EXIT);
+}
+
+/*!
+ Updates WLAN list widget with new WLAN scan results.
+*/
+
+void WlanSnifferListView::updateListContent()
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_UPDATELISTCONTENT_ENTRY);
+
+ if (!mIgnoreWlanScanResults) {
+ // Get the latest scan results
+ QList< QSharedPointer<WlanQtUtilsIap> > iaps;
+ QList< QSharedPointer<WlanQtUtilsAp> > aps;
+ mEngine->wlanQtUtils()->availableWlans(iaps, aps);
+
+ // Check for connected IAP
+ int iapId = WlanQtUtils::IapIdNone;
+ if (mEngine->wlanQtUtils()->connectionStatus() ==
+ WlanQtUtils::ConnStatusConnected) {
+ iapId = mEngine->wlanQtUtils()->activeIap();
+ }
+
+ // Let the list widget class update the list content
+ mWlanListWidget->updateContent(iaps, aps, iapId);
+ }
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_UPDATELISTCONTENT_EXIT);
+}
+
+/*!
+ WLAN state settings change handler. This slot handles both the
+ WLAN ON/OFF setting and WLAN forced OFF setting.
+ Updates all WLAN ON/OFF related (UI) elements.
+*/
+
+void WlanSnifferListView::updateWlanEnabled()
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_UPDATEWLANENABLED_ENTRY);
+
+ // Check the updated setting status
+ bool forcedOff = mEngine->forceDisableWlan();
+ bool enabled = mEngine->masterWlan() && !forcedOff;
+
+ // Update the WLAN status label
+ updateWlanStatusLabel(enabled);
+
+ // Set the WLAN ON/OFF button state
+ mWlanButton->setChecked(enabled);
+
+ // Select the right WLAN button icon and menu action text
+ if (enabled) {
+ mWlanButton->setIcon(HbIcon("qtg_mono_wlan"));
+ mSwitchWlanAction->setText(hbTrId("txt_occ_opt_switch_wlan_off"));
+ } else {
+ mWlanButton->setIcon(HbIcon("qtg_mono_wlan_offline"));
+ mSwitchWlanAction->setText(hbTrId("txt_occ_opt_switch_wlan_on"));
+ }
+
+ // Set triggable WLAN UI elements disabled if WLAN is forced OFF
+ mWlanButton->setEnabled(!forcedOff);
+ mSwitchWlanAction->setEnabled(!forcedOff);
+
+ // Disable manual WLAN IAP creation when WLAN is switched OFF
+ mAddWlanAction->setEnabled(enabled);
+
+ // Switch WLAN scanning ON/OFF
+ if (enabled) {
+ mEngine->startWlanScanning();
+ } else {
+ mEngine->stopWlanScanning();
+ // Clear the network list when going to offline
+ mWlanList->clear();
+ }
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_UPDATEWLANENABLED_EXIT);
+}
+
+/*!
+ Connection opened slot. Updates connection status.
+
+ @param [in] iapId IAP ID of the connected WLAN IAP.
+*/
+
+void WlanSnifferListView::updateConnectionOpened(int iapId)
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_UPDATECONNECTIONOPENED_ENTRY);
+
+ mConnectingIapId = WlanQtUtils::IapIdNone;
+ mStatusLabel->setPlainText(
+ HbParameterLengthLimiter(
+ "txt_occ_grid_connected_to_1").arg(
+ mEngine->wlanQtUtils()->iapName(iapId)));
+
+ // Update the list widget content
+ updateListContent();
+
+ // Scroll to the top of the list
+ mWlanListWidget->scrollTo(0);
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_UPDATECONNECTIONOPENED_EXIT);
+}
+
+/*!
+ Connection closing handler. Updates connection status.
+
+ @param [in] iapId Disconnected IAP ID.
+*/
+
+void WlanSnifferListView::updateConnectionClosed(int iapId)
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_UPDATECONNECTIONCLOSED_ENTRY);
+
+ if (mEngine->masterWlan() && !mEngine->forceDisableWlan()) {
+ // Check whether we can update the status text to "Not connected"
+ if (mConnectingIapId == WlanQtUtils::IapIdNone ||
+ mConnectingIapId == iapId) {
+ mStatusLabel->setPlainText(hbTrId("txt_occ_grid_not_connected"));
+ }
+ // else: we are already connecting to another network so don't touch
+ // the status label
+
+ // Update the list widget content
+ updateListContent();
+ }
+
+ if (mConnectingIapId == iapId) {
+ // Not connecting to this network anymore
+ mConnectingIapId = WlanQtUtils::IapIdNone;
+ }
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_UPDATECONNECTIONCLOSED_EXIT);
+}
+
+/*!
+ Context menu closing handler.
+*/
+
+void WlanSnifferListView::handleContextMenuClosed()
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_HANDLECONTEXTMENUCLOSED_ENTRY);
+
+ // Let list updating start again
+ mIgnoreWlanScanResults = false;
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_HANDLECONTEXTMENUCLOSED_EXIT);
+}
+
+/*!
+ List item activation handler. Connects the WLAN network, and if there
+ is no IAP yet for it, starts WLAN Wizard.
+
+ @param [in] item Selected WLAN network list item.
+*/
+
+void WlanSnifferListView::handleListItemActivated(HbListWidgetItem *item)
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_HANDLELISTITEMACTIVATED_ENTRY);
+
+ handleConnect(item->data());
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_HANDLELISTITEMACTIVATED_EXIT);
+}
+
+/*!
+ WLAN List item long press handler.
+ The long press of a list item (i.e. WLAN IAP) opens a context menu that
+ is populated depending on the state of the WLAN network in case.
+
+ @param [in] item Selected list item.
+ @param [in] coords Coordinates of the long press.
+*/
+
+void WlanSnifferListView::handleListItemLongPressed(
+ HbListWidgetItem *item,
+ const QPointF &coords)
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_HANDLELISTITEMLONGPRESSED_ENTRY);
+
+ mContextMenu = QSharedPointer<HbMenu>(new HbMenu());
+
+ int activeIap = mEngine->wlanQtUtils()->activeIap();
+
+ // Remember the item that was long pressed
+ mContextMenuData = item->data();
+ if (mContextMenuData.canConvert<int>()
+ && mContextMenuData.toInt() == activeIap) {
+ // Connected IAP, add "Disconnect" action
+ mContextMenu->addAction(
+ hbTrId("txt_common_menu_disconnect"),
+ this,
+ SLOT(handleListItemDisconnect()));
+ } else {
+ // Not connected IAP or AP, add "Connect" action
+ mContextMenu->addAction(
+ hbTrId("txt_common_menu_connect"),
+ this,
+ SLOT(handleListItemConnect()));
+ }
+
+ // Show the menu and connect closure signal (to re-enable list refreshing)
+ bool connectStatus = connect(
+ mContextMenu.data(),
+ SIGNAL(aboutToClose()),
+ this,
+ SLOT(handleContextMenuClosed()));
+ Q_ASSERT(connectStatus);
+ mContextMenu->setTimeout(HbPopup::ContextMenuTimeout);
+ mContextMenu->setPreferredPos(coords);
+ mContextMenu->show();
+
+ // Skip WLAN scan result updates during context menu handling
+ mIgnoreWlanScanResults = true;
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_HANDLELISTITEMLONGPRESSED_EXIT);
+}
+
+/*!
+ Handles the "Connect" action selected from the context menu for a list item.
+*/
+
+void WlanSnifferListView::handleListItemConnect()
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_HANDLELISTITEMCONNECT_ENTRY);
+
+ handleConnect(mContextMenuData);
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_HANDLELISTITEMCONNECT_EXIT);
+}
+
+/*!
+ Handles the "Disconnect" action selected from the context menu for a list item.
+*/
+
+void WlanSnifferListView::handleListItemDisconnect()
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_HANDLELISTITEMDISCONNECT_ENTRY);
+
+ // "Disconnect" was only added, if the item was an IAP and data was
+ // the IAP ID.
+ Q_ASSERT(mContextMenuData.canConvert<int>());
+ mEngine->wlanQtUtils()->disconnectIap(mContextMenuData.toInt());
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_HANDLELISTITEMDISCONNECT_EXIT);
+}
+
+/*!
+ Function for handling WLAN ON/OFF switch initiation.
+*/
+
+void WlanSnifferListView::handleWlanToggled()
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_HANDLEWLANTOGGLED_ENTRY);
+
+ // Toggle the new WLAN ON/OFF value
+ bool wlanOn = mEngine->masterWlan();
+ OstTraceExt1(
+ TRACE_NORMAL,
+ WLANSNIFFERLISTVIEW_HANDLEWLANTOGGLED,
+ "WlanSnifferListView::handleWlanToggled;wlan=%hhu",
+ wlanOn);
+
+ // We have to check whether the offline mode is ON. If it is, then the
+ // user needs to be queried whether WLAN will be used in offline mode.
+ if (!wlanOn && mEngine->offlineMode()) {
+ // Show the dialog and wait for user input.
+ mWlanEnableDialog = QSharedPointer<HbMessageBox>(
+ new HbMessageBox(HbMessageBox::MessageTypeQuestion));
+ mWlanEnableDialog->setTimeout(HbPopup::StandardTimeout);
+ mWlanEnableDialog->setText(hbTrId("txt_occ_info_activate_wlan_in_airplane_mode"));
+ // Open the dialog and connect the result to the handleWlanEnableDialogClosed slot
+ mWlanEnableDialog->open(this, SLOT(handleWlanEnableDialogClosed(HbAction*)));
+ } else {
+ // Stop WLAN scanning immediately when switching WLAN OFF.
+ // WLAN might have sent scan results just before disabling WLAN.
+ if (wlanOn) {
+ mEngine->stopWlanScanning();
+ }
+ mEngine->setMasterWlan(!wlanOn);
+ }
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_HANDLEWLANTOGGLED_EXIT);
+}
+
+/*!
+ Function for handling WLAN Wizard starting when adding WLAN manually.
+*/
+
+void WlanSnifferListView::startWlanWizard()
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_STARTWLANWIZARD_ENTRY);
+
+ // TODO: Stop connections & do other cleanup before wizard can start?
+
+ emit wizardTriggered(NULL);
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_STARTWLANWIZARD_EXIT);
+}
+
+/*!
+ Function to handle the input received when the wlan enabling
+ query is closed.
+
+ @param [in] action The user action received from the dialog.
+*/
+
+void WlanSnifferListView::handleWlanEnableDialogClosed(HbAction *action)
+{
+ OstTraceFunctionEntry0(WLANSNIFFERLISTVIEW_HANDLEWLANENABLEDIALOGCLOSED_ENTRY);
+
+ // The dialog must exist
+ Q_ASSERT(mWlanEnableDialog);
+
+ // If the user selected yes, then the wlan value is toggled,
+ // otherwise nothing needs to be done.
+ // TODO: Update actions().at(0) when a better solution is provided by orbit
+ if (action == mWlanEnableDialog->actions().at(0)) {
+ mEngine->setMasterWlan(true);
+ }
+
+ OstTraceFunctionExit0(WLANSNIFFERLISTVIEW_HANDLEWLANENABLEDIALOGCLOSED_EXIT);
+}