wlanutilities/wlansniffer/src/wlansnifferlistview.cpp
changeset 38 2dc6da6fb431
parent 29 dbe86d96ce5b
child 41 a87deff717bc
child 45 d9ec2b8c6bad
--- a/wlanutilities/wlansniffer/src/wlansnifferlistview.cpp	Thu May 27 13:59:00 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,330 +0,0 @@
-/*
- * Copyright (c) 2009 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:
- * 
- */
-
-#include <QGraphicsWidget>
-
-#include <HbLabel>
-#include <HbMenu>
-#include <HbAction>
-#include <HbListWidget>
-#include <HbListWidgetItem>
-#include <HbDocumentLoader>
-#include <HbInstance>
-
-#include <xqserviceutil.h>
-
-#include "wlanqtutils.h"
-#include "wlanqtutilswlanap.h"
-#include "wlanqtutilswlaniap.h"
-#include "wlanqtutilscommon.h"
-
-#include "wlansniffer.h"
-#include "wlansnifferlistview.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "wlansnifferlistviewTraces.h"
-#endif
-
-WlanSnifferListView::WlanSnifferListView(WlanSniffer *appRef) : 
-    mWlanList(NULL),
-    mStatusLabel(NULL),
-    mAppRef(appRef),
-    mConnectingIapId(0),
-    mContextMenu(NULL)
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_WLANSNIFFERLISTVIEW_ENTRY );
-    
-    bool ok = false;
-    HbDocumentLoader loader;
-    loader.load(":/docml/wlansnifferlistview.docml", &ok);
-    Q_ASSERT_X(ok, "Wlan Sniffer", "Invalid docml file");
-    
-    // Load the view by name from the xml file
-    QGraphicsWidget *widget = loader.findWidget("occ_list");
-    Q_ASSERT_X(widget != 0, "Wlan Sniffer", "View not found");
-    // Set the WlanListView view to be the widget that was loaded from the xml
-    setWidget(widget);
-
-    HbMenu *viewMenu = qobject_cast<HbMenu *>(loader.findWidget("viewMenu"));
-    Q_ASSERT_X(viewMenu != 0, "Wlan Sniffer", "Menu not found");
-    setMenu(viewMenu);
-    
-    mWlanList = qobject_cast<HbListWidget *>(loader.findWidget("listWidget"));
-    Q_ASSERT_X(mWlanList != 0, "Wlan Sniffer", "List not found");
-    
-    mStatusLabel = qobject_cast<HbLabel *>(loader.findWidget("statusLabel"));
-    Q_ASSERT_X(mStatusLabel != 0, "Wlan Sniffer", "Label not found");
-
-    connect(
-        mWlanList,
-        SIGNAL(activated(HbListWidgetItem *)),
-        this,
-        SLOT(handleListItemActivated(HbListWidgetItem *)));
-    connect(
-        mWlanList,
-        SIGNAL(longPressed(HbListWidgetItem *, const QPointF &)),
-        this,
-        SLOT(handleListItemLongPressed(HbListWidgetItem *, const QPointF &)));
-    
-    // Set correct orientation when drawing view first time. Orientation change
-    // on the fly is not yet implemented
-    if (HbInstance::instance()->allMainWindows().value(0)->orientation() == Qt::Horizontal) {
-        bool loaded = false;
-        loader.load( ":/docml/wlansnifferlistview.docml", "landscape", &loaded );
-    } // else: portrait is ok by default
-
-    // We need to create a custom navigation action in case the application was
-    // launched as embedded via QtHighway
-    if (XQServiceUtil::isEmbedded()) {
-        HbAction *completeAction = new HbAction(Hb::BackNaviAction, this);
-        setNavigationAction(completeAction);
-        connect(
-            completeAction,
-            SIGNAL(triggered(bool)),
-            this,
-            SIGNAL(completeServiceTriggered()));
-        // TODO: What to do when exit action is ran? Should we close whole control panel?
-    }
-    
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_WLANSNIFFERLISTVIEW_EXIT );
-}
-    
-WlanSnifferListView::~WlanSnifferListView()
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_WLANSNIFFERLISTVIEWDESTR_ENTRY );    
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_WLANSNIFFERLISTVIEWDESTR_EXIT );
-}
-
-void WlanSnifferListView::update()
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_UPDATE_ENTRY );
-    
-    // Do not update list while the context menu is open
-    if (mContextMenu == NULL) {
-        QList<WlanQtUtilsWlanAp*> aps;
-        QList<WlanQtUtilsWlanIap*> iaps;
-        
-        mAppRef->wlanQtUtils()->availableWlanAps(iaps, aps);
-        
-        mWlanList->clear();
-    
-        // Loop the IAPs and APs and create the list items (lists are ordered already by Wlan Qt Utilities)
-        foreach (WlanQtUtilsWlanIap *iap, iaps) {
-            mWlanList->addItem(wlanListItemIapCreate(iap));
-        }
-        // Loop the AP's and create the list items
-        foreach (WlanQtUtilsWlanAp *ap, aps) {
-            mWlanList->addItem(wlanListItemApCreate(ap));
-        }
-    }
-
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_UPDATE_EXIT );
-}
-
-void WlanSnifferListView::updateConnectionOpened(int iapId)
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_UPDATECONNECTIONOPENED_ENTRY );
-    
-    mStatusLabel->setPlainText(
-        hbTrId("txt_occ_grid_connected_to_1").arg(mAppRef->wlanQtUtils()->iap(iapId)->name()));
-    // Redraw the list so that the connected network moves on top
-    update();
-    mConnectingIapId = 0;
-
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_UPDATECONNECTIONOPENED_EXIT );
-}
-
-void WlanSnifferListView::updateConnectionClosed(int iapId)
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_UPDATECONNECTIONCLOSED_ENTRY );
-    
-    (void)iapId;
-    mStatusLabel->setPlainText(hbTrId("txt_occ_grid_not_connected"));
-    mConnectingIapId = 0;
-
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_UPDATECONNECTIONCLOSED_EXIT );
-}
-
-void WlanSnifferListView::handleContextMenuClosed()
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_HANDLECONTEXTMENUCLOSED_ENTRY );
-
-    // Menu deletes itself, but we need to cleanup the member variable
-    // in order to enable list updating again
-    mContextMenu = NULL;
-    
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_HANDLECONTEXTMENUCLOSED_EXIT );
-}
-
-void WlanSnifferListView::handleListItemActivated(HbListWidgetItem *item)
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_HANDLELISTITEMACTIVATED_ENTRY );
-    
-    QVariant data = item->data();
-    if (data.canConvert<int>()) {
-        // Item was an IAP. Connect the IAP or show details view depending on connection state
-        WlanQtUtilsIap *iap = mAppRef->wlanQtUtils()->iap(data.toInt());
-        if (iap->connectionStatus() == WlanQtUtilsConnectionStatusConnected) {
-            // Switch to details view
-            emit detailsTriggered(data.toInt());
-        } else {
-            // Connect the IAP
-            mConnectingIapId = iap->id();
-            mStatusLabel->setPlainText(hbTrId("txt_occ_grid_connecting_to_1").arg(iap->name()));
-            mAppRef->wlanQtUtils()->connectIap(mConnectingIapId);
-        }
-    } else {
-        // Item has to be a WLAN AP, which can't already be connected. Create an IAP and connect it.
-        Q_ASSERT(data.canConvert<WlanQtUtilsWlanAp>());
-        WlanQtUtilsWlanAp ap = data.value<WlanQtUtilsWlanAp>();
-        mConnectingIapId = mAppRef->wlanQtUtils()->createWlanIap(&ap);
-        WlanQtUtilsIap *iap = mAppRef->wlanQtUtils()->iap(mConnectingIapId);
-        Q_ASSERT(iap);
-        mStatusLabel->setPlainText(hbTrId("txt_occ_grid_connecting_to_1").arg(iap->name()));
-        mAppRef->wlanQtUtils()->connectIap(mConnectingIapId);
-    }
-
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_HANDLELISTITEMACTIVATED_EXIT );
-}
-
-void WlanSnifferListView::handleListItemLongPressed(HbListWidgetItem *item, const QPointF &coords)
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_HANDLELISTITEMLONGPRESSED_ENTRY );
-    
-    Q_ASSERT(mContextMenu == NULL);
-
-    if (item->data().canConvert<int>() && item->data().toInt() ==
-        mAppRef->wlanQtUtils()->connectedWlanId()) {
-        // Connected IAP, add "Disconnect" action
-		    mContextMenu = new HbMenu();
-		    // Remember the item that was long pressed
-    		mContextMenuData = item->data();
-        mContextMenu->addAction(
-            hbTrId("txt_common_menu_disconnect"),
-            this,
-            SLOT(handleListItemDisconnect()));
-		    // Show the menu and connect closure signal (to re-enable list refreshing)
-		    bool connectStatus = connect(
-		        mContextMenu,
-		        SIGNAL(aboutToClose()),
-		        this,
-		        SLOT(handleContextMenuClosed()));
-		    Q_ASSERT(connectStatus);
-		    mContextMenu->setAttribute(Qt::WA_DeleteOnClose);
-		    mContextMenu->setTimeout(HbPopup::ContextMenuTimeout);
-		    mContextMenu->setPreferredPos(coords);
-		    mContextMenu->show();
-    }
-
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_HANDLELISTITEMLONGPRESSED_EXIT );
-}
-
-/*!
-    Handles a "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>());
-    mAppRef->wlanQtUtils()->disconnectIap(mContextMenuData.toInt());
-    
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_HANDLELISTITEMDISCONNECT_EXIT );
-}
-
-// Todo: This is a temporary solution - real WLAN status indication & listening
-// is implemented later on.
-void WlanSnifferListView::handleDisconnect()
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_HANDLEDISCONNECT_ENTRY );
-    
-    mStatusLabel->setPlainText(hbTrId("txt_occ_grid_not_connected"));
-    // Redraw the list so that disconnected network is not shown anymore
-    update();    
-
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_HANDLEDISCONNECT_EXIT );
-}
-
-// Todo: no place for separate secure WLAN icon in the widget -> custom layout needed?
-// Todo: check the signal strength values
-QString WlanSnifferListView::signalStrengthIconChoose(int signalStrength, WlanQtUtilsWlanSecMode secMode)
-{
-    (void)secMode;
-    QString iconName;
-    if (signalStrength <= WlanQtUtilsWlanSignalStrengthGood) {
-        iconName = "qtg_small_signal_good";
-    } else if (signalStrength <= WlanQtUtilsWlanSignalStrengthLow) {
-        iconName = "qtg_small_signal_medium";
-    } else {
-        iconName = "qtg_small_signal_low";
-    }
-    
-    return iconName;
-}
-
-HbListWidgetItem *WlanSnifferListView::wlanListItemIapCreate(const WlanQtUtilsWlanIap *iap)
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_WLANLISTITEMIAPCREATE_ENTRY );
-    
-    HbListWidgetItem* item = new HbListWidgetItem();
-    item->setText(iap->name());
-#if 1                                       // TODO: How to show secure/open network info??
-    if (iap->securityMode() == WlanQtUtilsWlanSecModeOpen) {
-        item->setSecondaryText("Open");
-    } else {
-        item->setSecondaryText("Secure");            
-    }
-#endif
-    
-    if (iap->connectionStatus() == WlanQtUtilsConnectionStatusConnected) {
-        item->setIcon(HbIcon("qtg_small_online"));
-    } else {
-        item->setIcon(HbIcon("qtg_small_wlan"));
-    }
-    item->setSecondaryIcon(HbIcon(signalStrengthIconChoose(iap->signalStrength(), iap->securityMode())));
-    QVariant data(iap->id());
-    item->setData(data);
-
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_WLANLISTITEMIAPCREATE_EXIT );
-    return item;
-}
-
-HbListWidgetItem *WlanSnifferListView::wlanListItemApCreate(const WlanQtUtilsWlanAp *ap)
-{
-    OstTraceFunctionEntry0( WLANSNIFFERLISTVIEW_WLANLISTITEMAPCREATE_ENTRY );
-    
-    HbListWidgetItem* item = new HbListWidgetItem();
-    item->setText(ap->ssid());
-#if 1                                       // TODO: How to show secure/open network info??
-    if (ap->securityMode() == WlanQtUtilsWlanSecModeOpen) {
-        item->setSecondaryText("Open");
-    } else {
-        item->setSecondaryText("Secure");            
-    }
-#endif    
-    item->setSecondaryIcon(HbIcon(signalStrengthIconChoose(ap->signalStrength(), ap->securityMode())));
-    QVariant data;
-    data.setValue(*ap);
-    item->setData(data);
-    
-    OstTraceFunctionExit0( WLANSNIFFERLISTVIEW_WLANLISTITEMAPCREATE_EXIT );
-    return item;
-}
-
-// End of File