bluetoothengine/btnotif/btdevicedialogplugin/src/btrecvprgrsdialogwidget.cpp
changeset 40 997690c3397a
child 41 0b2439c3e397
equal deleted inserted replaced
37:91746b151f97 40:997690c3397a
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  BtDeviceDialogWidget class declaration.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include "btrecvprgrsdialogwidget.h"
       
    20 #include "bluetoothdevicedialogs.h"
       
    21 
       
    22 const char* DOCML_BT_RECV_PRGRS_DIALOG = ":/docml/bt-recv-progress-dialog.docml";
       
    23 
       
    24 
       
    25 BTRecvPrgrsDialogWidget::BTRecvPrgrsDialogWidget(const QVariantMap &parameters)
       
    26 {
       
    27     mLoader = 0;
       
    28     constructDialog(parameters);
       
    29 }
       
    30 
       
    31 BTRecvPrgrsDialogWidget::~BTRecvPrgrsDialogWidget()
       
    32 {
       
    33     if(mLoader)
       
    34     {
       
    35         delete mLoader;
       
    36         mLoader = NULL;
       
    37     }
       
    38 }
       
    39 
       
    40 bool BTRecvPrgrsDialogWidget::setDeviceDialogParameters(const QVariantMap &parameters)
       
    41 {
       
    42     mProgressBar->setMinimum(0);
       
    43     mProgressBar->setMaximum(mFileSz);
       
    44     mProgressBar->setProgressValue(parameters.value("progress").toInt());
       
    45     return true;
       
    46 }
       
    47 
       
    48 int BTRecvPrgrsDialogWidget::deviceDialogError() const
       
    49 {
       
    50     return 0;
       
    51 }
       
    52 
       
    53 void BTRecvPrgrsDialogWidget::closeDeviceDialog(bool byClient)
       
    54 {
       
    55     Q_UNUSED(byClient);
       
    56     mDialog->close();
       
    57 }
       
    58 
       
    59 HbPopup* BTRecvPrgrsDialogWidget::deviceDialogWidget() const
       
    60 {
       
    61     return mDialog;
       
    62 }
       
    63 
       
    64 QObject* BTRecvPrgrsDialogWidget::signalSender() const
       
    65 {
       
    66     return const_cast<BTRecvPrgrsDialogWidget*>(this);
       
    67 }
       
    68 
       
    69 bool BTRecvPrgrsDialogWidget::constructDialog(const QVariantMap &parameters)
       
    70 {
       
    71     mLoader = new HbDocumentLoader();
       
    72     bool ok = false;
       
    73     
       
    74     mLoader->load(DOCML_BT_RECV_PRGRS_DIALOG, &ok);
       
    75     if(ok)
       
    76     {
       
    77         mDialog = qobject_cast<HbDialog*>(mLoader->findWidget("senddialog"));
       
    78         mHeading = qobject_cast<HbLabel*>(mLoader->findWidget("heading"));
       
    79         
       
    80         mFileName = qobject_cast<HbLabel*>(mLoader->findWidget("fileName"));
       
    81         mFileSize = qobject_cast<HbLabel*>(mLoader->findWidget("fileSize"));
       
    82         mFileCount = qobject_cast<HbLabel*>(mLoader->findWidget("fileCount"));
       
    83                 
       
    84         //TODO - set icon based on the file icon.
       
    85         
       
    86         mHide = qobject_cast<HbAction*>(mLoader->findObject("hideaction"));
       
    87         mCancel = qobject_cast<HbAction*>(mLoader->findObject("cancelaction"));
       
    88         
       
    89         mProgressBar = qobject_cast<HbProgressBar*>(mLoader->findWidget("horizontalProgressBar"));
       
    90         
       
    91         int dialogType = parameters.value(QString::number(TBluetoothDialogParams::EDialogTitle)).toInt();
       
    92         switch(dialogType)
       
    93         {
       
    94             case TBluetoothDialogParams::EReceive:
       
    95             {
       
    96                 //TODO - Localization
       
    97                 QString headingStr(hbTrId("txt_bt_title_receiving_files_from_1"));
       
    98                 QString senderName(parameters.value(QString::number(TBluetoothDeviceDialog::EDeviceName)).toString());
       
    99                 mHeading->setPlainText(headingStr.arg(senderName));
       
   100             }break;
       
   101 
       
   102             default:
       
   103                 break;
       
   104         }
       
   105         mDialog->setHeadingWidget(mHeading);
       
   106         
       
   107         mFileName->setPlainText(parameters.value(QString::number(TBluetoothDeviceDialog::EReceivingFileName)).toString());
       
   108         
       
   109         mFileSz = parameters.value(QString::number(TBluetoothDeviceDialog::EReceivingFileSize)).toInt();
       
   110         mProgressBar->setMinimum(0);
       
   111         mProgressBar->setMaximum(mFileSz);
       
   112         mProgressBar->setProgressValue(0);
       
   113         
       
   114         //Format the file size into a more readable format
       
   115         if ( mFileSz >> 20 )    // size in MB
       
   116             {       
       
   117             float sizeInMB = 0;
       
   118             sizeInMB = ((float)mFileSz ) / (1024*1024);
       
   119             QString fileSzMb;
       
   120             fileSzMb.setNum(sizeInMB);
       
   121             fileSzMb.append(QString(" Mb"));
       
   122             mFileSize->setPlainText(fileSzMb);
       
   123             }
       
   124         
       
   125         else if( mFileSz >> 10 )        // size in KB
       
   126             {
       
   127             TInt64 sizeInKB = 0;
       
   128             sizeInKB = mFileSz >> 10;
       
   129             QString fileSzKb;
       
   130             fileSzKb.setNum(sizeInKB);
       
   131             fileSzKb.append(QString(" Kb"));
       
   132             mFileSize->setPlainText(fileSzKb);
       
   133             }
       
   134 
       
   135         else                              // size is unknown or less than 1K
       
   136             {
       
   137             QString fileSzB;
       
   138             fileSzB.setNum(mFileSz);
       
   139             fileSzB.append(QString(" Bytes"));
       
   140             mFileSize->setPlainText(fileSzB);
       
   141             }
       
   142 
       
   143         //TODO - Set the received file count
       
   144 /*
       
   145         int count = parameters.value(QString::number(TBluetoothDeviceDialog::EReceivedFileCount)).toInt();
       
   146         QString fileCntStr;
       
   147         fileCntStr.setNum(count);
       
   148         mFileCount->setPlainText(fileCntStr);
       
   149 */        
       
   150     }
       
   151 
       
   152     mDialog->setBackgroundFaded(false);
       
   153     mDialog->setDismissPolicy(HbPopup::NoDismiss);
       
   154     mDialog->setTimeout(HbPopup::NoTimeout);
       
   155      
       
   156     connect(mHide, SIGNAL(triggered()), this, SLOT(hideClicked()));
       
   157     connect(mCancel, SIGNAL(triggered()), this, SLOT(cancelClicked()));
       
   158     
       
   159     return true;
       
   160 }
       
   161 
       
   162 void BTRecvPrgrsDialogWidget::hideClicked()
       
   163 {
       
   164     QVariantMap data;
       
   165     data.insert(QString("actionResult"), QVariant(true));
       
   166     emit deviceDialogData(data);
       
   167     emit deviceDialogClosed();
       
   168 }
       
   169 
       
   170 void BTRecvPrgrsDialogWidget::cancelClicked()
       
   171 {
       
   172     QVariantMap data;
       
   173     data.insert(QString("actionResult"), QVariant(false));
       
   174     emit deviceDialogData(data);
       
   175     emit deviceDialogClosed();
       
   176 }
       
   177