From 5536c23e5ce4ab9c6c1c1f035a88a253ac1e16ec Mon Sep 17 00:00:00 2001 From: adv Date: Wed, 19 Mar 2014 07:33:14 +0000 Subject: [PATCH] API for objects presentation order. --- src/HYDROData/HYDROData_Document.cxx | 25 +++++++++++++++++++ src/HYDROData/HYDROData_Document.h | 36 ++++++++++++++++++++++++++++ src/HYDROData/HYDROData_Entity.cxx | 9 +++++++ src/HYDROData/HYDROData_Entity.h | 5 ++++ 4 files changed, 75 insertions(+) diff --git a/src/HYDROData/HYDROData_Document.cxx b/src/HYDROData/HYDROData_Document.cxx index 89469757..1d51206c 100644 --- a/src/HYDROData/HYDROData_Document.cxx +++ b/src/HYDROData/HYDROData_Document.cxx @@ -306,6 +306,31 @@ bool HYDROData_Document::dumpPartitionToPython( QFile& theFile, return aRes; } +HYDROData_SequenceOfObjects HYDROData_Document::GetObjectsLayerOrder( + const Standard_Boolean theIsAll ) const +{ + HYDROData_SequenceOfObjects anOrder; + + // TODO + + return anOrder; +} + +void HYDROData_Document::SetObjectsLayerOrder( const HYDROData_SequenceOfObjects& theOrder ) +{ + // TODO +} + +void HYDROData_Document::Show( const Handle_HYDROData_Entity& theObject ) +{ + // TODO +} + +void HYDROData_Document::Show( const HYDROData_SequenceOfObjects& theObjects ) +{ + // TODO +} + void HYDROData_Document::StartOperation() { myDoc->NewCommand(); diff --git a/src/HYDROData/HYDROData_Document.h b/src/HYDROData/HYDROData_Document.h index b583787d..2709b5b5 100644 --- a/src/HYDROData/HYDROData_Document.h +++ b/src/HYDROData/HYDROData_Document.h @@ -85,6 +85,42 @@ public: HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects, const bool theIsMultiFile ) const; +public: + + // Methods to work with objects presentation. + + //! Returns the order of objects presentation. Objects in returned sequence + //! are order from top to low depending on z-level parameter. Objects that + //! have no z-level parameter are located at the end of sequence and + //! sorted alphabetically. + //! Only the following types of objects considered: + //! 1. KIND_IMAGE + //! 2. KIND_IMMERSIBLE_ZONE + //! 3. KIND_CHANNEL + //! 4. KIND_RIVER + //! 5. KIND_STREAM + //! 6. KIND_OBSTACLE + //! 7. KIND_DIGUE + //! 8. KIND_POLYLINEXY + //! 9. KIND_ZONE + //! \param theIsAll if flag is true then all objects will be included, + //! otherwise only objects which have the z-level parameter + //! \returns ordered sequence of objects + HYDRODATA_EXPORT HYDROData_SequenceOfObjects GetObjectsLayerOrder( + const Standard_Boolean theIsAll = Standard_True ) const; + + //! Sets the order of objects presentation. + HYDRODATA_EXPORT void SetObjectsLayerOrder( const HYDROData_SequenceOfObjects& theOrder ); + + //! Show object at the top of other model objects. If the object + //! already has the z-level parameter then nothing will be done. + HYDRODATA_EXPORT void Show( const Handle_HYDROData_Entity& theObject ); + + //! Show sequence of objects at the top of other model objects. + //! The objects from the sequence will be sorted alphabetically at first. + HYDRODATA_EXPORT void Show( const HYDROData_SequenceOfObjects& theObjects ); + + public: //! Starts a new operation (opens a tansaction) diff --git a/src/HYDROData/HYDROData_Entity.cxx b/src/HYDROData/HYDROData_Entity.cxx index b103d112..bacca511 100644 --- a/src/HYDROData/HYDROData_Entity.cxx +++ b/src/HYDROData/HYDROData_Entity.cxx @@ -84,6 +84,15 @@ void HYDROData_Entity::Update() SetToUpdate( false ); } +void HYDROData_Entity::Show() +{ + Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab ); + if ( aDocument.IsNull() ) + return; + + aDocument->Show( this ); +} + QString HYDROData_Entity::getPyTypeID() const { switch( GetKind() ) diff --git a/src/HYDROData/HYDROData_Entity.h b/src/HYDROData/HYDROData_Entity.h index 76a4c10a..aef06bf9 100644 --- a/src/HYDROData/HYDROData_Entity.h +++ b/src/HYDROData/HYDROData_Entity.h @@ -112,6 +112,11 @@ public: */ HYDRODATA_EXPORT virtual void Update(); + /** + * Show object at the top of other model objects. + */ + HYDRODATA_EXPORT virtual void Show(); + /** * Returns data of object wrapped to QVariant. * Base implementation returns null value. -- 2.39.2