bluetoothengine/btui/btuidelegate/btdelegateremotedevname.cpp
changeset 47 9e2a905b887f
parent 42 b72428996822
child 57 5ebadcda06cb
equal deleted inserted replaced
45:b0aebde9b1fb 47:9e2a905b887f
    24 #include "btuidevtypemap.h"
    24 #include "btuidevtypemap.h"
    25 
    25 
    26 
    26 
    27 BtDelegateRemoteDevName::BtDelegateRemoteDevName(BtSettingModel* settingModel, 
    27 BtDelegateRemoteDevName::BtDelegateRemoteDevName(BtSettingModel* settingModel, 
    28         BtDeviceModel* deviceModel,QObject *parent )
    28         BtDeviceModel* deviceModel,QObject *parent )
    29     :BtAbstractDelegate( settingModel, deviceModel, parent ), mRegistryActive(0)
    29     :BtAbstractDelegate( settingModel, deviceModel, parent ), mRegistryActive(0), mRegistryOpened(false)
    30 {
    30 {
    31     
    31     
    32 }
    32 }
    33     
    33     
    34 BtDelegateRemoteDevName::~BtDelegateRemoteDevName()
    34 BtDelegateRemoteDevName::~BtDelegateRemoteDevName()
    35 {
    35 {
    36     delete mRegistryActive;
    36     delete mRegistryActive;
    37     mSymName.Close();
    37     mSymName.Close();
    38     mBtRegistry.Close();
    38     if (mRegistryOpened)
       
    39         mBtRegistry.Close();//there is crash is close the btregistry without opening it first
    39     mBtRegServ.Close();
    40     mBtRegServ.Close();
    40 }
    41 }
    41 
    42 
    42 /*!
    43 /*!
    43     Validate the bluetooth device name given by the user:
    44     Validate the bluetooth device name given by the user:
    68     QVariant indexVariant = paramList.at(0); 
    69     QVariant indexVariant = paramList.at(0); 
    69     QModelIndex index = indexVariant.value<QModelIndex>();
    70     QModelIndex index = indexVariant.value<QModelIndex>();
    70     QVariant nameVariant = paramList.at(1); 
    71     QVariant nameVariant = paramList.at(1); 
    71     QString btRemoteDevName = nameVariant.toString();
    72     QString btRemoteDevName = nameVariant.toString();
    72     
    73     
       
    74     if (!validateName(btRemoteDevName)){
       
    75             emit commandCompleted(KErrBadName);
       
    76             return;
       
    77     }
       
    78     mNewName = btRemoteDevName;
       
    79     /*
       
    80     QModelIndex start = getDeviceModel()->index(0,0);
       
    81     QModelIndexList indexList = getDeviceModel()->match(start,BtDeviceModel::NameAliasRole, mNewName);
       
    82     if (indexList.size() > 1){
       
    83         emit commandCompleted(KErrBadName, mNewName);
       
    84         return;
       
    85     }
       
    86     */
    73     int error = KErrNone;
    87     int error = KErrNone;
    74             
       
    75     validateName(btRemoteDevName);
       
    76     mNewName = btRemoteDevName;
       
    77     
       
    78     TPtrC ptrName(reinterpret_cast<const TText*>(btRemoteDevName.constData()));
    88     TPtrC ptrName(reinterpret_cast<const TText*>(btRemoteDevName.constData()));
    79   
    89   
    80     error = mSymName.Create(ptrName.Length());
    90     error = mSymName.Create(ptrName.Length());
    81     
    91     
    82     // todo (review comment): missing proper exception handling. 
    92     // todo (review comment): missing proper exception handling. 
   103     error = mBtRegistry.Open( mBtRegServ ) ;
   113     error = mBtRegistry.Open( mBtRegServ ) ;
   104     if ( error != KErrNone && error != KErrAlreadyExists) {
   114     if ( error != KErrNone && error != KErrAlreadyExists) {
   105         emit commandCompleted(error,mNewName);
   115         emit commandCompleted(error,mNewName);
   106         return;
   116         return;
   107     }
   117     }
       
   118     mRegistryOpened = true;
       
   119     
   108     if (!mRegistryActive){
   120     if (!mRegistryActive){
   109         RequestIdentifiers requestId = Unknown;
   121         RequestIdentifiers requestId = Unknown;
   110         TRAP(error, mRegistryActive = CBtSimpleActive::NewL(
   122         TRAP(error, mRegistryActive = CBtSimpleActive::NewL(
   111                        *this, requestId));
   123                        *this, requestId));
   112         if(error!=KErrNone) {
   124         if(error!=KErrNone) {