diff -r b0aebde9b1fb -r 9e2a905b887f bluetoothengine/btnotif/btdevicedialogplugin/src/btrecvcompleteddialogwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/btnotif/btdevicedialogplugin/src/btrecvcompleteddialogwidget.cpp Fri Jul 23 15:57:13 2010 +0300 @@ -0,0 +1,202 @@ +/* +* 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: BTRecvcompletedDialogWidget class declaration. +* +*/ + +#include +#include +#include +#include "btrecvcompleteddialogwidget.h" +#include "bluetoothdevicedialogs.h" + +const char* DOCML_BT_RECV_CMPLTD_DIALOG = ":/docml/bt-receive-done-dialog.docml"; +const qint64 KBluetoothMsgsConversationId = 0x01; + + +CoversationViewServiceStarter::CoversationViewServiceStarter(qint64 conversationId) +:mCnvId(conversationId) + { + + } + +CoversationViewServiceStarter::~CoversationViewServiceStarter() + { + + } + +void CoversationViewServiceStarter::run() + { + QList args; + QString serviceName("com.nokia.services.hbserviceprovider"); + QString operation("open(qint64)"); + XQAiwRequest* request; + XQApplicationManager appManager; + request = appManager.create(serviceName, "conversationview", operation, false); // not embedded + if ( request == NULL ) + { + return; + } + args << QVariant(mCnvId); + request->setArguments(args); + request->send(); + delete request; + } + + +BTRecvcompletedDialogWidget::BTRecvcompletedDialogWidget(const QVariantMap ¶meters) +{ + mLoader = 0; + constructDialog(parameters); +} + +BTRecvcompletedDialogWidget::~BTRecvcompletedDialogWidget() +{ + if(mLoader) + { + delete mLoader; + mLoader = NULL; + } +} + +bool BTRecvcompletedDialogWidget::setDeviceDialogParameters(const QVariantMap ¶meters) +{ + return true; +} + +int BTRecvcompletedDialogWidget::deviceDialogError() const +{ + return 0; +} + +void BTRecvcompletedDialogWidget::closeDeviceDialog(bool byClient) +{ + Q_UNUSED(byClient); + mDialog->close(); +} + +HbPopup* BTRecvcompletedDialogWidget::deviceDialogWidget() const +{ + return mDialog; +} + +QObject* BTRecvcompletedDialogWidget::signalSender() const +{ + return const_cast(this); +} + +bool BTRecvcompletedDialogWidget::constructDialog(const QVariantMap ¶meters) +{ + mLoader = new HbDocumentLoader(); + bool ok = false; + + mLoader->load(DOCML_BT_RECV_CMPLTD_DIALOG, &ok); + if(ok) + { + mDialog = qobject_cast(mLoader->findWidget("recvCompleteddialog")); + 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. + + mShow = qobject_cast(mLoader->findObject("showaction")); + mCancel = qobject_cast(mLoader->findObject("cancelaction")); + + QString headingStr(hbTrId("txt_bt_title_received_from_1")); + QString senderName(parameters.value(QString::number(TBluetoothDeviceDialog::EDeviceName)).toString()); + mHeading->setPlainText(headingStr.arg(senderName)); + mDialog->setHeadingWidget(mHeading); + + mFileName->setPlainText(parameters.value(QString::number(TBluetoothDeviceDialog::EReceivingFileName)).toString()); + + mFileSz = parameters.value(QString::number(TBluetoothDeviceDialog::EReceivingFileSize)).toInt(); + + //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 > 1) + { + mFileCount->setVisible(true); + + QString fCntStr(hbTrId("txt_bt_info_ln_other_files_received", (fCnt-1))); + mFileCount->setPlainText(fCntStr); + } + } + + mDialog->setBackgroundFaded(false); + mDialog->setDismissPolicy(HbPopup::NoDismiss); + mDialog->setTimeout(HbPopup::NoTimeout); + + connect(mShow, SIGNAL(triggered()), this, SLOT(showClicked())); + connect(mCancel, SIGNAL(triggered()), this, SLOT(cancelClicked())); + + return true; +} + +void BTRecvcompletedDialogWidget::showClicked() +{ + CoversationViewServiceStarter* service = new CoversationViewServiceStarter(KBluetoothMsgsConversationId); + service->setAutoDelete(true); + + QThreadPool::globalInstance()->start(service); + + QVariantMap data; + data.insert(QString("actionResult"), QVariant(TBluetoothDialogParams::EShow)); + emit deviceDialogData(data); + emit deviceDialogClosed(); +} + +void BTRecvcompletedDialogWidget::cancelClicked() +{ + QVariantMap data; + data.insert(QString("actionResult"), QVariant(TBluetoothDialogParams::ECancelShow)); + emit deviceDialogData(data); + emit deviceDialogClosed(); +} +