deviceupdatesui/deviceupdatesplugin/src/deviceupdatesdata.cpp
branchRCL_3
changeset 57 6757f1e2efd2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/deviceupdatesplugin/src/deviceupdatesdata.cpp	Tue Aug 31 15:05:55 2010 +0300
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 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:  Device updates data for control panel
+*
+*/
+
+#include <QtCore/QProcess>
+#include <QtCore/QDir>
+#include <QtCore/QLibraryInfo>
+#include <cpsettingformitemdata.h>
+#include <apgtask.h>
+#include "deviceupdatesdata.h"
+
+
+DeviceUpdateData::DeviceUpdateData(CpItemDataHelper &itemDataHelper,
+													   const QString &text /*= QString()*/,
+													   const QString &description /*= QString()*/,
+													   const HbIcon &icon /*= HbIcon()*/,
+													   const HbDataFormModelItem *parent /*= 0*/)
+													   : CpSettingFormEntryItemData(itemDataHelper,
+													   text,
+													   description,
+													   icon,
+													   parent)
+{
+	mproc = NULL;
+}
+
+DeviceUpdateData::~DeviceUpdateData()
+{
+	CloseDeviceUpdatesUi();
+	if (mproc)
+	{
+		delete mproc;
+		mproc = NULL;
+	}
+}
+
+// -----------------------------------------------------------------------------
+// DeviceUpdateData::OpenDmAppL()
+// -----------------------------------------------------------------------------
+//
+void DeviceUpdateData::LaunchDeviceUpdatesUi()
+	{	
+		
+		RWsSession ws;
+    User::LeaveIfError( ws.Connect() );
+    CleanupClosePushL( ws );
+    // Find the task with uid
+    TApaTaskList taskList(ws);
+    TApaTask task = taskList.FindApp( KUidSmlSyncApp );    
+    if ( task.Exists() )
+    {    	    
+        task.BringToForeground();        
+    }
+    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    		
+	}
+
+// ---------------------------------------------------------------------------------------------
+// DeviceUpdateData::CloseDmUi
+// closes DM Ui
+// ---------------------------------------------------------------------------------------------	
+void DeviceUpdateData:: CloseDeviceUpdatesUi()
+{
+	if(( mproc )&&(mproc->state() == QProcess::Running))
+  	{
+    			mproc->close();
+    }
+
+}	
+
+void DeviceUpdateData::onLaunchView()
+{
+	LaunchDeviceUpdatesUi();
+}
+
+CpBaseSettingView *DeviceUpdateData::createSettingView() const
+{
+		return 0;
+}