diff -r df7a93ede42e -r a0ea99b6fa53 bluetoothengine/btnotif/btdevicedialogplugin/src/btsenddialogwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/btnotif/btdevicedialogplugin/src/btsenddialogwidget.cpp Mon May 17 11:06:23 2010 +0300 @@ -0,0 +1,200 @@ +/* + * 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: + * + */ + + +#include +#include +#include +#include +#include +#include +#include "btsenddialogwidget.h" + + + +const char* DOCML_BT_SEND_DIALOG = ":/docml/bt-send-dialog.docml"; + +BTSendDialogWidget::BTSendDialogWidget(const QVariantMap ¶meters) +:HbDialog() + { + // LOG(ELevel1,_L("BTSendDialogWidget::BTSendDialogWidget")); + constructDialog(parameters); + + } + +BTSendDialogWidget::~BTSendDialogWidget() + { + if(mLoader) + { + delete mLoader; + mLoader = NULL; + } + if(mContentItemModel) + { + delete mContentItemModel; + mContentItemModel = NULL; + } + } + +bool BTSendDialogWidget::setDeviceDialogParameters(const QVariantMap ¶meters) + { + // LOG(ELevel1,_L("BTSendDialogWidget::setDeviceDialogParameters ")); + + if(mFileIndex != parameters.value("currentFileIdx").toString().toInt() ) + { + mLabel->setTextWrapping(Hb::TextWordWrap); + mLabel->setAlignment(Qt::AlignHCenter); + //Todo - replace this with the actual text from parameters + + QString headLabel; + headLabel.append(QString("Sending file ")); + headLabel.append(parameters.value("currentFileIdx").toString()); + headLabel.append('/'); + headLabel.append(parameters.value("totalFilesCnt").toString()); + headLabel.append(QString(" to ")); + headLabel.append(parameters.value("destinationName").toString()); + mLabel->setPlainText(headLabel); + + QStringList info; + info.append(parameters.value("fileName").toString()); + info.append(parameters.value("fileSzTxt").toString()); + + QStandardItem* listitem = new QStandardItem(); + // parameters. + listitem->setData(info, Qt::DisplayRole); + + //Todo - Insert icons based on the device class + QIcon icon(QString(":/icons/qtg_large_bluetooth.svg")); + listitem->setIcon(icon); + + delete mContentItemModel; + mContentItemModel = new QStandardItemModel(this); + mListView->setModel(mContentItemModel);//, prototype); + + mContentItemModel->appendRow(listitem); + + mProgressBar->setMinimum(0); + mProgressBar->setProgressValue(0); + mProgressBar->setMaximum(parameters.value("fileSz").toInt()); + mFileIndex = parameters.value("currentFileIdx").toString().toInt(); + } + else + { + mProgressBar->setProgressValue(parameters.value("progressValue").toInt()); + } + // LOG(ELevel1,_L("BTSendDialogWidget::setDeviceDialogParameters Completed")); + return true; + } + +int BTSendDialogWidget::deviceDialogError() const + { + return 0; + } + +void BTSendDialogWidget::closeDeviceDialog(bool byClient) + { + Q_UNUSED(byClient); + this->close(); + } + +HbPopup* BTSendDialogWidget::deviceDialogWidget() const + { + return const_cast(this); + } + +QObject *BTSendDialogWidget::signalSender() const +{ + return const_cast(this); +} + +bool BTSendDialogWidget::constructDialog(const QVariantMap&/*parameters*/) + { + // LOG(ELevel1,_L("BTSendDialogWidget::constructDialog ")); + mLoader = new HbDocumentLoader(); + bool ok = false; + + mLoader->load(DOCML_BT_SEND_DIALOG, &ok); + if(ok) + { + mLabel = qobject_cast(mLoader->findWidget("heading")); + this->setHeadingWidget(mLabel); + mListView = qobject_cast(mLoader->findWidget("listView")); + if(mListView) + { + //Todo - replace this with the actual text from parameters + mContentItemModel = new QStandardItemModel(this); + mListView->setModel(mContentItemModel);//, prototype); + } + + mProgressBar = qobject_cast(mLoader->findWidget("horizontalProgressBar")); + + HbAction* hide = new HbAction("Hide"); + HbAction* cancel = new HbAction("Cancel"); + + this->addAction(hide); + this->addAction(cancel); + + QGraphicsWidget *widget = mLoader->findWidget(QString("container")); + this->setContentWidget(widget); + } + + this->setBackgroundFaded(false); + setDismissPolicy(HbPopup::NoDismiss); + setTimeout(HbPopup::NoTimeout); + + this->actions().first()->disconnect(this); + connect(this, SIGNAL(finished(HbAction*)), this, SLOT(inputClosed(HbAction*))); + + return true; + } + +void BTSendDialogWidget::hideEvent(QHideEvent *event) + { + HbDialog::hideEvent(event); + emit deviceDialogClosed(); + } + +void BTSendDialogWidget::showEvent(QShowEvent *event) + { + HbDialog::showEvent(event); + } + +/*void BTSendDialogWidget::hideClicked() + { + // TODO + this->close(); + emit deviceDialogClosed(); + } + +void BTSendDialogWidget::cancelClicked() + { + // TODO + this->close(); + emit deviceDialogClosed(); + }*/ + +void BTSendDialogWidget::inputClosed(HbAction* action) + { + QVariantMap data; + + HbDialog *dlg=static_cast(sender()); + if(dlg->actions().first() == action) { + } + else if(dlg->actions().at(1) == action) { + } + } +