wlanutilities/wlanentryplugin/src/cpwlanentryitemdata.cpp
changeset 38 2dc6da6fb431
parent 19 10810c91db26
child 56 de27cc8389dd
--- a/wlanutilities/wlanentryplugin/src/cpwlanentryitemdata.cpp	Thu May 27 13:59:00 2010 +0300
+++ b/wlanutilities/wlanentryplugin/src/cpwlanentryitemdata.cpp	Fri Jun 11 14:43:07 2010 +0300
@@ -1,8 +1,8 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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""
+* 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".
 *
@@ -11,34 +11,40 @@
 *
 * Contributors:
 *
-* Description:  
-*
+* Description: 
+* WLAN Entry plugin item data implementation.
 */
 
 // System includes
 
+#include <HbApplication>
+#include <HbLabel>
+#include <HbDataForm>
+
 #ifdef WLANENTRYPLUGIN_SERVICETRACES    
 #include <xqservicelog.h>
 #endif
-#include <xqservicerequest.h>
+#include <xqappmgr.h>
+#include <xqaiwdeclplat.h>
 
-#include <HbLabel>
-#include <HbDataForm>
+// This workaround can be removed when XQOP_WLAN_SNIFFER is correctly
+// defined without the "void" parameter restriction:
+#undef XQOP_WLAN_SNIFFER
+#define XQOP_WLAN_SNIFFER  QLatin1String("listView()")
 
 #include <cpitemdatahelper.h>
 #include <cpbasesettingview.h>
 
 // User includes
 
+#include "wlanstatusinfo.h"
+#include "cpwlanentryitemdata.h"
+
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "cpwlanentryitemdataTraces.h"
 #endif
 
-#include "wlanstatusinfo.h"
-
-#include "cpwlanentryitemdata.h"
-
 /*!
     \class CpWlanEntryItemData
     \brief Implementation of WLAN Status Plugin entry item data.
@@ -55,13 +61,15 @@
 
 /*!
     Constructor.
+    
+    @param[in,out] itemDataHelper Control Panel item data helper object.
 */
 
 CpWlanEntryItemData::CpWlanEntryItemData(CpItemDataHelper &itemDataHelper) :
     CpSettingFormEntryItemData(itemDataHelper, hbTrId("txt_occ_dblist_wireless_lan")),
     mWlanStatusInfo(new WlanStatusInfo(this))
 {
-    OstTraceFunctionEntry1(CPWLANENTRYITEMDATA_CPWLANENTRYITEMDATA_ENTRY, this);
+    OstTraceFunctionEntry0(CPWLANENTRYITEMDATA_CPWLANENTRYITEMDATA_ENTRY);
     
     // Listen for WLAN status updates
     bool connectStatus = connect(
@@ -74,7 +82,7 @@
     // Update to show initial WLAN status.
     statusUpdate();
     
-    OstTraceFunctionExit1(CPWLANENTRYITEMDATA_CPWLANENTRYITEMDATA_EXIT, this);
+    OstTraceFunctionExit0(CPWLANENTRYITEMDATA_CPWLANENTRYITEMDATA_EXIT);
 }
 
 /*!
@@ -83,8 +91,8 @@
 
 CpWlanEntryItemData::~CpWlanEntryItemData()
 {
-    OstTraceFunctionEntry1(DUP1_CPWLANENTRYITEMDATA_CPWLANENTRYITEMDATA_ENTRY, this);
-    OstTraceFunctionExit1(DUP1_CPWLANENTRYITEMDATA_CPWLANENTRYITEMDATA_EXIT, this);
+    OstTraceFunctionEntry0(DUP1_CPWLANENTRYITEMDATA_CPWLANENTRYITEMDATA_ENTRY);
+    OstTraceFunctionExit0(DUP1_CPWLANENTRYITEMDATA_CPWLANENTRYITEMDATA_EXIT);
 }
 
 /*!
@@ -93,7 +101,7 @@
 
 CpBaseSettingView *CpWlanEntryItemData::createSettingView() const
 {
-    OstTraceFunctionEntry1(CPWLANENTRYITEMDATA_CREATESETTINGVIEW_ENTRY, this);
+    OstTraceFunctionEntry0(CPWLANENTRYITEMDATA_CREATESETTINGVIEW_ENTRY);
     
 #ifdef WLANENTRYPLUGIN_SERVICETRACES    
     qInstallMsgHandler(XQSERVICEMESSAGEHANDLER);
@@ -101,15 +109,33 @@
 #endif
 
     // Execute synchronous WLAN Sniffer list view
-    XQServiceRequest* snd = new XQServiceRequest("com.nokia.services.wlansniffer.list","listView()",true);
-    bool status = snd->send();
+    XQApplicationManager aiwMgr;
+    XQAiwRequest *request = aiwMgr.create(
+        "wlansniffer",
+        XQI_WLAN_SNIFFER,
+        XQOP_WLAN_SNIFFER,
+        true);
+
+    // The WLAN Sniffer service must always exist
+    Q_ASSERT(request);
+
+    // The service is synchronous & embedded
+    request->setSynchronous(true);
+    
+    // Window title needs to be set to "Control Panel"
+    XQRequestInfo reqInfo;
+    // TODO: Start using the official define when available
+    reqInfo.setInfo("WindowTitle", hbTrId("txt_cp_title_control_panel"));
+    request->setInfo(reqInfo);
+    
+    bool status = request->send();
 #ifdef WLANENTRYPLUGIN_SERVICETRACES    
     XQSERVICE_DEBUG_PRINT("CpWlanEntryItemData::createSettingView listView() service request completed");
 #endif    
     Q_ASSERT(status);
-    delete snd;
+    delete request;
 
-    OstTraceFunctionExit1(CPWLANENTRYITEMDATA_CREATESETTINGVIEW_EXIT, this);
+    OstTraceFunctionExit0(CPWLANENTRYITEMDATA_CREATESETTINGVIEW_EXIT);
     return 0;
 }
 
@@ -119,31 +145,37 @@
  */
 void CpWlanEntryItemData::statusUpdate()
 {
-    OstTraceFunctionEntry1(CPWLANENTRYITEMDATA_STATUSUPDATE_ENTRY, this);
+    OstTraceFunctionEntry0(CPWLANENTRYITEMDATA_STATUSUPDATE_ENTRY);
     
     // Build icon with (possible) badge
-    HbIcon wlanIcon("qtg_large_wlan");
+    HbIcon wlanIcon;
     switch (mWlanStatusInfo->status()) {
+    case WlanStatusInfo::WlanStatusIdle:
+        wlanIcon = HbIcon("qtg_large_wlan");
+        break;
+        
     case WlanStatusInfo::WlanStatusOff:
-#ifdef WLANSTATUSICONBADGING                                // TODO: Remove flagging when icon badging is supported       
-        wlanIcon.addBadge(
-            Qt::AlignTop | Qt::AlignRight,
-            HbIcon("pri_small_super_off"));
-#endif        
+        wlanIcon = HbIcon("qtg_large_wlan_off");
         break;
         
     case WlanStatusInfo::WlanStatusConnected:
-#ifdef WLANSTATUSICONBADGING                                // TODO: Remove flagging when icon badging is supported       
+        wlanIcon = HbIcon("qtg_large_wlan");
         wlanIcon.addBadge(
-            Qt::AlignTop | Qt::AlignRight,
-            HbIcon("qtg_small_online"));
+            Qt::AlignBottom | Qt::AlignRight,
+            HbIcon("qtg_small_connection"));
+        break;
+        
+#ifndef QT_NO_DEBUG
+    default:
+        // Unsupported status type detected
+        Q_ASSERT(0);
+        break;
 #endif        
-        break;
     }
     
     // Set the updated WLAN status
     this->setEntryItemIcon(wlanIcon);
     this->setDescription(mWlanStatusInfo->statusText());
     
-    OstTraceFunctionExit1(CPWLANENTRYITEMDATA_STATUSUPDATE_EXIT, this);
+    OstTraceFunctionExit0(CPWLANENTRYITEMDATA_STATUSUPDATE_EXIT);
 }