bluetoothengine/btui/btuidelegate/btdelegateremotedevname.cpp
changeset 47 9e2a905b887f
parent 42 b72428996822
child 57 5ebadcda06cb
--- a/bluetoothengine/btui/btuidelegate/btdelegateremotedevname.cpp	Mon Jul 12 19:25:26 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btdelegateremotedevname.cpp	Fri Jul 23 15:57:13 2010 +0300
@@ -26,7 +26,7 @@
 
 BtDelegateRemoteDevName::BtDelegateRemoteDevName(BtSettingModel* settingModel, 
         BtDeviceModel* deviceModel,QObject *parent )
-    :BtAbstractDelegate( settingModel, deviceModel, parent ), mRegistryActive(0)
+    :BtAbstractDelegate( settingModel, deviceModel, parent ), mRegistryActive(0), mRegistryOpened(false)
 {
     
 }
@@ -35,7 +35,8 @@
 {
     delete mRegistryActive;
     mSymName.Close();
-    mBtRegistry.Close();
+    if (mRegistryOpened)
+        mBtRegistry.Close();//there is crash is close the btregistry without opening it first
     mBtRegServ.Close();
 }
 
@@ -70,11 +71,20 @@
     QVariant nameVariant = paramList.at(1); 
     QString btRemoteDevName = nameVariant.toString();
     
+    if (!validateName(btRemoteDevName)){
+            emit commandCompleted(KErrBadName);
+            return;
+    }
+    mNewName = btRemoteDevName;
+    /*
+    QModelIndex start = getDeviceModel()->index(0,0);
+    QModelIndexList indexList = getDeviceModel()->match(start,BtDeviceModel::NameAliasRole, mNewName);
+    if (indexList.size() > 1){
+        emit commandCompleted(KErrBadName, mNewName);
+        return;
+    }
+    */
     int error = KErrNone;
-            
-    validateName(btRemoteDevName);
-    mNewName = btRemoteDevName;
-    
     TPtrC ptrName(reinterpret_cast<const TText*>(btRemoteDevName.constData()));
   
     error = mSymName.Create(ptrName.Length());
@@ -105,6 +115,8 @@
         emit commandCompleted(error,mNewName);
         return;
     }
+    mRegistryOpened = true;
+    
     if (!mRegistryActive){
         RequestIdentifiers requestId = Unknown;
         TRAP(error, mRegistryActive = CBtSimpleActive::NewL(