deviceupdatesui/deviceupdatesplugin/src/deviceupdatesdata.cpp
changeset 67 fdbfe0a95492
parent 43 88e14c3d4c4f
--- a/deviceupdatesui/deviceupdatesplugin/src/deviceupdatesdata.cpp	Fri Sep 17 19:58:05 2010 +0530
+++ b/deviceupdatesui/deviceupdatesplugin/src/deviceupdatesdata.cpp	Fri Oct 15 11:39:02 2010 +0530
@@ -14,37 +14,26 @@
 * Description:  Device updates data for control panel
 *
 */
-
-#include <QtCore/QProcess>
-#include <QtCore/QDir>
-#include <QtCore/QLibraryInfo>
 #include <cpsettingformitemdata.h>
 #include <apgtask.h>
 #include "deviceupdatesdata.h"
-
-
+#include <xqserviceutil.h>
 DeviceUpdateData::DeviceUpdateData(CpItemDataHelper &itemDataHelper,
-													   const QString &text /*= QString()*/,
-													   const QString &description /*= QString()*/,
-													   const HbIcon &icon /*= HbIcon()*/,
-													   const HbDataFormModelItem *parent /*= 0*/)
+													   const QString &text,
+													   const QString &description,
+													   const HbIcon &icon,
+													   const HbDataFormModelItem *parent)
 													   : CpSettingFormEntryItemData(itemDataHelper,
 													   text,
 													   description,
 													   icon,
 													   parent)
 {
-	mproc = NULL;
 }
 
 DeviceUpdateData::~DeviceUpdateData()
 {
 	CloseDeviceUpdatesUi();
-	if (mproc)
-	{
-		delete mproc;
-		mproc = NULL;
-	}
 }
 
 // -----------------------------------------------------------------------------
@@ -52,10 +41,10 @@
 // -----------------------------------------------------------------------------
 //
 void DeviceUpdateData::LaunchDeviceUpdatesUi()
-	{	
-		
-		RWsSession ws;
-    User::LeaveIfError( ws.Connect() );
+	{
+    qDebug("DeviceUpdateData::LaunchDeviceUpdatesUi >>");
+    RWsSession ws;
+    qt_symbian_throwIfError( ws.Connect() );
     CleanupClosePushL( ws );
     // Find the task with uid
     TApaTaskList taskList(ws);
@@ -66,40 +55,83 @@
     }
     else
     {
- 				// Create DM UI Process
-    		if(!mproc)
-    			mproc = new QProcess();
-    		if(mproc->state() != QProcess::Running)
-    		{
-    			QString app = QLatin1String("deviceupdates");
-    			QStringList args;
-    			args<< QLatin1String("-cp");
-    			mproc->start(app, args);
-    			mproc->waitForStarted();
-    		}     
-    }
-    CleanupStack::PopAndDestroy();  // ws    		
+        qDebug("DeviceUpdateData::LaunchDeviceUpdatesUi >> embedding");
+        QScopedPointer<XQAiwRequest> requester (mRequestManager.create(KService,KInterface,KMethod,true)); //false for NON-EMBEDDED 
+        qDebug("DeviceUpdateData::LaunchDeviceUpdatesUi >> embed end");
+        connect(requester.data(), SIGNAL(requestOk(const QVariant&)), this, SLOT(handleOk(const QVariant&)));
+        connect(requester.data(), SIGNAL(requestError(int,const QString&)), this, SLOT(handleError(int,const QString&)));
+        if (!(requester.isNull())) 
+            {
+            m_currentRequest = requester.data();
+            requester->setSynchronous(false);
+            bool serviceRequestOk = requester->send();
+            if (serviceRequestOk)
+                {
+                m_currentRequest = requester.take();
+                }
+            else
+                {
+                // On a controlled error Qt Highway should call requestError,
+                // so clean scoped pointer here.
+                requester.take();
+                }
+            }  
+        }
+    CleanupStack::PopAndDestroy();  // ws    
+    qDebug("DeviceUpdateData::LaunchDeviceUpdatesUi >> end");	
 	}
 
 // ---------------------------------------------------------------------------------------------
-// DeviceUpdateData::CloseDmUi
+// DeviceUpdateData::CloseDeviceUpdatesUi
 // closes DM Ui
 // ---------------------------------------------------------------------------------------------	
 void DeviceUpdateData:: CloseDeviceUpdatesUi()
 {
-	if(( mproc )&&(mproc->state() == QProcess::Running))
-  	{
-    			mproc->close();
-    }
-
+    if(m_currentRequest)
+        {
+        delete m_currentRequest;
+        m_currentRequest = NULL;
+        }
 }	
 
+// ---------------------------------------------------------------------------------------------
+// DeviceUpdateData::onLaunchView
+// ---------------------------------------------------------------------------------------------
 void DeviceUpdateData::onLaunchView()
 {
 	LaunchDeviceUpdatesUi();
 }
 
+// ---------------------------------------------------------------------------------------------
+// DeviceUpdateData::createSettingView
+// ---------------------------------------------------------------------------------------------
 CpBaseSettingView *DeviceUpdateData::createSettingView() const
 {
-		return 0;
+		return NULL;
 }
+
+// ---------------------------------------------------------------------------------------------
+// DeviceUpdateData::handleOk
+// Handles when request completes successfully
+// ---------------------------------------------------------------------------------------------
+void DeviceUpdateData::handleOk(const QVariant &returnValue)
+{
+    if(m_currentRequest)
+        {
+        delete m_currentRequest;
+        m_currentRequest = NULL;
+        }
+}
+
+// ---------------------------------------------------------------------------------------------
+// DeviceUpdateData::handleError
+// Handles when request returns with an error
+// ---------------------------------------------------------------------------------------------
+void DeviceUpdateData::handleError(int error, const QString& errorMessage)
+{   
+    if(m_currentRequest)
+        {
+        delete m_currentRequest;
+        m_currentRequest = NULL;
+        }
+}