--- a/bluetoothengine/btnotif/btdevicedialogplugin/src/btdevicesearchdialogwidget.cpp Tue Aug 31 15:25:10 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,445 +0,0 @@
-/*
- * 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 "btdevicesearchdialogwidget.h"
-
-#include <hblistview.h>
-#include <hbtoolbar.h>
-
-
-#include <qstandarditemmodel.h>
-#include <hbaction.h>
-#include <xqconversions.h>
-#include <qtranslator.h>
-#include <qcoreapplication.h>
-#include <bluetoothdevicedialogs.h>
-#include <btuidevtypemap.h>
-#include <btuiiconutil.h>
-
-const char* DOCML_BTDEV_SEARCH_DIALOG = ":/docml/bt-device-search-dialog.docml";
-
-
-#define LOC_SEARCHING_DEVICE hbTrId("txt_bt_subhead_searching")
-#define LOC_SEARCH_DONE hbTrId("txt_bt_subhead_search_done")
-#define LOC_SEARCH_STOP hbTrId("txt_common_button_stop")
-#define LOC_SEARCH_RETRY hbTrId("txt_common_button_retry")
-
-
-BTDeviceSearchDialogWidget::BTDeviceSearchDialogWidget(const QVariantMap ¶meters)
- {
-// mDeviceLstIdx = 0;
-// mViewByChosen = false;
- mSelectedDeviceType = 0;
- // mDeviceDialogData = 0;
- mLoader = 0;
- mContentItemModel = 0;
- mStopRetryFlag = 0; // Stop
- mQuery = 0;
- mSelectedDeviceType |= (BtuiDevProperty::AVDev | BtuiDevProperty::Computer |
- BtuiDevProperty::Phone | BtuiDevProperty::Peripheral |
- BtuiDevProperty::LANAccessDev | BtuiDevProperty::Toy |
- BtuiDevProperty::WearableDev | BtuiDevProperty::ImagingDev |
- BtuiDevProperty::HealthDev | BtuiDevProperty::UncategorizedDev);
- constructDialog(parameters);
- }
-
-BTDeviceSearchDialogWidget::~BTDeviceSearchDialogWidget()
- {
- delete mLoader;
- delete mContentItemModel;
- if ( mQuery ) {
- delete mQuery;
- }
-
- // delete mRbl;
- // delete mViewByDialog;
- }
-
-bool BTDeviceSearchDialogWidget::setDeviceDialogParameters(const QVariantMap ¶meters)
- {
- if(parameters.keys().at(0).compare("Search Completed")==0)
- {
- mStopRetryFlag = 1; // Retry
- mSearchLabel->hide();
-
- mSearchIconLabel->hide();
-
- mSearchDoneLabel->show();
- mSearchDoneLabel->setTextWrapping(Hb::TextWordWrap);
- mSearchDoneLabel->setAlignment(Qt::AlignLeft);
- mSearchDoneLabel->setPlainText(LOC_SEARCH_DONE);
-
- mStopRetryAction->setText(LOC_SEARCH_RETRY);
- }
- else
- {
- double cod = parameters.value(QString::number(TBluetoothDeviceDialog::EDeviceClass)).toDouble();
- int uiMajorDevice;
- int uiMinorDevice;
-
- BtuiDevProperty::mapDeiveType(uiMajorDevice, uiMinorDevice, cod);
-
- BtSendDataItem devData;
- devData[NameAliasRole] = QVariant(parameters.value(QString::number(TBluetoothDeviceDialog::EDeviceName)).toString());
- devData[ReadableBdaddrRole] = QVariant(parameters.value(QString::number(TBluetoothDialogParams::EAddress)).toString());
- devData[CoDRole] = QVariant(cod);
- devData[DeviceTypeRole] = QVariant(uiMajorDevice);
- setMajorProperty(devData,BtuiDevProperty::Bonded,
- parameters.value("Bonded").toBool());
- setMajorProperty(devData,BtuiDevProperty::Blocked,
- parameters.value("Blocked").toBool());
- setMajorProperty(devData,BtuiDevProperty::Trusted,
- parameters.value("Trusted").toBool());
- setMajorProperty(devData,BtuiDevProperty::Connected,
- parameters.value("Connected").toBool());
- mData.append(devData);
-
- if(mSelectedDeviceType & devData[DeviceTypeRole].toInt())
- {
- QStandardItem* listitem = new QStandardItem();
- QStringList info;
- info.append(devData[NameAliasRole].toString());
- listitem->setData(info, Qt::DisplayRole);
- HbIcon icon = getBadgedDeviceTypeIcon(devData[CoDRole].toDouble(),
- devData[MajorPropertyRole].toInt(),
- BtuiBottomLeft | BtuiBottomRight | BtuiTopLeft | BtuiTopRight);
- listitem->setIcon(icon.qicon());
- mContentItemModel->appendRow(listitem);
- mSelectedData.append(devData);
- }
- }
-
- return true;
- }
-
-int BTDeviceSearchDialogWidget::deviceDialogError() const
- {
- return 0;
- }
-
-void BTDeviceSearchDialogWidget::closeDeviceDialog(bool byClient)
- {
- Q_UNUSED(byClient);
- mSearchDevicesDialog->close();
- //@ TODO to check below code is required which is written based on the documentation of closeDeviceDialog API
-
- /* QVariantMap val;
- QVariant index(-1);
- val.insert("selectedindex",index);
- emit deviceDialogData(val);
- emit deviceDialogClosed();*/
- }
-
-HbPopup* BTDeviceSearchDialogWidget::deviceDialogWidget() const
- {
- return mSearchDevicesDialog;
- }
-
-QObject* BTDeviceSearchDialogWidget::signalSender() const
- {
- return const_cast<BTDeviceSearchDialogWidget*>(this);
- }
-
-bool BTDeviceSearchDialogWidget::constructDialog(const QVariantMap ¶meters)
- {
- (void) parameters;
- bool ok = false;
-
- mLoader = new HbDocumentLoader();
- mLoader->load(DOCML_BTDEV_SEARCH_DIALOG, &ok);
- if(ok)
- {
- mSearchDevicesDialog = qobject_cast<HbDialog*>(mLoader->findWidget("searchdialog"));
-
- /* HbLabel* heading = qobject_cast<HbLabel*>(mLoader->findWidget("heading"));
- heading->setTextWrapping(Hb::TextWordWrap);
- heading->setAlignment(Qt::AlignHCenter);
- heading->setPlainText("Bluetooth - Found devices");
- setHeadingWidget(heading);*/
-
- mSearchLabel = qobject_cast<HbLabel*>(mLoader->findWidget("searchLabel"));
- mSearchLabel->setTextWrapping(Hb::TextWordWrap);
- mSearchLabel->setAlignment(Qt::AlignHCenter);
- mSearchLabel->setPlainText(LOC_SEARCHING_DEVICE);
-
- mSearchIconLabel = qobject_cast<HbLabel*>(mLoader->findWidget("iconLabel"));
- mSearchIconLabel->setIcon(QIcon(QString(":/icons/qtg_large_bluetooth.svg")));
-
- mSearchDoneLabel = qobject_cast<HbLabel*>(mLoader->findWidget("searchDoneLabel"));
- mSearchDoneLabel->hide();
-
-
- mSearchDevicesDialog->setFrameType(HbDialog::Strong);
- mSearchDevicesDialog->setBackgroundFaded(false);
-
- // mViewByBtn = qobject_cast<HbPushButton*>(mLoader->findWidget("viewby"));
- // mStopRetryBtn = qobject_cast<HbPushButton*>(mLoader->findWidget("stop"));
-
- mListView = qobject_cast<HbListView*>(mLoader->findWidget("listView"));
- mListView->setSelectionMode(HbAbstractItemView::SingleSelection);
-
- mContentItemModel = new QStandardItemModel(this);
- mListView->setModel(mContentItemModel);//, prototype);
-
- connect(mListView, SIGNAL(activated(QModelIndex)), this, SLOT(deviceSelected(QModelIndex)));
- // connect(mStopRetryBtn, SIGNAL(clicked()), this, SLOT(stopRetryClicked()));
- // connect(mViewByBtn, SIGNAL(clicked()), this, SLOT(viewByClicked()));
-
- mShowAction = static_cast<HbAction*>( mLoader->findObject( "viewaction" ) );
- mShowAction->disconnect(mSearchDevicesDialog);
-
- mStopRetryAction = static_cast<HbAction*>( mLoader->findObject( "stopretryaction" ) );
- mStopRetryAction->disconnect(mSearchDevicesDialog);
-
-// mCancelAction = static_cast<HbAction*>( mLoader->findObject( "cancelaction" ) );
-// mCancelAction->disconnect(mSearchDevicesDialog);
-
- connect(mShowAction, SIGNAL(triggered()), this, SLOT(viewByClicked()));
- connect(mStopRetryAction, SIGNAL(triggered()), this, SLOT(stopRetryClicked()));
-
- connect(mSearchDevicesDialog, SIGNAL(aboutToClose()), this, SLOT(searchDialogClosed()));
-
-// QGraphicsWidget *widget = mLoader->findWidget(QString("container"));
- //setContentWidget(widget);
- }
- mSearchDevicesDialog->setBackgroundFaded(false);
- mSearchDevicesDialog->setDismissPolicy(HbPopup::NoDismiss);
- mSearchDevicesDialog->setTimeout(HbPopup::NoTimeout);
- mSearchDevicesDialog->setAttribute(Qt::WA_DeleteOnClose);
-
- mDevTypeList << hbTrId("txt_bt_list_audio_devices")
- << hbTrId("txt_bt_list_computers")
- << hbTrId("txt_bt_list_input_devices")
- << hbTrId("txt_bt_list_phones")
- << hbTrId("txt_bt_list_other_devices");
-
- /* mViewByDialog = new HbDialog();
- mRbl = new HbRadioButtonList(mViewByDialog);
- connect(mRbl, SIGNAL(itemSelected(int)), this, SLOT(viewByItemSelected(int)));*/
-
- return true;
- }
-
-
-void BTDeviceSearchDialogWidget::stopRetryClicked()
- {
- QVariantMap val;
- if(mStopRetryFlag == 1)//mStopRetryAction->text().compare(LOC_SEARCH_RETRY)==0
- {
- mStopRetryFlag = 0; // Stop
- QVariant index("Retry");
- val.insert("Retry",index);
- emit deviceDialogData(val);
- delete mContentItemModel;
- mContentItemModel = new QStandardItemModel(this);
- mListView->setModel(mContentItemModel);
- mStopRetryAction->setText(LOC_SEARCH_STOP);
-
- mSearchLabel->setTextWrapping(Hb::TextWordWrap);
- mSearchLabel->setAlignment(Qt::AlignHCenter);
- mSearchLabel->setPlainText(LOC_SEARCHING_DEVICE);
-
- mSearchIconLabel->setIcon(QIcon(QString(":/icons/qtg_large_bluetooth.svg")));
- mSearchLabel->show();
-
- mSearchIconLabel->show();
-
- mSearchDoneLabel->hide();
- }
- else
- {
- mStopRetryFlag = 1; //Retry
- mStopRetryAction->setText(LOC_SEARCH_RETRY);
-
- mSearchLabel->hide();
-
- mSearchIconLabel->hide();
-
- mSearchDoneLabel->show();
- mSearchDoneLabel->setTextWrapping(Hb::TextWordWrap);
- mSearchDoneLabel->setAlignment(Qt::AlignLeft);
- mSearchDoneLabel->setPlainText(LOC_SEARCH_DONE);
-
- QVariantMap val;
- QVariant index("Stop");
- val.insert("Stop",index);
- emit deviceDialogData(val);
- }
- }
-
-void BTDeviceSearchDialogWidget::retryClicked()
- {
- QVariantMap val;
- QVariant index("Retry");
- val.insert("Retry",index);
- emit deviceDialogData(val);
- delete mContentItemModel;
- mContentItemModel = new QStandardItemModel(this);
- mListView->setModel(mContentItemModel);
-
-
- }
-
-void BTDeviceSearchDialogWidget::viewByClicked()
- {
-
- if ( !mQuery ) {
- mQuery = new HbSelectionDialog;
- mQuery->setStringItems(mDevTypeList, 0);
- mQuery->setSelectionMode(HbAbstractItemView::MultiSelection);
-
- QList<QVariant> current;
- current.append(QVariant(0));
- mQuery->setSelectedItems(current);
-
- //todo need to check whether the dialog is destroyed without setting this flag
- //if not destoryed then set this flag in the destructor and then delete it
-
-// mQuery->setAttribute(Qt::WA_DeleteOnClose);
- // Set the heading for the dialog.
- HbLabel *headingLabel = new HbLabel(hbTrId("txt_bt_title_show"), mQuery);
- mQuery->setHeadingWidget(headingLabel);
- }
- mQuery->open(this,SLOT(selectionDialogClosed(HbAction*)));
-
-
- }
-
-void BTDeviceSearchDialogWidget::searchDialogClosed()
- {
- QVariantMap val;
- QVariant index(-1);
- val.insert("selectedindex",index);
- emit deviceDialogData(val);
- emit deviceDialogClosed();
- }
-
-void BTDeviceSearchDialogWidget::selectionDialogClosed(HbAction* action)
- {
- Q_UNUSED(action);
-
- disconnect( mQuery );
- int devTypesWanted = 0;
-
- if (action == mQuery->actions().first()) { // user pressed "Ok"
- // Get selected items.
- QList<QVariant> selections;
- selections = mQuery->selectedItems();
-
- for (int i=0; i < selections.count(); i++) {
- switch (selections.at(i).toInt()) {
- case BtUiDevAudioDevice:
- devTypesWanted |= BtuiDevProperty::AVDev;
- break;
- case BtUiDevComputer:
- devTypesWanted |= BtuiDevProperty::Computer;
- break;
- case BtUiDevInputDevice:
- devTypesWanted |= BtuiDevProperty::Peripheral;
- break;
- case BtUiDevPhone:
- devTypesWanted |= BtuiDevProperty::Phone;
- break;
- case BtUiDevOtherDevice:
- devTypesWanted |= (BtuiDevProperty::LANAccessDev |
- BtuiDevProperty::Toy |
- BtuiDevProperty::WearableDev |
- BtuiDevProperty::ImagingDev |
- BtuiDevProperty::HealthDev |
- BtuiDevProperty::UncategorizedDev);
- break;
- default:
- // should never get here
- break;
- }
- }
- }
- else
- {
- devTypesWanted = mSelectedDeviceType;
- }
-
-
-
- /* HbSelectionDialog *dlg = (HbSelectionDialog*)(sender());
- if(dlg->actions().first() == action) {
-
- }
- else if(dlg->actions().at(1) == action) {
- }*/
-
- if((devTypesWanted != mSelectedDeviceType) &&(devTypesWanted !=0))
- {
- mSelectedDeviceType = devTypesWanted;
-// mViewByChosen = true;
- delete mContentItemModel;
- mContentItemModel = new QStandardItemModel(this);
- mListView->setModel(mContentItemModel);
- mSelectedData.clear();
- for(int i=0;i<mData.count();i++)
- {
- const BtSendDataItem& qtdev = mData[i];
- if(devTypesWanted & qtdev[DeviceTypeRole].toInt() )
- {
- QStandardItem* listitem = new QStandardItem();
- QStringList info;
- info.append(qtdev[NameAliasRole].toString());
-
- listitem->setData(info, Qt::DisplayRole);
- HbIcon icon = getBadgedDeviceTypeIcon(qtdev[CoDRole].toDouble(),
- qtdev[MajorPropertyRole].toInt(),
- BtuiBottomLeft | BtuiBottomRight | BtuiTopLeft | BtuiTopRight);
- listitem->setIcon(icon.qicon());
- mContentItemModel->appendRow(listitem);
- mSelectedData.append(qtdev);
- }
- }
- }
- }
-
-void BTDeviceSearchDialogWidget::deviceSelected(const QModelIndex& modelIndex)
- {
- int row = 0;
-
- /* if(mViewByChosen)
- {
- row = mDeviceLstOfType[modelIndex.row()].mDeviceIdx;
- }
-
- else*/
- {
- row = modelIndex.row();
- }
-
- QVariantMap val;
-// QVariant index(row);
-// val.insert("selectedindex",index);
-
- const BtSendDataItem& qtdev = mSelectedData.at(row);
- val.insert("selectedindex",QVariant(row));
- val.insert("devicename",QVariant(qtdev[NameAliasRole]));
- val.insert("deviceaddress",QVariant(qtdev[ReadableBdaddrRole]));
- val.insert("deviceclass",QVariant(qtdev[CoDRole]));
-
- emit deviceDialogData(val);
-// mDeviceDialogData = 1;//flag is to say that device dialog data is emitted required when we cancel the dialog
- //emit deviceDialogClosed();
- // this->close();
- }
-
-