-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021 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
// 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
// SALOME GUI includes
#include <SALOME_DataMapOfIOMapOfInteger.hxx>
#include <SVTK_Selection.h>
+#include <SVTK_Hash.h>
// IDL includes
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SMESH_Filter)
#include CORBA_SERVER_HEADER(SMESH_Mesh)
-class QFrame;
+class LightApp_SelectionMgr;
class QButtonGroup;
class QCheckBox;
+class QFrame;
class QGroupBox;
class QPushButton;
+class QStackedWidget;
class QTableWidget;
class QTableWidgetItem;
-class QStackedWidget;
-class LightApp_SelectionMgr;
class SMESHGUI;
class SMESHGUI_FilterLibraryDlg;
+class SMESH_Actor;
class SVTK_Selector;
+typedef NCollection_DataMap<Handle(SALOME_InteractiveObject), SVTK_TIndexedMapOfVtkId> SALOME_DataMapOfIOMapOfVtk;
+typedef SALOME_DataMapOfIOMapOfVtk::Iterator SALOME_DataMapIteratorOfIOMapOfVtk;
+
/*!
* Class : SMESHGUI_FilterTable
- * Description : Frame containig
+ * Description : Frame containing
* - Button group for switching entity type
* - Table for displaying filter criterions
* - Buttons for editing table
void EntityTypeChanged( const int );
void NeedValidation();
void CriterionChanged( const int, const int );
+ void ThresholdChanged( const int, const int );
void CurrentChanged( int, int );
private slots:
SMESHGUI_FilterDlg( SMESHGUI*, const int );
virtual ~SMESHGUI_FilterDlg();
- void Init( const QList<int>& );
- void Init( const int );
+ void Init( const QList<int>&, const bool setInViewer=true );
+ void Init( const int, const bool setInViewer=true );
void SetSelection();
void SetMesh (SMESH::SMESH_Mesh_var);
+ void SetGroup (SMESH::SMESH_GroupOnFilter_var);
void SetSourceWg( QWidget*, const bool initOnApply = true );
+ void SetEnabled( bool setInViewer, bool diffSources );
static SMESH::Filter::Criterion createCriterion();
SMESH::Filter_var GetFilter() const;
void SetFilter(SMESH::Filter_var filter, int type);
+ void UnRegisterFilters();
signals:
void Accepted();
+protected slots:
+ virtual void reject();
+
private slots:
void onOk();
bool onApply();
- void onClose();
void onHelp();
void onDeactivate();
void onSelectionDone();
void onCriterionChanged( const int, const int );
+ void onThresholdChanged( const int, const int );
void onCurrentChanged( int, int );
+ void onOpenView();
+ void onCloseView();
private:
void construct( const QList<int>& );
- void closeEvent( QCloseEvent* );
void enterEvent( QEvent* );
void keyPressEvent( QKeyEvent* );
void setIdsToWg( QWidget*, const QList<int>& );
Selection_Mode getSelMode( const int ) const;
void updateSelection();
+ SMESH_Actor* getActor();
private:
// widgets
LightApp_SelectionMgr* mySelectionMgr;
SVTK_Selector* mySelector;
SMESH::SMESH_Mesh_var myMesh;
+ SMESH::SMESH_GroupOnFilter_var myGroup;
bool myInitSourceWgOnApply;
+ bool myInsertEnabled;
+ bool myDiffSourcesEnabled;
QWidget* mySourceWg;
- SALOME_DataMapOfIOMapOfInteger myIObjects;
+ SALOME_DataMapOfIOMapOfVtk myIObjects;
bool myIsSelectionChanged;
QMap< int, SMESH::Filter_var > myFilter;
QMap< int, bool > myInsertState;
QMap< int, int > myApplyToState;
QString myHelpFileName;
+
+ bool myToRestoreSelMode;
+ int mySelModeToRestore;
+ void restoreSelMode();
};
#endif // SMESHGUI_FILTERDLG_H