diff -r c742e1129640 -r aa33c2cb9a50 applicationmanagement/server/src/appmgmtprogdialog.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applicationmanagement/server/src/appmgmtprogdialog.cpp Tue Jul 06 14:06:19 2010 +0300 @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2000 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: Implementation of downloading progress note + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "appmgmtdownloadmgr.h" +#include "ApplicationManagementUtility.h" + +using namespace NApplicationManagement; + +// ------------------------------------------------------------------------------------------------ +// AppMgmtProgDialog::AppMgmtProgDialog +// ------------------------------------------------------------------------------------------------ +AppMgmtProgDialog::AppMgmtProgDialog(QString aAppData, Download &mdl,int &aUserCancelled) +:m_Dlg(0) + { + m_Data=aAppData; + iDl=&mdl; + mUsrCancel = aUserCancelled; + m_Indi = 0; + } + +// ------------------------------------------------------------------------------------------------ +// AppMgmtProgDialog::~AppMgmtProgDialog() +// ------------------------------------------------------------------------------------------------ +AppMgmtProgDialog::~AppMgmtProgDialog() + { + if(m_Dlg) + { + delete m_Dlg; + m_Dlg=NULL; + } + } + +// ------------------------------------------------------------------------------------------------ +// AppMgmtProgDialog::sendServerToBackground() +// ------------------------------------------------------------------------------------------------ +void AppMgmtProgDialog::sendServerToBackground() + { + CCoeEnv* coe = CCoeEnv::Static(); + TApaTaskList taskList(coe->WsSession()); + TApaTask task=taskList.FindApp(TUid::Uid(KAppMgmtServerUid)); + if(task.Exists()) + { + task.SendToBackground(); + } + } + +// ------------------------------------------------------------------------------------------------ +// AppMgmtProgDialog::startDialog +// ------------------------------------------------------------------------------------------------ +void AppMgmtProgDialog::startDialog(int aContentSize,int aDownloaded) + { + if (m_Dlg == NULL) + { + m_Dlg = new HbProgressDialog(HbProgressDialog::ProgressDialog); + CApplicationManagementUtility::mCurrDlg = m_Dlg; + QStringList strList = m_Data.split(","); + m_Name = strList[0]; + m_SizeStr = strList[1]; + } + m_Dlg->setMinimum(0); + m_Dlg->setMaximum(aContentSize); + + m_Dlg->setAutoClose(true); + m_Dlg->setProgressValue(aDownloaded); + + QString val = hbTrId("txt_device_update_title_downloading"); + m_Dlg->setHeadingWidget(new HbLabel(val)); + + val = hbTrId("txt_deviceupdate_info_file_1_2").arg(m_Name); + val.append("\n"); + val.append(m_SizeStr); + + m_Dlg->setText(val); + val = hbTrId("txt_common_button_hide"); + HbAction* hide = new HbAction(); + hide->setText(val); + m_Dlg->clearActions(); + m_Dlg->addAction(hide); + val = hbTrId("txt_common_button_cancel"); + HbAction* cancel = new HbAction(); + cancel->setText(val); + m_Dlg->addAction(cancel); + QObject::connect(hide, SIGNAL(triggered()), this, + SLOT(hideAMProgDialog())); + QObject::connect(cancel, SIGNAL(triggered()), this, SLOT(cancelDialog())); + m_Dlg->show(); + } + +// ------------------------------------------------------------------------------------------------ +// AppMgmtProgDialog::closeAMProgDialog() +// ------------------------------------------------------------------------------------------------ +void AppMgmtProgDialog::closeAMProgDialog() + { + CApplicationManagementUtility::mCurrDlg=0; + if(m_Dlg) + { + m_Dlg->close(); + } + if(CApplicationManagementUtility::mHidden==0) + { + sendServerToBackground(); + } + else + { + m_Indi->deactivate(KScomoProgressIndicatorType); + } + } + +// ------------------------------------------------------------------------------------------------ +// AppMgmtProgDialog::cancelDialog() +// ------------------------------------------------------------------------------------------------ +void AppMgmtProgDialog::cancelDialog() + { + mUsrCancel = 1; + iDl->cancel(); + if(m_Dlg) + { + m_Dlg->close(); + } + sendServerToBackground(); + CApplicationManagementUtility::mCurrDlg=0; + } + +// ------------------------------------------------------------------------------------------------ +// AppMgmtProgDialog::hideAMProgDialog() +// ------------------------------------------------------------------------------------------------ +void AppMgmtProgDialog::hideAMProgDialog() + { + sendServerToBackground(); + + QString str = hbTrId("txt_device_update_dblist_product_code_val_download").arg(m_Name); + CApplicationManagementUtility::mHidden=1; + m_Indi = new HbIndicator(); + m_Indi->activate(KScomoProgressIndicatorType,str); + } + +// ------------------------------------------------------------------------------------------------ +// AppMgmtProgDialog::updateProgress +// ------------------------------------------------------------------------------------------------ +void AppMgmtProgDialog::updateProgress(int aProgress) + { + if(m_Dlg) + { + m_Dlg->setProgressValue(aProgress); + } + } +