deviceupdatesui/deviceupdatesplugin/src/deviceupdatesdata.cpp
author hgs
Fri, 15 Oct 2010 11:39:02 +0530
changeset 67 fdbfe0a95492
parent 43 88e14c3d4c4f
permissions -rw-r--r--
201041
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
#include <cpsettingformitemdata.h>
43
hgs
parents: 33
diff changeset
    18
#include <apgtask.h>
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    19
#include "deviceupdatesdata.h"
67
hgs
parents: 43
diff changeset
    20
#include <xqserviceutil.h>
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    21
DeviceUpdateData::DeviceUpdateData(CpItemDataHelper &itemDataHelper,
67
hgs
parents: 43
diff changeset
    22
													   const QString &text,
hgs
parents: 43
diff changeset
    23
													   const QString &description,
hgs
parents: 43
diff changeset
    24
													   const HbIcon &icon,
hgs
parents: 43
diff changeset
    25
													   const HbDataFormModelItem *parent)
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    26
													   : CpSettingFormEntryItemData(itemDataHelper,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    27
													   text,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    28
													   description,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    29
													   icon,
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    30
													   parent)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    31
{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    32
}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    34
DeviceUpdateData::~DeviceUpdateData()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    35
{
43
hgs
parents: 33
diff changeset
    36
	CloseDeviceUpdatesUi();
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    37
}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    38
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    39
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    40
// DeviceUpdateData::OpenDmAppL()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    41
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    42
//
43
hgs
parents: 33
diff changeset
    43
void DeviceUpdateData::LaunchDeviceUpdatesUi()
67
hgs
parents: 43
diff changeset
    44
	{
hgs
parents: 43
diff changeset
    45
    qDebug("DeviceUpdateData::LaunchDeviceUpdatesUi >>");
hgs
parents: 43
diff changeset
    46
    RWsSession ws;
hgs
parents: 43
diff changeset
    47
    qt_symbian_throwIfError( ws.Connect() );
43
hgs
parents: 33
diff changeset
    48
    CleanupClosePushL( ws );
hgs
parents: 33
diff changeset
    49
    // Find the task with uid
hgs
parents: 33
diff changeset
    50
    TApaTaskList taskList(ws);
hgs
parents: 33
diff changeset
    51
    TApaTask task = taskList.FindApp( KUidSmlSyncApp );    
hgs
parents: 33
diff changeset
    52
    if ( task.Exists() )
hgs
parents: 33
diff changeset
    53
    {    	    
hgs
parents: 33
diff changeset
    54
        task.BringToForeground();        
hgs
parents: 33
diff changeset
    55
    }
hgs
parents: 33
diff changeset
    56
    else
hgs
parents: 33
diff changeset
    57
    {
67
hgs
parents: 43
diff changeset
    58
        qDebug("DeviceUpdateData::LaunchDeviceUpdatesUi >> embedding");
hgs
parents: 43
diff changeset
    59
        QScopedPointer<XQAiwRequest> requester (mRequestManager.create(KService,KInterface,KMethod,true)); //false for NON-EMBEDDED 
hgs
parents: 43
diff changeset
    60
        qDebug("DeviceUpdateData::LaunchDeviceUpdatesUi >> embed end");
hgs
parents: 43
diff changeset
    61
        connect(requester.data(), SIGNAL(requestOk(const QVariant&)), this, SLOT(handleOk(const QVariant&)));
hgs
parents: 43
diff changeset
    62
        connect(requester.data(), SIGNAL(requestError(int,const QString&)), this, SLOT(handleError(int,const QString&)));
hgs
parents: 43
diff changeset
    63
        if (!(requester.isNull())) 
hgs
parents: 43
diff changeset
    64
            {
hgs
parents: 43
diff changeset
    65
            m_currentRequest = requester.data();
hgs
parents: 43
diff changeset
    66
            requester->setSynchronous(false);
hgs
parents: 43
diff changeset
    67
            bool serviceRequestOk = requester->send();
hgs
parents: 43
diff changeset
    68
            if (serviceRequestOk)
hgs
parents: 43
diff changeset
    69
                {
hgs
parents: 43
diff changeset
    70
                m_currentRequest = requester.take();
hgs
parents: 43
diff changeset
    71
                }
hgs
parents: 43
diff changeset
    72
            else
hgs
parents: 43
diff changeset
    73
                {
hgs
parents: 43
diff changeset
    74
                // On a controlled error Qt Highway should call requestError,
hgs
parents: 43
diff changeset
    75
                // so clean scoped pointer here.
hgs
parents: 43
diff changeset
    76
                requester.take();
hgs
parents: 43
diff changeset
    77
                }
hgs
parents: 43
diff changeset
    78
            }  
hgs
parents: 43
diff changeset
    79
        }
hgs
parents: 43
diff changeset
    80
    CleanupStack::PopAndDestroy();  // ws    
hgs
parents: 43
diff changeset
    81
    qDebug("DeviceUpdateData::LaunchDeviceUpdatesUi >> end");	
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    82
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    83
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    84
// ---------------------------------------------------------------------------------------------
67
hgs
parents: 43
diff changeset
    85
// DeviceUpdateData::CloseDeviceUpdatesUi
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    86
// closes DM Ui
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    87
// ---------------------------------------------------------------------------------------------	
43
hgs
parents: 33
diff changeset
    88
void DeviceUpdateData:: CloseDeviceUpdatesUi()
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    89
{
67
hgs
parents: 43
diff changeset
    90
    if(m_currentRequest)
hgs
parents: 43
diff changeset
    91
        {
hgs
parents: 43
diff changeset
    92
        delete m_currentRequest;
hgs
parents: 43
diff changeset
    93
        m_currentRequest = NULL;
hgs
parents: 43
diff changeset
    94
        }
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    95
}	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    96
67
hgs
parents: 43
diff changeset
    97
// ---------------------------------------------------------------------------------------------
hgs
parents: 43
diff changeset
    98
// DeviceUpdateData::onLaunchView
hgs
parents: 43
diff changeset
    99
// ---------------------------------------------------------------------------------------------
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   100
void DeviceUpdateData::onLaunchView()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   101
{
43
hgs
parents: 33
diff changeset
   102
	LaunchDeviceUpdatesUi();
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   103
}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   104
67
hgs
parents: 43
diff changeset
   105
// ---------------------------------------------------------------------------------------------
hgs
parents: 43
diff changeset
   106
// DeviceUpdateData::createSettingView
hgs
parents: 43
diff changeset
   107
// ---------------------------------------------------------------------------------------------
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   108
CpBaseSettingView *DeviceUpdateData::createSettingView() const
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   109
{
67
hgs
parents: 43
diff changeset
   110
		return NULL;
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   111
}
67
hgs
parents: 43
diff changeset
   112
hgs
parents: 43
diff changeset
   113
// ---------------------------------------------------------------------------------------------
hgs
parents: 43
diff changeset
   114
// DeviceUpdateData::handleOk
hgs
parents: 43
diff changeset
   115
// Handles when request completes successfully
hgs
parents: 43
diff changeset
   116
// ---------------------------------------------------------------------------------------------
hgs
parents: 43
diff changeset
   117
void DeviceUpdateData::handleOk(const QVariant &returnValue)
hgs
parents: 43
diff changeset
   118
{
hgs
parents: 43
diff changeset
   119
    if(m_currentRequest)
hgs
parents: 43
diff changeset
   120
        {
hgs
parents: 43
diff changeset
   121
        delete m_currentRequest;
hgs
parents: 43
diff changeset
   122
        m_currentRequest = NULL;
hgs
parents: 43
diff changeset
   123
        }
hgs
parents: 43
diff changeset
   124
}
hgs
parents: 43
diff changeset
   125
hgs
parents: 43
diff changeset
   126
// ---------------------------------------------------------------------------------------------
hgs
parents: 43
diff changeset
   127
// DeviceUpdateData::handleError
hgs
parents: 43
diff changeset
   128
// Handles when request returns with an error
hgs
parents: 43
diff changeset
   129
// ---------------------------------------------------------------------------------------------
hgs
parents: 43
diff changeset
   130
void DeviceUpdateData::handleError(int error, const QString& errorMessage)
hgs
parents: 43
diff changeset
   131
{   
hgs
parents: 43
diff changeset
   132
    if(m_currentRequest)
hgs
parents: 43
diff changeset
   133
        {
hgs
parents: 43
diff changeset
   134
        delete m_currentRequest;
hgs
parents: 43
diff changeset
   135
        m_currentRequest = NULL;
hgs
parents: 43
diff changeset
   136
        }
hgs
parents: 43
diff changeset
   137
}