deviceupdatesui/deviceupdatesplugin/src/deviceupdatesdata.cpp
author hgs
Sat, 01 May 2010 10:55:27 +0530
changeset 38 2d078e09a2f4
parent 33 7464c1e21dae
child 27 516a867811c3
permissions -rw-r--r--
201017
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     1
/*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     3
* All rights reserved.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     8
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     9
* Initial Contributors:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    11
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    12
* Contributors:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    13
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    14
* Description:  Device updates data for control panel
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    15
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    16
*/
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    17
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    18
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    19
#include <cpsettingformitemdata.h>
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    20
#include <centralrepository.h>
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    21
#include "deviceupdatesdata.h"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    22
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    23
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    24
DeviceUpdateData::DeviceUpdateData(CpItemDataHelper &itemDataHelper,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    25
													   const QString &text /*= QString()*/,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    26
													   const QString &description /*= QString()*/,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    27
													   const HbIcon &icon /*= HbIcon()*/,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    28
													   const HbDataFormModelItem *parent /*= 0*/)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    29
													   : CpSettingFormEntryItemData(itemDataHelper,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    30
													   text,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    31
													   description,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    32
													   icon,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    33
													   parent)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    34
{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    35
}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    36
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    37
DeviceUpdateData::~DeviceUpdateData()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    38
{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    39
	CloseDmUi();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    40
}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    41
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    42
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    43
// DeviceUpdateData::OpenDmAppL()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    44
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    45
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    46
void DeviceUpdateData::OpenDmAppL()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    47
	{	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    48
		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    49
    	// Create DM UI Process
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    50
			RProcess rp;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    51
			TInt cpLaunch(1);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    52
			CRepository *cenrep = CRepository::NewL(KUidSmlSyncApp);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    53
			if(cenrep)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    54
				{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    55
					cenrep->Set( KNsmlDmUILaunch, cpLaunch);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    56
					delete cenrep;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    57
					cenrep = NULL;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    58
				}	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    59
    	TInt err = rp.Create(KDMUIProcess,KNullDesC);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    60
            
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    61
    	User::LeaveIfError(err);  
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    62
    
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    63
		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    64
      	rp.Resume();    // logon OK - start the server
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    65
      
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    66
    		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    67
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    68
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    69
// ---------------------------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    70
// DeviceUpdateData::CloseDmUi
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    71
// closes DM Ui
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    72
// ---------------------------------------------------------------------------------------------	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    73
void DeviceUpdateData:: CloseDmUi()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    74
{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    75
	// Create DM UI Process
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    76
	 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    77
	TFullName processName;		
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    78
	TFindProcess process;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    79
	while ( process.Next( processName ) != KErrNotFound )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    80
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    81
		if ( ( processName.Find( KDMUIName ) != KErrNotFound ) )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    82
		{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    83
			RProcess rprocess;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    84
			if (rprocess.Open(process, EOwnerProcess) == KErrNone)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    85
			{				
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    86
				rprocess.Terminate(KErrNone);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    87
				rprocess.Close();			
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    88
			}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    89
		}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    90
	}	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    91
}	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    92
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    93
void DeviceUpdateData::onLaunchView()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    94
{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    95
	TRAP_IGNORE( OpenDmAppL() );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    96
}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    97
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    98
CpBaseSettingView *DeviceUpdateData::createSettingView() const
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    99
{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   100
	return 0;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   101
}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   102
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   103