Salome HOME
Changes for bug IPAL19574.
authorskl <skl@opencascade.com>
Fri, 4 Jul 2008 11:02:20 +0000 (11:02 +0000)
committerskl <skl@opencascade.com>
Fri, 4 Jul 2008 11:02:20 +0000 (11:02 +0000)
src/SMESHGUI/SMESHGUI_GroupDlg.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.h

index c9c14d5c9d641ac4a88d5fe5391f9a63998cbc64..ac809868a6dd621737c6b9b3cdb5a62683ba5640 100644 (file)
@@ -110,6 +110,7 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
      mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
      mySelector(SMESH::GetViewWindow( theModule )->GetSelector()),
      myIsBusy( false ),
+     myNameChanged(false),
      myActor( 0 )
 {
   if (!name) setName("SMESHGUI_GroupDlg");
@@ -135,7 +136,8 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
      mySMESHGUI( theModule ),
      mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
      mySelector(SMESH::GetViewWindow( theModule )->GetSelector()),
-     myIsBusy( false )
+     myIsBusy( false ),
+     myNameChanged(false)
 {
   if (!name) setName("SMESHGUI_GroupDlg");
 
@@ -521,7 +523,10 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup)
   myMesh = theGroup->GetMesh();
   setShowEntityMode();
 
+  myNameChanged = true;
+  myName->blockSignals(true);
   myName->setText(theGroup->GetName());
+  myName->blockSignals(false);
   myName->home(false);
 
   SALOMEDS::Color aColor = theGroup->GetColor();
@@ -603,7 +608,10 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup)
         aShapeName = aGroupShapeSO->GetName().c_str();
       }
       myGeomGroupLine->setText( aShapeName );
+      myNameChanged = true;
+      myName->blockSignals(true);
       myName->setText("Group On " + aShapeName);
+      myName->blockSignals(false);
     }
   }
 }
@@ -641,6 +649,12 @@ void SMESHGUI_GroupDlg::onNameChanged (const QString& text)
 {
   myOldName = myName->text();
   updateButtons();
+  QString tmp = myName->text();
+  tmp.stripWhiteSpace();
+  if( !tmp.isEmpty() )
+    myNameChanged = true;
+  else
+    myNameChanged = false;
 }
 
 //=================================================================================
@@ -666,7 +680,9 @@ void SMESHGUI_GroupDlg::onGrpTypeChanged (int id)
 {
   if (myGrpTypeId != id) {
     myWGStack->raiseWidget( id );
+    myName->blockSignals(true);
     myName->setText(myOldName);
+    myName->blockSignals(false);
     onSelectGeomGroup(id == 1);
   }
   myGrpTypeId = id;
@@ -1193,9 +1209,11 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
     // change name of group only if it is empty
     QString tmp = myName->text();
     tmp.stripWhiteSpace();
-    if(tmp.isEmpty()) {
+    if( tmp.isEmpty() || !myNameChanged ) {
       myOldName = myName->text();
+      myName->blockSignals(true);
       myName->setText(aString);
+      myName->blockSignals(false);
     }
 
     updateButtons();
index 9dd2ef3ae41ccb30aba5a7f5a08dacf9a79ce744..4dad50b84f3ccbf98b5272e00095b2af09346783 100644 (file)
@@ -203,6 +203,8 @@ private:
     bool                          myCreate, myIsBusy;
 
     QString                       myHelpFileName;
+
+    bool                          myNameChanged; //added by skl for IPAL19574
 };
 
 #endif // DIALOGBOX_GROUP_H