diff -r b9b00b134b0d -r d316aecb87fd applicationmanagement/server/inc/appmgmtdownloadmgr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applicationmanagement/server/inc/appmgmtdownloadmgr.h Tue Jul 13 04:01:20 2010 +0530 @@ -0,0 +1,145 @@ +/* + * 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 applicationmanagement components + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "appmgmtprogdialog.h" +#include "AMDeploymentComponent.h" +#include "appmgmtnotifier.h" +#define KOmaDMAppUid 0x101F6DE5 +const TReal KSizeDivisor = 1024.0; + +const TUint32 KDownloadActive = 0x0000008; +enum TDriveSize + { + EKb = -1, + EMb = 0, + EGb = 1 + }; + +using namespace WRT; + +namespace NApplicationManagement + { + + class MDownloadMgrQTCallback + { + public: + virtual void DownloadCompleted()=0; + virtual void DownloadFailed(TInt aDownloaderr)=0; + virtual void SetStatus(TInt aStatus)=0; + }; + + class CDialogWait : public CActive + { + public: + static CDialogWait* NewL(); + CDialogWait(); + void ConstructL(); + ~CDialogWait(); + void StartWait(); + void Stop(); + protected: + void DoCancel(); + void RunL(); + TInt RunError(TInt aError); + private: + CActiveSchedulerWait* iWait; + }; + + class appmgmtdownloadmgr : public QWidget + { + + Q_OBJECT + + public: + appmgmtdownloadmgr(QWidget* parent, MDownloadMgrQTCallback& wrapper, TRequestStatus& aStatus); + ~appmgmtdownloadmgr(); + + void startDownload(CDeploymentComponent *aComponent); + void showDialog(CDeploymentComponent *aComponent); + void showUninstallDialog(const CDeploymentComponent &aCompo, TRequestStatus &s); + void updateProgress(TInt32 aDownloadedSize, TInt32 aContentSize); + void closeProgress(); + void setUri(); + void getUri(); + void setState(); + void getState(); + void MimeType(QString& aMimeType); + void FileName(QString& afilename); + void SetMimeType(); + void sendSrvToBg(); + QString convertSize(); + int currDwnldStatForGenericAlert(int dwnldstatus); + + public slots: + bool downloadMgrEventRecieved(DownloadManagerEvent *event); + bool downloadEventRecieved(DownloadEvent *event); + void dialogSlot(HbAction*); + void defaultDriveChanged(int); + private: + void getAvailableDrives(); + void showInstalltoDialog(); + void showDownloadDialog(); + private: + QStringList m_drivList; + QString m_appName; + HbAction* mOkButton; + HbAction* mCancel; + QString mSize; + QString mSizeFormat; + QString mNotifierdata, mDialogData; + QString m_sizeStr; + QString m_mimetype; + HbComboBox* mDriveBox; + HbDialog* mDialog; + public: + // Functions from base classes + TBuf<256> drilist; + DownloadManager* iDownloadManager; + Download* iDl; + int m_inProgress; + int m_currentDownloadedSize; + int m_totalSize; + CDialogWait* iWait; + TUint32 iProgStarted; + TUint32 iSetFinalValue; + int m_downloadStatus; + AppMgmtProgDialog *iProgressNote; + TDownloadTarget iOperationType; + private: + // Data + MDownloadMgrQTCallback& m_callback; + CDeploymentComponent* iComp; + HBufC *iFileName; + HBufC8 *iContentType; + HBufC8 *iURI; + TBool iProgressCancelled; + TBool iDialogAccepted; + TRequestStatus& iStatus; + AppMgmtNotifier* mNote; + int mEndReported; + int mNetworkLoss; + }; + + }