Salome HOME
Fixing of bug concerning the mesh info dialog after compute with quadratic elements
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_FilterDlg.cxx
index 375efe739405b54ce533eef55cc62adc56413ac1..4211d08bffaa52994ee96cba3463069744b36e4c 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1149,7 +1149,7 @@ bool SMESHGUI_FilterTable::IsValid (const bool theMess, const int theEntityType)
       if (aTable->text(i, 2).isEmpty())
         errMsg = tr( "ERROR" );
     }
-    else
+    else // check correctness of a numeric value
     {
       bool aRes = false;
       bool isSignalsBlocked = aTable->signalsBlocked();
@@ -1159,10 +1159,6 @@ bool SMESHGUI_FilterTable::IsValid (const bool theMess, const int theEntityType)
 
       if (!aRes && aTable->isEditable(i, 2))
         errMsg = tr( "ERROR" );
-      else if (aType == SMESH::EDGE &&
-               GetCriterionType(i, aType) == SMESH::FT_MultiConnection &&
-               aThreshold == 1)
-        errMsg = tr( "MULTIEDGES_ERROR" );
     }
 
     if (!errMsg.isEmpty()) {
@@ -1814,7 +1810,7 @@ void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, con
   case SMESH::FT_EqualVolumes: break;
 
   case SMESH::FT_MultiConnection:
-  case SMESH::FT_MultiConnection2D: anIsIntCriterion = true; break;
+  case SMESH::FT_MultiConnection2D: anIsIntCriterion = true; nbCompareSigns = 3; break;
 
   case SMESH::FT_Length:
   case SMESH::FT_Length2D: anIsDoubleCriterion = true; break;
@@ -1936,7 +1932,6 @@ void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, con
       DoubleSpinItem* dblSpin = new DoubleSpinItem( 0 );
       dblSpin->setPrecision( aPrecision );
       aTable->setItem( row, 2, dblSpin );
-      nbCompareSigns = 3;
     }
     else // --------------------------------------------------------------QTableWidgetItem
     {
@@ -1945,6 +1940,8 @@ void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, con
   }
 
   // set Compare
+  if ( anIsDoubleCriterion )
+    nbCompareSigns = 3;
   if ( aCompareItem->count() != nbCompareSigns )
   {
     switch ( nbCompareSigns ) {