--- a/bluetoothengine/btui/btuimodel/btlocalsetting.cpp Wed Jun 23 18:23:52 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,267 +0,0 @@
-/*
-* Copyright (c) 2010 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 "btlocalsetting.h"
-#include <btdevice.h>
-#include <btmanclient.h>
-#include <bt_subscribe.h>
-#include "btqtconstants.h"
-
-const int KLocalDeviceNameWatcher = 10;
-const int KBtLinkCountWatcher = 11;
-
-/*!
- Constructor.
- */
-BtLocalSetting::BtLocalSetting( BtSettingModel& model, QObject *parent )
- : QObject( parent), mModel( model ), mLocalDeviceWatcher(0)
- {
- int err( 0 );
- if (!err ) {
- err = mLocalDeviceKey.Attach( KPropertyUidBluetoothCategory,
- KPropertyKeyBluetoothGetRegistryTableChange );
- }
-
- Q_CHECK_PTR( !err ); // other proper alternative?
-
- TRAP_IGNORE({
- mBtengSetting = CBTEngSettings::NewL( this );
- mLocalDeviceWatcher = CBtSimpleActive::NewL(*this, KLocalDeviceNameWatcher );
- });
-
- Q_CHECK_PTR( mBtengSetting );
- Q_CHECK_PTR( mLocalDeviceWatcher );
-
- for ( int i = 0; i < BtSettingModel::LocalSettingRowCount; ++i ) {
- // Initialize the list with empty values.
- mData.append( BtuiModelDataItem() );
- }
-
- // subscribe to local device table change:
- mLocalDeviceKey.Subscribe( mLocalDeviceWatcher->RequestStatus() );
- mLocalDeviceWatcher->GoActive();
-
- // Get the device name
- TBTDeviceName deviceName;
- (void) mBtengSetting->GetLocalName( deviceName );
- updateDeviceName( QString::fromUtf16( deviceName.Ptr(), deviceName.Length() ) );
-
- // Get the power setting.
- TBTPowerStateValue power( EBTPowerOff );
- (void) mBtengSetting->GetPowerState( power );
- setPowerSetting( power );
-
- // Get the visibility mode
- TBTVisibilityMode visibilityMode( EBTVisibilityModeNoScans );
- (void) mBtengSetting->GetVisibilityMode( visibilityMode );
- setVisibilityMode( visibilityMode );
-}
-
-/*!
- Destructor.
- */
-BtLocalSetting::~BtLocalSetting()
-{
- // delete main data structure
- delete mBtengSetting;
- delete mLocalDeviceWatcher;
- mLocalDeviceKey.Close();
-
- // delete mBtLinkCountWatcher;
- //mBtLinkCountKey.Close();
-}
-
-
-/*!
- Tells whether the given column is in the range of the setting list.
-
- \param row the row number to be checked
- \param col the column number to be checked
-
- \return true if the given row and column are valid; false otherwise.
-*/
-bool BtLocalSetting::isValid( int row, int column) const
-{
- return row >= 0 && row < mData.count() && column == 0;
-}
-
-/*!
- \return the total amount of rows.
-
-*/
-int BtLocalSetting::rowCount() const
-{
- return mData.count();
-}
-
-/*!
- \return the total amount of columns.
-
-*/
-int BtLocalSetting::columnCount() const
-{
- return 1;
-}
-
-/*!
- Gets the value within a data item.
- \param val contains the value at return.
- \param row the row number which the value is from
- \param col the column number which the value is from
- \param role the role idenfier of the value.
- */
-void BtLocalSetting::data(QVariant& val, int row, int col, int role ) const
-{
- if ( isValid( row, col ) ) {
- val = mData.at( row ).value( role );
- }
- else {
- val = QVariant( QVariant::Invalid );
- }
-}
-
-/*!
- Gets the whole item data at the specified column
- \param row the row number of the item data to be returned
- \param col the column number of the item data to be returned
- \return the item data
- */
-BtuiModelDataItem BtLocalSetting::itemData( int row, int col ) const
-{
- if ( isValid( row, col ) ) {
- return mData.at( row );
- }
- return BtuiModelDataItem();
-}
-
-/*!
- Provides notification of changes in the power state
- of the Bluetooth hardware.
-
- \param state EBTPowerOff if the BT hardware has been turned off,
- EBTPowerOn if it has been turned on.
- */
-void BtLocalSetting::PowerStateChanged( TBTPowerStateValue state )
-{
- setPowerSetting( state );
- mModel.emitDataChanged( BtSettingModel::PowerStateRow, 0, this );
-}
-
-/*!
- Provides notification of changes in the discoverability
- mode of the Bluetooth hardware.
- \param state EBTDiscModeHidden if the BT hardware is in hidden mode,
- EBTDiscModeGeneral if it is in visible mode.
- */
-void BtLocalSetting::VisibilityModeChanged( TBTVisibilityMode state )
-{
- setVisibilityMode( state );
- mModel.emitDataChanged( BtSettingModel::VisibilityRow, 0, this );
-}
-
-void BtLocalSetting::RequestCompletedL( CBtSimpleActive* active, TInt status ) {
- Q_UNUSED( active );
- Q_UNUSED( status );
- if ( active->RequestId() == KLocalDeviceNameWatcher ) {
- mLocalDeviceKey.Subscribe( mLocalDeviceWatcher->RequestStatus() );
- mLocalDeviceWatcher->GoActive();
- updateDeviceName( QString() );
- }
-}
-
-void BtLocalSetting::CancelRequest( TInt requestId ) {
- if ( requestId == KLocalDeviceNameWatcher ) {
- mLocalDeviceKey.Cancel();
- }
- else if ( requestId == KBtLinkCountWatcher ) {
- //mBtLinkCountKey.Cancel();
- }
-}
-
-void BtLocalSetting::HandleError( CBtSimpleActive* active, TInt error ) {
- Q_UNUSED( active );
- Q_UNUSED( error );
-}
-
-/*!
- Update local Bluetooth device name in the data store.
- @param name the latest Bluetooth name.
- */
-void BtLocalSetting::updateDeviceName( const QString &name )
-{
- // To-do: the data structure initialization is not impled yet in the model
- BtuiModelDataItem& item =
- mData[ BtSettingModel::LocalBtNameRow ];
-
- bool setByUser = !name.isEmpty();
-
- // The additional parameter is the flag indicating whether the
- // Bluetooth name has been set by the user.
- // The flag is set to true if the name has been set.
- // item[ BtSettingModel::SettingValueParamRole ] = QVariant( setByUser );
-
- QString resolvedName( name );
- if ( resolvedName.isEmpty() ) {
- // We get the default name as suggestion for the user to set.
- getNameFromRegistry( resolvedName );
- }
- item[ BtSettingModel::settingDisplayRole ] = QVariant( resolvedName );
- item[ BtSettingModel::SettingValueRole ] = QVariant( resolvedName );
-}
-
-/*!
- Updates all values related to the power setting.
- */
-void BtLocalSetting::setPowerSetting( TBTPowerStateValue state )
-{
- BtuiModelDataItem& item =
- mData[ BtSettingModel::PowerStateRow ];
-
- item[ BtSettingModel::SettingValueRole ] = QVariant( QtPowerMode(state) );
-}
-
-void BtLocalSetting::setVisibilityMode( TBTVisibilityMode state )
-{
- BtuiModelDataItem& item = mData[ BtSettingModel::VisibilityRow ];
-
- item [ BtSettingModel::SettingValueRole ] = QVariant( QtVisibilityMode(state) );
-}
-
-/*!
- Get local Bluetooth device name from BTRegistry.
- */
-void BtLocalSetting::getNameFromRegistry( QString &name )
-{
- RBTRegServ btRegServ; // Session with BTMan
- RBTLocalDevice btReg; // Subsession with local device table
- TBTLocalDevice localDev;// Data structure holding local device information
-
- TInt err = btRegServ.Connect();
- if ( !err ) {
- err = btReg.Open( btRegServ );
- }
- if ( !err ) {
- // Read the BT local name from BT Registry.
- err = btReg.Get( localDev );
- }
- if ( !err ) {
- name = QString::fromUtf8( (const char*) localDev.DeviceName().Ptr(), (int) localDev.DeviceName().Length() );
- }
- btReg.Close();
- btRegServ.Close();
-}