applicationmanagement/server/src/appmgmtprogdialog.cpp
author hgs
Fri, 17 Sep 2010 19:58:05 +0530
changeset 62 03849bd79877
parent 47 d316aecb87fd
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     1
/*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2000 Nokia Corporation and/or its subsidiary(-ies). 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     8
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    11
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    12
 * Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    13
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    14
 * Description: Implementation of downloading progress note
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    15
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    16
 */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    17
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    18
#include <hblabel.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    19
#include <hbaction.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    20
#include <e32property.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    21
#include <qapplication.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    22
#include <apgtask.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    23
#include <e32base.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    24
#include <eikenv.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    25
#include <dmindicatorconsts.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    26
#include "appmgmtdownloadmgr.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    27
#include "ApplicationManagementUtility.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    28
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    29
using namespace NApplicationManagement;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    30
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    31
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    32
// AppMgmtProgDialog::AppMgmtProgDialog
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    33
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    34
AppMgmtProgDialog::AppMgmtProgDialog(QString aAppData, Download &mdl,int &aUserCancelled)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    35
:m_Dlg(0)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    36
    {   
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    37
    m_Data=aAppData;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    38
    iDl=&mdl;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    39
    mUsrCancel = aUserCancelled;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    40
    m_Indi = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    41
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    42
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    43
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    44
// AppMgmtProgDialog::~AppMgmtProgDialog()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    45
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    46
AppMgmtProgDialog::~AppMgmtProgDialog()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    47
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    48
    if(m_Dlg)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    49
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    50
        delete m_Dlg;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    51
        m_Dlg=NULL;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    52
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    53
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    54
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    55
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    56
// AppMgmtProgDialog::sendServerToBackground()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    57
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    58
void AppMgmtProgDialog::sendServerToBackground()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    59
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    60
    CCoeEnv* coe = CCoeEnv::Static();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    61
    TApaTaskList taskList(coe->WsSession());
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    62
    TApaTask task=taskList.FindApp(TUid::Uid(KAppMgmtServerUid));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    63
    if(task.Exists())
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    64
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    65
        task.SendToBackground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    66
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    67
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    68
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    69
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    70
// AppMgmtProgDialog::startDialog
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    71
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    72
void AppMgmtProgDialog::startDialog(int aContentSize,int aDownloaded)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    73
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    74
    if (m_Dlg == NULL)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    75
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    76
        m_Dlg = new HbProgressDialog(HbProgressDialog::ProgressDialog);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    77
        CApplicationManagementUtility::mCurrDlg = m_Dlg;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    78
        QStringList strList = m_Data.split(",");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    79
        m_Name = strList[0];
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    80
        m_SizeStr = strList[1];
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    81
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    82
    m_Dlg->setMinimum(0);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    83
    m_Dlg->setMaximum(aContentSize);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    84
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    85
    m_Dlg->setAutoClose(true);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    86
    m_Dlg->setProgressValue(aDownloaded);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    87
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    88
    QString val = hbTrId("txt_device_update_title_downloading");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    89
    m_Dlg->setHeadingWidget(new HbLabel(val));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    90
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    91
    val = hbTrId("txt_deviceupdate_info_file_1_2").arg(m_Name);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    92
    val.append("\n");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    93
    val.append(m_SizeStr);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    94
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    95
    m_Dlg->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    96
    val = hbTrId("txt_common_button_hide");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    97
    HbAction* hide = new HbAction();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    98
    hide->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    99
    m_Dlg->clearActions();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   100
    m_Dlg->addAction(hide);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   101
    val = hbTrId("txt_common_button_cancel");
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   102
    HbAction* cancel = new HbAction();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   103
    cancel->setText(val);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   104
    m_Dlg->addAction(cancel);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   105
    QObject::connect(hide, SIGNAL(triggered()), this,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   106
            SLOT(hideAMProgDialog()));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   107
    QObject::connect(cancel, SIGNAL(triggered()), this, SLOT(cancelDialog()));
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   108
    m_Dlg->show();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   109
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   110
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   111
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   112
// AppMgmtProgDialog::closeAMProgDialog()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   113
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   114
void AppMgmtProgDialog::closeAMProgDialog()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   115
    {    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   116
    CApplicationManagementUtility::mCurrDlg=0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   117
    if(m_Dlg)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   118
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   119
        m_Dlg->close();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   120
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   121
    if(CApplicationManagementUtility::mHidden==0)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   122
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   123
        sendServerToBackground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   124
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   125
    else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   126
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   127
        m_Indi->deactivate(KScomoProgressIndicatorType);   
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   128
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   129
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   130
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   131
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   132
// AppMgmtProgDialog::cancelDialog()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   133
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   134
void AppMgmtProgDialog::cancelDialog()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   135
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   136
    mUsrCancel = 1;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   137
    iDl->cancel();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   138
    if(m_Dlg)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   139
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   140
        m_Dlg->close();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   141
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   142
    sendServerToBackground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   143
    CApplicationManagementUtility::mCurrDlg=0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   144
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   145
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   146
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   147
// AppMgmtProgDialog::hideAMProgDialog()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   148
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   149
void AppMgmtProgDialog::hideAMProgDialog()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   150
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   151
    sendServerToBackground();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   152
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   153
    QString str = hbTrId("txt_device_update_dblist_product_code_val_download").arg(m_Name);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   154
    CApplicationManagementUtility::mHidden=1;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   155
    m_Indi = new HbIndicator();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   156
    m_Indi->activate(KScomoProgressIndicatorType,str);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   157
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   158
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   159
// ------------------------------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   160
// AppMgmtProgDialog::updateProgress
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   161
// ------------------------------------------------------------------------------------------------ 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   162
void AppMgmtProgDialog::updateProgress(int aProgress)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   163
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   164
    if(m_Dlg)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   165
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   166
        m_Dlg->setProgressValue(aProgress);       
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   167
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   168
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   169