diff -r 0ba996a9b75d -r 613943a21004 bluetoothengine/btnotif/btdevicedialogplugin/src/btrecvprgrsdialogwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/btnotif/btdevicedialogplugin/src/btrecvprgrsdialogwidget.cpp Tue Aug 31 15:25:10 2010 +0300 @@ -0,0 +1,182 @@ +/* +* Copyright (c) 2009 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: BtDeviceDialogWidget class declaration. +* +*/ + + +#include "btrecvprgrsdialogwidget.h" +#include "bluetoothdevicedialogs.h" + +const char* DOCML_BT_RECV_PRGRS_DIALOG = ":/docml/bt-recv-progress-dialog.docml"; + + +BTRecvPrgrsDialogWidget::BTRecvPrgrsDialogWidget(const QVariantMap ¶meters) +{ + mLoader = 0; + constructDialog(parameters); +} + +BTRecvPrgrsDialogWidget::~BTRecvPrgrsDialogWidget() +{ + if(mLoader) + { + delete mLoader; + mLoader = NULL; + } +} + +bool BTRecvPrgrsDialogWidget::setDeviceDialogParameters(const QVariantMap ¶meters) +{ + mProgressBar->setMinimum(0); + mProgressBar->setMaximum(mFileSz); + mProgressBar->setProgressValue(parameters.value("progress").toInt()); + return true; +} + +int BTRecvPrgrsDialogWidget::deviceDialogError() const +{ + return 0; +} + +void BTRecvPrgrsDialogWidget::closeDeviceDialog(bool byClient) +{ + Q_UNUSED(byClient); + mDialog->close(); +} + +HbPopup* BTRecvPrgrsDialogWidget::deviceDialogWidget() const +{ + return mDialog; +} + +QObject* BTRecvPrgrsDialogWidget::signalSender() const +{ + return const_cast(this); +} + +bool BTRecvPrgrsDialogWidget::constructDialog(const QVariantMap ¶meters) +{ + mLoader = new HbDocumentLoader(); + bool ok = false; + + mLoader->load(DOCML_BT_RECV_PRGRS_DIALOG, &ok); + if(ok) + { + mDialog = qobject_cast(mLoader->findWidget("senddialog")); + mHeading = qobject_cast(mLoader->findWidget("heading")); + + mFileName = qobject_cast(mLoader->findWidget("fileName")); + mFileSize = qobject_cast(mLoader->findWidget("fileSize")); + mFileCount = qobject_cast(mLoader->findWidget("fileCount_label")); + mFileCount->setVisible(false); + + //TODO - set icon based on the file icon. + + mHide = qobject_cast(mLoader->findObject("hideaction")); + mCancel = qobject_cast(mLoader->findObject("cancelaction")); + + mProgressBar = qobject_cast(mLoader->findWidget("horizontalProgressBar")); + + int dialogType = parameters.value(QString::number(TBluetoothDialogParams::EDialogTitle)).toInt(); + switch(dialogType) + { + case TBluetoothDialogParams::EReceive: + { + QString headingStr(hbTrId("txt_bt_title_receiving_files_from_1")); + QString senderName(parameters.value(QString::number(TBluetoothDeviceDialog::EDeviceName)).toString()); + mHeading->setPlainText(headingStr.arg(senderName)); + }break; + + default: + break; + } + mDialog->setHeadingWidget(mHeading); + + mFileName->setPlainText(parameters.value(QString::number(TBluetoothDeviceDialog::EReceivingFileName)).toString()); + + mFileSz = parameters.value(QString::number(TBluetoothDeviceDialog::EReceivingFileSize)).toInt(); + mProgressBar->setMinimum(0); + mProgressBar->setMaximum(mFileSz); + mProgressBar->setProgressValue(0); + + //Format the file size into a more readable format + if ( mFileSz >> 20 ) // size in MB + { + float sizeInMB = 0; + sizeInMB = ((float)mFileSz ) / (1024*1024); + QString fileSzMb; + fileSzMb.setNum(sizeInMB); + //TODO - check for localization + fileSzMb.append(QString(" Mb")); + mFileSize->setPlainText(fileSzMb); + } + + else if( mFileSz >> 10 ) // size in KB + { + TInt64 sizeInKB = 0; + sizeInKB = mFileSz >> 10; + QString fileSzKb; + fileSzKb.setNum(sizeInKB); + //TODO - check for localization + fileSzKb.append(QString(" Kb")); + mFileSize->setPlainText(fileSzKb); + } + + else // size is unknown or less than 1K + { + QString fileSzB; + fileSzB.setNum(mFileSz); + //TODO - check for localization + fileSzB.append(QString(" Bytes")); + mFileSize->setPlainText(fileSzB); + } + + //Set the received file count + int fCnt = parameters.value(QString::number(TBluetoothDeviceDialog::EReceivedFileCount)).toInt(); + if(fCnt > 0) + { + mFileCount->setVisible(true); + + QString fCntStr(hbTrId("txt_bt_info_ln_files_already_received", fCnt)); + mFileCount->setPlainText(fCntStr); + } + } + + mDialog->setBackgroundFaded(false); + mDialog->setDismissPolicy(HbPopup::NoDismiss); + mDialog->setTimeout(HbPopup::NoTimeout); + + connect(mHide, SIGNAL(triggered()), this, SLOT(hideClicked())); + connect(mCancel, SIGNAL(triggered()), this, SLOT(cancelClicked())); + + return true; +} + +void BTRecvPrgrsDialogWidget::hideClicked() +{ + QVariantMap data; + data.insert(QString("actionResult"), QVariant(TBluetoothDialogParams::EHide)); + emit deviceDialogData(data); + emit deviceDialogClosed(); +} + +void BTRecvPrgrsDialogWidget::cancelClicked() +{ + QVariantMap data; + data.insert(QString("actionResult"), QVariant(TBluetoothDialogParams::ECancelReceive)); + emit deviceDialogData(data); + emit deviceDialogClosed(); +} +