Salome HOME
Modification, Transformation. IDs of elements are missing, if selection with rectange...
authordmv <dmv@opencascade.com>
Tue, 28 Oct 2008 07:39:00 +0000 (07:39 +0000)
committerdmv <dmv@opencascade.com>
Tue, 28 Oct 2008 07:39:00 +0000 (07:39 +0000)
src/SMESHGUI/SMESHGUI_RotationDlg.cxx
src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx
src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx
src/SMESHGUI/SMESHGUI_TranslationDlg.cxx

index f564198dea4f3c9d6df15b26db028ed9ff1cc6d8..b76cfa308c5439f41e95cc171e7b205152efcd55 100644 (file)
@@ -651,7 +651,10 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
 
   myBusy = true;
   if (myEditCurrentArgument == (QWidget*)LineEditElements) {
+    LineEditElements->setEnabled(true);
     LineEditElements->setText(aString);
+    LineEditElements->repaint();
+    LineEditElements->setEnabled(false);
     setNewMeshName();
   }
   myBusy = false;
index 8090b5455852514bcf0725e393f8601ee76649e4..4f8711a04e07ee25bcd2425b40e54cc55b873c4f 100644 (file)
@@ -583,7 +583,10 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
     return;
 
   myBusy = true;
-  myEditCurrentArgument->setText(aString);
+  LineEditElements->setEnabled(true);
+  LineEditElements->setText(aString);
+  LineEditElements->repaint();
+  LineEditElements->setEnabled(false);
   myBusy = false;
 
   // OK
index 214cca5e09dbf3146808b3a8aab1f8212945989e..932104d4dc3e764cbe5a4f0251e3365df55fe4c5 100644 (file)
@@ -741,7 +741,10 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
 
   myBusy = true;
   if (myEditCurrentArgument == (QWidget*)LineEditElements) {
+    LineEditElements->setEnabled(true);
     LineEditElements->setText(aString);
+    LineEditElements->repaint();
+    LineEditElements->setEnabled(false);
     setNewMeshName();
   }
   myBusy = false;
index 0b0a488899222a47230fea5b38195f120380073e..a4859f5e423813c6f8e51a66e21ff17bc56a765a 100644 (file)
 
 enum { MOVE_ELEMS_BUTTON = 0, COPY_ELEMS_BUTTON, MAKE_MESH_BUTTON }; //!< action type
 
+/*!
+  \class BusyLocker
+  \brief Simple 'busy state' flag locker.
+  \internal
+*/
+
+class BusyLocker
+{
+public:
+  //! Constructor. Sets passed boolean flag to \c true.
+  BusyLocker( bool& busy ) : myBusy( busy ) { myBusy = true; }
+  //! Destructor. Clear external boolean flag passed as parameter to the constructor to \c false.
+  ~BusyLocker() { myBusy = false; }
+private:
+  bool& myBusy; //! External 'busy state' boolean flag
+};
+
 #define SPACING 6
 #define MARGIN  11
 
@@ -527,7 +544,7 @@ void SMESHGUI_TranslationDlg::onTextChange (const QString& theNewText)
   QLineEdit* send = (QLineEdit*)sender();
 
   if (myBusy) return;
-  myBusy = true;
+  BusyLocker lock( myBusy );
 
   if (send == LineEditElements)
     myNbOkElements = 0;
@@ -567,8 +584,6 @@ void SMESHGUI_TranslationDlg::onTextChange (const QString& theNewText)
     buttonOk->setEnabled(true);
     buttonApply->setEnabled(true);
   }
-
-  myBusy = false;
 }
 
 //=================================================================================
@@ -578,19 +593,17 @@ void SMESHGUI_TranslationDlg::onTextChange (const QString& theNewText)
 void SMESHGUI_TranslationDlg::SelectionIntoArgument()
 {
   if (myBusy) return;
-
+  BusyLocker lock( myBusy );
   // clear
   myActor = 0;
   QString aString = "";
 
-  myBusy = true;
   if (myEditCurrentArgument == (QWidget*)LineEditElements) {
     LineEditElements->setText(aString);
     myNbOkElements = 0;
     buttonOk->setEnabled(false);
     buttonApply->setEnabled(false);
   }
-  myBusy = false;
 
   if (!GroupButtons->isEnabled()) // inactive
     return;
@@ -707,12 +720,13 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
     }
   }
 
-  myBusy = true;
   if (myEditCurrentArgument == (QWidget*)LineEditElements) {
+    LineEditElements->setEnabled(true);
     LineEditElements->setText(aString);
+    LineEditElements->repaint();
+    LineEditElements->setEnabled(false);
     setNewMeshName();
   }
-  myBusy = false;
 
   // OK
   if (myNbOkElements) {