Salome HOME
Merge updates of translations files
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_FilterDlg.cxx
index ac756a16c204484bcd135d8473fcb041d5b640d4..108f7bed5e24780e97ff32670d68faba6248ebfb 100755 (executable)
@@ -1002,6 +1002,17 @@ void SMESHGUI_FilterTable::Init (const QList<int>& theTypes)
 
     myLibDlg = 0;
   }
+  else
+  {
+    QList<int>::const_iterator typeIt = theTypes.begin();
+    for ( ; typeIt != theTypes.end(); ++typeIt ) {
+      if ( !myTables[ *typeIt ] ) {
+        Table* aTable = createTable(mySwitchTableGrp, *typeIt);
+        myTables[ *typeIt ] = aTable;
+        ((QVBoxLayout*)mySwitchTableGrp->layout())->addWidget(myTables[ *typeIt ]);
+      }
+    }
+  }
 
   // Hide buttons of entity types if necessary
   const QMap<int, QString>& aSupportedTypes = getSupportedTypes();
@@ -1743,6 +1754,7 @@ void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, con
     aTable->blockSignals( isSignalsBlocked );
   }
 
+  // set Compare and enable/desable Threshold
   if ((aType == SMESH::NODE && (aCriterionType == SMESH::FT_FreeNodes               ||
                                 aCriterionType == SMESH::FT_EqualNodes ))           ||
       (aType == SMESH::EDGE && (aCriterionType == SMESH::FT_FreeBorders             ||
@@ -1970,6 +1982,7 @@ const QMap<int, QString>& SMESHGUI_FilterTable::getSupportedTypes() const
   if (aTypes.isEmpty())
   {
     aTypes[ SMESH::NODE   ] = tr("NODES");
+    aTypes[ SMESH::ELEM0D ] = tr("ELEM0D");
     aTypes[ SMESH::BALL   ] = tr("BALLS");
     aTypes[ SMESH::EDGE   ] = tr("EDGES");
     aTypes[ SMESH::FACE   ] = tr("FACES");
@@ -2106,6 +2119,20 @@ const QMap<int, QString>& SMESHGUI_FilterTable::getCriteria (const int theType)
     }
     return aCriteria;
   }
+  else if (theType == SMESH::ELEM0D)
+  {
+    static QMap<int, QString> aCriteria;
+    if (aCriteria.isEmpty())
+    {
+      aCriteria[ SMESH::FT_RangeOfIds         ] = tr("RANGE_OF_IDS");
+      aCriteria[ SMESH::FT_BelongToGeom       ] = tr("BELONG_TO_GEOM");
+      aCriteria[ SMESH::FT_BelongToPlane      ] = tr("BELONG_TO_PLANE");
+      aCriteria[ SMESH::FT_BelongToCylinder   ] = tr("BELONG_TO_CYLINDER");
+      aCriteria[ SMESH::FT_BelongToGenSurface ] = tr("BELONG_TO_GENSURFACE");
+      aCriteria[ SMESH::FT_GroupColor         ] = tr("GROUP_COLOR");
+    }
+    return aCriteria;
+  }
   else // SMESH::ALL
   {
     static QMap<int, QString> aCriteria;
@@ -2647,18 +2674,18 @@ SMESHGUI_FilterDlg::~SMESHGUI_FilterDlg()
 // name    : SMESHGUI_FilterDlg::Init
 // Purpose : Init dialog fields, connect signals and slots, show dialog
 //=======================================================================
-void SMESHGUI_FilterDlg::Init (const int type)
+void SMESHGUI_FilterDlg::Init (const int type, const bool setInViewer)
 {
   QList<int> aTypes;
   aTypes.append(type);
-  Init(aTypes);
+  Init(aTypes,setInViewer);
 }
 
 //=======================================================================
 // name    : SMESHGUI_FilterDlg::Init
 // Purpose : Init dialog fields, connect signals and slots, show dialog
 //=======================================================================
-void SMESHGUI_FilterDlg::Init (const QList<int>& theTypes)
+void SMESHGUI_FilterDlg::Init (const QList<int>& theTypes, const bool setInViewer)
 {
   mySourceWg  = 0;
   myTypes     = theTypes;
@@ -2673,6 +2700,8 @@ void SMESHGUI_FilterDlg::Init (const QList<int>& theTypes)
   {
     int aType = theTypes.first();
     if      (aType == SMESH::NODE  ) setWindowTitle(tr("NODES_TLT"));
+    else if (aType == SMESH::ELEM0D) setWindowTitle(tr("ELEM0D_TLT"));
+    else if (aType == SMESH::BALL  ) setWindowTitle(tr("BALL_TLT"));
     else if (aType == SMESH::EDGE  ) setWindowTitle(tr("EDGES_TLT"));
     else if (aType == SMESH::FACE  ) setWindowTitle(tr("FACES_TLT"));
     else if (aType == SMESH::VOLUME) setWindowTitle(tr("VOLUMES_TLT"));
@@ -2713,7 +2742,7 @@ void SMESHGUI_FilterDlg::Init (const QList<int>& theTypes)
   if (myInsertState.contains(theTypes.first()))
     mySetInViewer->setChecked(myInsertState[ theTypes.first() ]);
   else
-    mySetInViewer->setChecked(true);
+    mySetInViewer->setChecked(setInViewer);
 
   mySourceGrp->button(myApplyToState.contains(theTypes.first()) ? 
                       myApplyToState[ theTypes.first() ] :
@@ -2879,6 +2908,8 @@ Selection_Mode SMESHGUI_FilterDlg::getSelMode (const int theType) const
   switch (theType)
   {
     case SMESH::NODE   : return NodeSelection;
+    case SMESH::ELEM0D : return Elem0DSelection;
+    case SMESH::BALL   : return BallSelection;
     case SMESH::EDGE   : return EdgeSelection;
     case SMESH::FACE   : return FaceSelection;
     case SMESH::VOLUME : return VolumeSelection;
@@ -3008,7 +3039,7 @@ bool SMESHGUI_FilterDlg::isValid() const
 
 //=======================================================================
 // name    : SMESHGUI_FilterDlg::SetSourceWg
-// Purpose : Set widget of parent dialog containing idsto be filtered if
+// Purpose : Set widget of parent dialog containing ids to be filtered if
 //           user select corresponding source radio button
 //=======================================================================
 void SMESHGUI_FilterDlg::SetSourceWg (QWidget* theWg,
@@ -3501,6 +3532,8 @@ void SMESHGUI_FilterDlg::updateSelection()
   }
   else
   {
+    mySelector->SetSelectionMode( getSelMode( myTable->GetType() ));
+
     if (myIsSelectionChanged) {
       // mySelectionMgr->installFilter( new GEOM_TypeFilter( aStudy, -1 ) ); // This filter deactivates selection
       // Impossible to select any object in the OB on the second opening of FilterDlg