]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Allowing to add multiple object-types to ObjListBox
authorisn <isn@opencascade.com>
Thu, 18 Jun 2015 11:35:23 +0000 (14:35 +0300)
committerisn <isn@opencascade.com>
Thu, 18 Jun 2015 11:35:23 +0000 (14:35 +0300)
src/HYDROGUI/HYDROGUI_ObjListBox.cxx
src/HYDROGUI/HYDROGUI_ObjListBox.h

index 513e08a4cdf93d62fe72b4a2849cad9a84dcc6eb..f20715a645dc821e748bbf359ea14fe14f745ccb 100644 (file)
 
 HYDROGUI_ObjListBox::HYDROGUI_ObjListBox( HYDROGUI_Module* theModule, const QString& theTitle, const ObjectKind& theType, QWidget* theParent )
 : QWidget( theParent ),
-  myType( theType ),
   myModule( theModule ),
   myFilter( 0 )
+{
+  myTypes.append( theType );
+  Init(theTitle);
+}
+
+HYDROGUI_ObjListBox::HYDROGUI_ObjListBox( HYDROGUI_Module* theModule, const QString& theTitle, const QList<ObjectKind>& theTypes, QWidget* theParent )
+: QWidget( theParent ),
+  myTypes( theTypes ),
+  myModule( theModule ),
+  myFilter( 0 )
+{
+  Init(theTitle);
+}
+
+void HYDROGUI_ObjListBox::Init(const QString& theTitle)
 {
   QGridLayout* aBase = new QGridLayout( this );
   aBase->setMargin( 0 );
@@ -61,9 +75,9 @@ HYDROGUI_Module* HYDROGUI_ObjListBox::module() const
     return myModule;
 }
 
-ObjectKind HYDROGUI_ObjListBox::objectType() const
+QList<ObjectKind> HYDROGUI_ObjListBox::objectTypes() const
 {
-    return myType;
+    return myTypes;
 }
 
 HYDROGUI_ObjComboBoxFilter* HYDROGUI_ObjListBox::objectFilter() const
@@ -119,7 +133,7 @@ void HYDROGUI_ObjListBox::Append( const HYDROData_SequenceOfObjects& theObjects
   for( int i=theObjects.Lower(), n=theObjects.Upper(); i<=n; i++ )
   {
     Handle( HYDROData_Entity ) anObject = theObjects.Value( i );
-    bool isOK = !anObject.IsNull() && anObject->GetKind()==myType;
+    bool isOK = !anObject.IsNull() && myTypes.contains(anObject->GetKind());
     if( myFilter && isOK )
       isOK = myFilter->isOk( anObject );
 
index a31cf26db7ea198fe68662030485eac447c9dc70..7d599dd3a5de0270a0dc04a8c15487cffd84e89b 100644 (file)
@@ -33,10 +33,12 @@ class HYDROGUI_ObjListBox : public QWidget
 public:
   HYDROGUI_ObjListBox( HYDROGUI_Module* theModule, const QString& theTitle,
                        const ObjectKind& = KIND_UNKNOWN, QWidget* = 0 );
+  HYDROGUI_ObjListBox( HYDROGUI_Module* theModule, const QString& theTitle,
+                       const QList<ObjectKind>& theTypes, QWidget* = 0 );
   virtual ~HYDROGUI_ObjListBox();
 
   HYDROGUI_Module*            module() const;
-  ObjectKind                  objectType() const;
+  QList<ObjectKind>           objectTypes() const;
 
   HYDROGUI_ObjComboBoxFilter* objectFilter() const;
   void                        setObjectFilter( HYDROGUI_ObjComboBoxFilter* );
@@ -46,6 +48,9 @@ public:
   void                        setObjectsFromSelection();
   void                        reset();
 
+private:
+  void Init(const QString& theTitle);
+
 private slots:
   void OnInclude();
   void OnExclude();
@@ -54,7 +59,7 @@ private:
   void Append( const HYDROData_SequenceOfObjects& );
 
 private:
-  ObjectKind                  myType;
+  QList<ObjectKind>           myTypes;
   QListWidget*                myList;
   HYDROGUI_Module*            myModule;
   HYDROGUI_ObjComboBoxFilter* myFilter;