applicationmanagement/server/src/appmgmtprogdialog.cpp
changeset 42 aa33c2cb9a50
--- /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 <hblabel.h>
+#include <hbaction.h>
+#include <e32property.h>
+#include <qapplication.h>
+#include <apgtask.h>
+#include <e32base.h>
+#include <eikenv.h>
+#include <dmindicatorconsts.h>
+#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);       
+        }
+    }
+