diff -r 001a94c71129 -r 16e4b9007960 bluetoothengine/btui/btcpplugin/btcpuibaseview.cpp --- a/bluetoothengine/btui/btcpplugin/btcpuibaseview.cpp Wed Sep 29 13:09:05 2010 +0300 +++ b/bluetoothengine/btui/btcpplugin/btcpuibaseview.cpp Wed Oct 13 13:15:31 2010 +0300 @@ -25,6 +25,8 @@ #include "btuidevtypemap.h" #include #include +#include "btqtconstants.h" + /*! This constructor constructs new setting and device models. @@ -33,9 +35,11 @@ CpBaseSettingView(0, parent), mViewMgr(0), mDelegate(0), mPreviousView(0), mBack(0), mQuery(0), mContextMenu(0), mBtuiModelSortFilter(0) { + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); mSettingModel = new BtSettingModel(this); mDeviceModel = new BtDeviceModel(this); initialise(); + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } /*! @@ -48,9 +52,11 @@ CpBaseSettingView(0, parent), mViewMgr(0), mDelegate(0), mPreviousView(0), mBack(0), mQuery(0), mContextMenu(0), mBtuiModelSortFilter(0) { + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); mSettingModel = new BtSettingModel(settingModel, this); mDeviceModel = new BtDeviceModel(deviceModel, this); initialise(); + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } /*! @@ -67,16 +73,18 @@ delete mContextMenu; } - BOstraceFunctionExit0(DUMMY_DEVLIST); + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } void BtcpuiBaseView::initialise() { + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); bool ret(false); mMainWindow = hbInstance->allMainWindows().first(); mContextMenu = new HbMenu(); ret = connect(mContextMenu, SIGNAL(triggered(HbAction *)), this, SLOT(contextMenuTriggered(HbAction *))); - BTUI_ASSERT_X( ret, "bt-main-view", "Context Menu can't connect" ); + BTUI_ASSERT_X( ret, "BtcpuiBaseView::initialise()", "Context Menu can't connect" ); + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } void BtcpuiBaseView::setPreviousView(BtcpuiBaseView *view) @@ -99,7 +107,7 @@ else { setNavigationAction(0); } - BOstraceFunctionExit0(DUMMY_DEVLIST); + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } void BtcpuiBaseView::setViewMgr(BtcpuiViewMgr *mgr) @@ -113,7 +121,7 @@ if ( mPreviousView ) { viewMgr()->switchView(this, mPreviousView, QVariant(), true); } - BOstraceFunctionExit0(DUMMY_DEVLIST); + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } BtSettingModel *BtcpuiBaseView::settingModel() @@ -139,28 +147,31 @@ mDelegate = BtDelegateFactory::newDelegate(type, mSettingModel, mDeviceModel); ok = connect(mDelegate, SIGNAL(delegateCompleted(int,BtAbstractDelegate*)), receiver, member); - BOstraceExt1(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiBaseView::createDelegate signal connect %d", ok); + BOstraceExt1(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiBaseView::createDelegate new: signal connect %d", ok); if (!ok) { delete mDelegate; mDelegate = 0; } } - BOstraceExt2(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiBaseView::createDelegate: mDe: 0x%08X, ret %d", mDelegate, ok); + BOstraceExt2(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiBaseView::createDelegate(): mDe: 0x%08X, ret %d", mDelegate, ok); return ok; } bool BtcpuiBaseView::createExecuteDelegate(BtDelegate::EditorType type, QObject *receiver, const char *member, const QVariant ¶m) { + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); bool ok = createDelegate(type, receiver, member); if (ok) { mDelegate->exec(param); } + BOstraceFunctionExitExt(DUMMY_DEVLIST, this, ok); return ok; } void BtcpuiBaseView::viewByDeviceTypeDialog() { + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); if ( !mQuery ) { mQuery = new HbSelectionDialog(); QStringList devTypeList; @@ -183,6 +194,7 @@ mQuery->setHeadingWidget(headingLabel); } mQuery->open(this,SLOT(viewByDialogClosed(HbAction*))); + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } void BtcpuiBaseView::viewByDialogClosed(HbAction* action) @@ -193,6 +205,7 @@ int BtcpuiBaseView::selectedDeviceTypes(HbAction* action) { + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); int devTypesWanted = 0; disconnect( mQuery, 0, this, 0); // remove signal @@ -231,10 +244,11 @@ } } + BOstraceFunctionExitExt(DUMMY_DEVLIST, this, devTypesWanted); return devTypesWanted; } -void BtcpuiBaseView::deviceSelected(const QModelIndex& modelIndex) +void BtcpuiBaseView::openDeviceView(const QModelIndex& modelIndex) { BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); BtcpuiBaseView *devView = viewMgr()->deviceView(); @@ -244,7 +258,7 @@ QVariant params; params.setValue(index); viewMgr()->switchView(this, devView, params, false); - BOstraceFunctionExit0(DUMMY_DEVLIST); + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } void BtcpuiBaseView::createContextMenuActions(int majorRole) @@ -255,23 +269,38 @@ void BtcpuiBaseView::take(BtAbstractDelegate *delegate) { + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); mDelegate = delegate; if (mDelegate) { disconnect(mDelegate, 0, 0, 0); connect(mDelegate, SIGNAL(delegateCompleted(int,BtAbstractDelegate*)), this, SLOT(handleDelegateCompleted(int))); } + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } +// this could be made virtual if derived classes need different functionality void BtcpuiBaseView::contextMenuTriggered(HbAction *action) { + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); if(!(action->text().compare(hbTrId("txt_common_menu_open")))) { - deviceSelected(mLongPressedItem->modelIndex()); - } + openDeviceView(mLongPressedItem->modelIndex()); + } + else if (!(action->text().compare(hbTrId("txt_bt_menu_connect_audio"))) + || !(action->text().compare(hbTrId("txt_bt_menu_connect")))) { + connectToDevice(mLongPressedItem->modelIndex()); + } + else if (!(action->text().compare(hbTrId("txt_bt_menu_disconnect_audio"))) + || !(action->text().compare(hbTrId("txt_bt_menu_disconnect")))) { + disconnectFromDevice(mLongPressedItem->modelIndex()); + } + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } + void BtcpuiBaseView::showContextMenu(HbAbstractViewItem *item, const QPointF &coords) { + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); mLongPressedItem = item; mContextMenu->clearActions(); @@ -285,13 +314,46 @@ } mContextMenu->setPreferredPos(coords); mContextMenu->open(); + + BOstraceFunctionExit1(DUMMY_DEVLIST, this); +} + +void BtcpuiBaseView::connectToDevice(const QModelIndex& modelIndex) +{ + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); + QModelIndex index = mBtuiModelSortFilter->mapToSource(modelIndex); + + QVariant param; + param.setValue(index); + + (void) createExecuteDelegate(BtDelegate::ConnectService, + this, SLOT(handleDelegateCompleted(int,BtAbstractDelegate*)), param); + + BOstraceFunctionExit1(DUMMY_DEVLIST, this); +} + +void BtcpuiBaseView::disconnectFromDevice(const QModelIndex& modelIndex) +{ + BOstraceFunctionEntry1( DUMMY_DEVLIST, this ); + QModelIndex index = mBtuiModelSortFilter->mapToSource(modelIndex); + QVariant deviceBtAddress = mDeviceModel->data(index, BtDeviceModel::ReadableBdaddrRole); + + QListparamList; + paramList.append(QVariant(ServiceLevel)); + paramList.append(deviceBtAddress); + + (void) createExecuteDelegate(BtDelegate::DisconnectService, + this, SLOT(handleDelegateCompleted(int,BtAbstractDelegate*)), QVariant(paramList)); + + BOstraceFunctionExit1(DUMMY_DEVLIST, this); } void BtcpuiBaseView::handleDelegateCompleted(int error, BtAbstractDelegate* delegate) { BOstraceFunctionEntryExt( DUMMY_DEVLIST, this, error ); + Q_UNUSED(delegate); Q_UNUSED(error); delete mDelegate; mDelegate = 0; - BOstraceFunctionExit0(DUMMY_DEVLIST); + BOstraceFunctionExit1(DUMMY_DEVLIST, this); }