Salome HOME
0022756: [EDF] Intersection operation
authorvsr <vsr@opencascade.com>
Tue, 23 Dec 2014 15:46:41 +0000 (18:46 +0300)
committervsr <vsr@opencascade.com>
Tue, 23 Dec 2014 15:46:41 +0000 (18:46 +0300)
Fix a bug with improper selection processing

src/BooleanGUI/BooleanGUI_Dialog.cxx

index 9cc8c4a591aa125ac1acc9262291c8ef985c85a9..377d8af84b247c6defb930dcbfda7e52b93340cb 100644 (file)
@@ -187,7 +187,7 @@ void BooleanGUI_Dialog::Init()
   }
 
   connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
-           SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+          SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()), Qt::UniqueConnection);
 
   initName(mainFrame()->GroupConstructors->title());
 
@@ -204,7 +204,6 @@ void BooleanGUI_Dialog::Init()
   localSelection(GEOM::GEOM_Object::_nil(), needTypes );
   
   myGroup->PushButton1->click();
-  SelectionIntoArgument();
   resize(100,100);
 }
 
@@ -261,7 +260,7 @@ void BooleanGUI_Dialog::singleSelection()
     disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
     myGeomGUI->getApp()->selectionMgr()->clearSelected();
     connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()),
-            this, SLOT(SelectionIntoArgument()));
+            this, SLOT(SelectionIntoArgument()), Qt::UniqueConnection);
 
     if (myEditCurrentArgument == myGroup->LineEdit1) {
       myObject1 = aSelectedObject;
@@ -269,6 +268,7 @@ void BooleanGUI_Dialog::singleSelection()
         myGroup->PushButton2->click();
     }
     else if (myEditCurrentArgument == myGroup->LineEdit2) {
+      myObjects.clear();
       myObjects << aSelectedObject;
       if (!myObject1)
         myGroup->PushButton1->click();
@@ -364,7 +364,7 @@ void BooleanGUI_Dialog::ActivateThisDialog()
   GEOMBase_Skeleton::ActivateThisDialog();
 
   connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
-           this, SLOT( SelectionIntoArgument() ) );
+           this, SLOT( SelectionIntoArgument() ), Qt::UniqueConnection );
   processPreview();
 }