]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
0021135: EDF 1753 OTHER: Bug in the python dump due to iparameters
authorvsr <vsr@opencascade.com>
Tue, 18 Jan 2011 10:12:28 +0000 (10:12 +0000)
committervsr <vsr@opencascade.com>
Tue, 18 Jan 2011 10:12:28 +0000 (10:12 +0000)
src/LightApp/LightApp_DataObject.cxx
src/LightApp/LightApp_DataObject.h
src/SUIT/SUIT_DataObject.cxx
src/SUIT/SUIT_DataObject.h
src/SUIT/SUIT_TreeModel.cxx
src/SUIT/SUIT_TreeModel.h
src/SalomeApp/SalomeApp_DataObject.cxx
src/SalomeApp/SalomeApp_DataObject.h

index 804bbc214e3ccaab95615a6247a499d5009ce63a..cd7e7bdabf4abc026456f68103b83c28ca68bf72 100644 (file)
@@ -124,6 +124,16 @@ int LightApp_DataObject::groupId() const
   return m ? m->groupId() : CAM_DataObject::groupId();
 }
 
+/*!
+  \brief Check if the object is visible.
+  \return \c true if this object is displayable or \c false otherwise
+*/
+bool LightApp_DataObject::isVisible() const
+{
+  LightApp_RootObject* r = dynamic_cast<LightApp_RootObject*>( root() );
+  return r && r->study() && componentDataType() != r->study()->getVisualComponentName();
+}
+
 /*!
   \brief Get object string identifier.
 
index 3b8bb9cc12e72cb4b7110c0648afd42715b2944d..d9e903726153aafa01c561b04abf69ade80b523a 100644 (file)
@@ -58,6 +58,8 @@ public:
   virtual bool                    compare( const QVariant&, const QVariant&, const int = NameId ) const;
   virtual int                     groupId() const;
 
+  virtual bool                    isVisible() const;
+
 protected:
   QString                         myCompDataType;
   SUIT_DataObject*                myCompObject;
index 8716401c29178320bbcaf523232d09e81b9fbe89..8b9f076d2d9bf25ce38c47f9d1f935594525597c 100755 (executable)
@@ -543,6 +543,19 @@ int SUIT_DataObject::alignment( const int /*id*/ ) const
   return Qt::AlignLeft;
 }
 
+/*!
+  \brief Check if the object is visible.
+
+  This method can be re-implemented in the subclasses.
+  Default implementation returns \c true (all objects are visible by default).
+
+  \return \c true if this object is displayable or \c false otherwise
+*/
+bool SUIT_DataObject::isVisible() const
+{
+  return true;
+}
+
 /*!
   \brief Check if the object is draggable.
 
index c44155817406d21d7952bd66164cdcb62543e49f..0b9377ae9d8a7f85188f82c354c4e9498fe940cb 100755 (executable)
@@ -110,6 +110,7 @@ public:
   virtual QFont               font( const int = NameId ) const;
   virtual int                 alignment( const int = NameId ) const;
 
+  virtual bool                isVisible() const;
   virtual bool                isDragable() const;
   virtual bool                isDropAccepted( SUIT_DataObject* obj );
 
index 8e53c621b2ec941785672fe7208eaa6f4b3250f1..969c61201c554eb8619b41308a2f24f419c74880 100755 (executable)
@@ -1684,6 +1684,18 @@ SUIT_AbstractModel* SUIT_ProxyModel::treeModel() const
   return dynamic_cast<SUIT_AbstractModel*>( sourceModel() );
 }
 
+/*!
+  \brief Filter rows
+  \param sourceRow row index of the source data model
+  \param sourceParent parent model index of the source data model
+  \return \c true if the specified row should be filtered out (i.e. not displayed) or \c false otherwise
+*/
+bool SUIT_ProxyModel::filterAcceptsRow( int sourceRow, const QModelIndex& sourceParent ) const
+{
+  SUIT_DataObject* o = treeModel()->object( sourceModel()->index( sourceRow, 0, sourceParent ) );
+  return o && o->isVisible();
+}
+
 /*!
   \brief Register new column in the model
   \param group_id - unique data object identificator allowing the classification of objects 
index 1163e8745e9de451c1b01478a65b989d18fbfeb5..a1711fe01a430a046192d77f9be0c612b116a5a4 100755 (executable)
@@ -244,6 +244,7 @@ signals:
 
 protected:
   SUIT_AbstractModel*    treeModel() const;
+  virtual bool           filterAcceptsRow( int, const QModelIndex& ) const;
 
 private:
   bool                   mySortingEnabled;
index ad79102085560ffaf165b4710d01e396d33a85f3..2e143d567e607fb33ad85017be9398ae1fe36727 100644 (file)
@@ -393,6 +393,22 @@ bool SalomeApp_DataObject::expandable() const
   return exp;
 }
 
+/*!
+  \brief Check if the object is visible.
+  \return \c true if this object is displayable or \c false otherwise
+*/
+bool SalomeApp_DataObject::isVisible() const
+{
+  bool isDraw = true;
+  _PTR(GenericAttribute) anAttr;
+  if ( myObject && myObject->FindAttribute(anAttr, "AttributeDrawable") ) 
+  {
+    _PTR(AttributeDrawable) aAttrDraw = anAttr;
+    isDraw = aAttrDraw->IsDrawable(); 
+  }
+  return isDraw && LightApp_DataObject::isVisible() && ( !name().isEmpty() || isReference() );
+}
+
 /*!
   \brief Check if the specified column supports custom sorting.
   \param id column id
index 9487a6fe855790a8b38bda3d235cdc0110c9a18d..b0c2df90523cd7dcab0c45a03ee257ed133e3d75 100644 (file)
@@ -64,6 +64,8 @@ public:
   bool                   hasChildren() const;
   bool                   expandable() const;
 
+  virtual bool           isVisible() const;
+
   virtual QString        componentDataType() const;
 
   virtual bool           customSorting( const int = NameId ) const;