wlanutilities/wlansniffer/wlansnifferapplication/inc/wlansnifferlistview.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 16:18:40 +0300
branchRCL_3
changeset 24 63be7eb3fc78
permissions -rw-r--r--
Revision: 201029 Kit: 201035

/*
* 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. 
*/

#ifndef WLANSNIFFERLISTVIEW_H
#define WLANSNIFFERLISTVIEW_H

// System includes

#include <QSharedPointer>
#include <QScopedPointer>

#include <HbView>
#include <HbMenu>
#include <HbMessageBox>

// User includes

// Forward declarations

class HbDocumentLoader;
class HbListWidget;
class HbListWidgetItem;
class HbLabel;
class HbPushButton;
class WlanSnifferMainWindow;
class WlanSnifferListWidget;
class WlanSnifferEngine;
class WlanQtUtilsAp;

// External data types

// Constants

// Class declaration

class WlanSnifferListView : public HbView
{
    Q_OBJECT

public:

    // Data types

    WlanSnifferListView(
        WlanSnifferEngine *engine,
        WlanSnifferMainWindow *mainWindow);
    
    ~WlanSnifferListView();

signals:

    /*!
        Signal for triggering WLAN Wizard start. 
        
        @param [in] ap WLAN access point.
     */

    void wizardTriggered(const WlanQtUtilsAp *ap);
    
public slots:

protected:

protected slots:

private:

    Q_DISABLE_COPY(WlanSnifferListView)

    void loadDocml(bool isEmbedded);
    
    void updateWlanStatusLabel(bool enabled);
    
    void handleConnect(QVariant data);

private slots:

    void updateListContent();
    
    void updateWlanEnabled();
    
    void updateConnectionOpened(int iapId);
    
    void updateConnectionClosed(int iapId);
    
    void handleContextMenuClosed();

    void handleListItemActivated(HbListWidgetItem *item);
    
    void handleListItemLongPressed(
        HbListWidgetItem *item,
        const QPointF &coords);
    
    void handleListItemConnect();
    
    void handleListItemDisconnect();
    
    void handleWlanToggled();
    
    void startWlanWizard();
    
    void handleWlanEnableDialogClosed(HbAction *action);

private: // data

    // Owned data
    
    //! Document loader for list view
    QScopedPointer<HbDocumentLoader> mDocLoader;
    //! WLAN Sniffer list view custom widget
    QSharedPointer<WlanSnifferListWidget> mWlanListWidget;
    //! Context menu reference, if one is open
    QSharedPointer<HbMenu> mContextMenu;
    /*!
       Data identifying the network for which the context menu has been
       opened: WlanQtUtilsAp class, or int IAP ID.
     */
    QVariant mContextMenuData;
    //! WLAN enabling in airplane mode dialog
    QSharedPointer<HbMessageBox> mWlanEnableDialog;
    //! Flag for handling WLAN scan result update ignoring
    bool mIgnoreWlanScanResults;
    //! ID of the IAP we are currently connecting
    int mConnectingIapId;

    // Not owned data
    
    //! WLAN Sniffer engine
    WlanSnifferEngine *mEngine;
    //! WLAN ON/OFF switch action
    HbAction *mSwitchWlanAction;
    //! Add WLAN manually action
    HbAction *mAddWlanAction;
    //! WLAN Sniffer list view widget
    HbListWidget *mWlanList;
    //! WLAN Status label
    HbLabel *mStatusLabel;
    //! WLAN ON/OFF button
    HbPushButton *mWlanButton;

    // Friend classes
};

#endif // WLANSNIFFERLISTVIEW_H