1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0030268: Inspectors - improvements in VInspector plugin

- Convert package creation. It is used to prepare some auxiliary presentations/methods to prepare variables for inspector based on occt classes.
- ViewControl package improvement:
  Classes for property view, table, table model are implemented to visualize view of properties.
  This view is filled by selection in tree if the selected object has implemented DumpJson functionality.
- TreeModel package improvements:
  Method InitColumn is implemented in TreeModel_TreeModel to fill default columns in base model. The default columns are:
    Name, Visibility, Rows. Additional columns should be added in successors.
  Container of root items is moved into the base class
- View package imrovements:
  Store preferences: display mode, fit all checked state and type of external context
  View_DisplayPreview is added to process preview for selected in tree view objects
  hide actions Clear, Multi, Single by default (as selection in tree view or Visibility state of item define which presentations should be displayed or erased)
- ShapeView plugin improvements:
  Property View content based on DumpJson (columns in tree view for properties are removed),
  Properties for TopoDS_Shape are displayed
  Explode shape action in tree view to see content of shape by selected shape type. Type of displayed shapes is only preview, it is not used in export action.
  Export shape into BREP. The previous implementation about BREP files in some directory and default view is removed.
- VInspector plugin imrovements:
  Property View content based on DumpJson (columns in tree view for properties are removed),
  Properties for AIS_InteractiveContext and AIS_InteractiveObject are displayed
  obsolete classes to provide properties are removed.
- DFBrowser plugin improvements:
  Property View content based on DumpJson is not used yet. But there is the USE_DUMPJSON macro. It's switch off by default.
  If switch ON, it creates a Property View filled with DumpJson. It's a way of DFBrowser moving on this property view.
  Init uses static variable CDF_Session::CurrentSession()->CurrentApplication to fill plugin if application in plugin is not set but OCAF application exists

- OCC_VERSION_HEX variable used for previous OCCT versions support (before 6.9.0 or 7.2.0) is removed
This commit is contained in:
nds
2020-01-31 13:12:45 +03:00
committed by bugmaster
parent a2803f37e7
commit 7e1c1e4869
204 changed files with 4893 additions and 3415 deletions

View File

@@ -18,6 +18,10 @@
#include <Standard.hxx>
#include <Standard_Macro.hxx>
#include <Standard_Handle.hxx>
#include <Standard_OStream.hxx>
#include <Standard_SStream.hxx>
#include <inspector/TreeModel_ItemRole.hxx>
#include <Standard_WarningsDisable.hxx>
@@ -32,6 +36,7 @@
#include <Standard_WarningsRestore.hxx>
class TreeModel_ItemBase;
class TreeModel_ItemProperties;
typedef QExplicitlySharedDataPointer<TreeModel_ItemBase> TreeModel_ItemBasePtr;
@@ -81,7 +86,11 @@ public:
//! Sets the item internal initialized state to the true. If the item has internal values,
//! there should be initialized here.
virtual void Init() { m_bInitialized = true; }
Standard_EXPORT virtual void Init();
//! Returns data object of the item.
//! \return object
Standard_EXPORT virtual const Handle(Standard_Transient)& Object() const;
//! Resets the item and the child items content. Sets the initialized state to false.
//! If the item has internal values, there should be reseted here.
@@ -91,6 +100,16 @@ public:
//! \param theRole an item role
Standard_EXPORT virtual void Reset(int theRole);
//! Returns stream value of the item to fulfill property panel.
//! \return stream value or dummy
const Standard_SStream& Stream() const { return myStream; }
//! Returns stream value of the item to fulfill property panel.
//! \return stream value or dummy
virtual bool SetStream (const Standard_SStream& theSStream, Standard_Integer& theStartPos,
Standard_Integer& theLastPos) const
{ (void)theSStream; (void)theStartPos; (void)theLastPos; return false; }
//! Gets the parent of the item, or TreeModel_ItemBasePtr() if it has no parent.
//! \return pointer to the item
TreeModel_ItemBasePtr Parent() const { return m_pParent; };
@@ -115,7 +134,7 @@ public:
//! Sets a custom value for the role in an internal cache
//! \param theValue a value
//! \param theRole a value role
void SetCustomData(const QVariant theValue, int theRole) { myCachedValues.insert (theRole, theValue); }
void SetCustomData(const QVariant& theValue, int theRole) { myCachedValues.insert (theRole, theValue); }
//! Returns the data stored under the given role for the current item
//! \param theIndex the item model index
@@ -127,18 +146,25 @@ public:
//! \return the row count
int rowCount() const { return cachedValue(TreeModel_ItemRole_RowCountRole).toInt(); }
//! Returns the item properties
const Handle(TreeModel_ItemProperties)& Properties() const { return myProperties; }
protected:
//! \param theParent the parent item
//! \param theRow the item row positition in the parent item
//! \param theColumn the item column positition in the parent item
//! \param theRow the item row position in the parent item
//! \param theColumn the item column position in the parent item
Standard_EXPORT TreeModel_ItemBase (TreeModel_ItemBasePtr theParent, const int theRow, const int theColumn);
//! Initializes the current item. It creates a backup of the specific item information
virtual void initItem() const {}
//! Creates a child item in the given position.
//! \param theRow the child row position
//! \param theColumn the child column position
//! \return the created item
virtual TreeModel_ItemBasePtr createChild (int theRow, int theColumn) = 0;
virtual TreeModel_ItemBasePtr createChild (int theRow, int theColumn)
{ (void)theRow; (void)theColumn; return TreeModel_ItemBasePtr(); }
//! Wraps the currrent item by shared pointer
//! \return the shared pointer to the current item
@@ -153,17 +179,29 @@ protected:
//! \return number of children. It should be reimplemented in child
virtual int initRowCount() const = 0;
//! Return data value for the role. It should be reimplemented in child
//! \return number of children. It should be reimplemented in child
Standard_EXPORT int initStreamRowCount();
//! Returns data value for the role. It should be reimplemented in child
//! \param theItemRole a value role
//! \return the value
virtual QVariant initValue (const int theItemRole) const = 0;
Standard_EXPORT virtual QVariant initValue (const int theItemRole) const;
//! Returns stream value of the item to fulfill property panel.
//! \return stream value or dummy
virtual void initStream (Standard_OStream& theOStream) const { (void)theOStream; }
protected:
Handle(TreeModel_ItemProperties) myProperties; //!< the properties
int m_iStreamChildren; //!< the count of stream items
Standard_SStream myStream; //!< stream value
private:
typedef QHash< QPair<int, int>, TreeModel_ItemBasePtr > PositionToItemHash;
PositionToItemHash m_ChildItems; //!< the hash of item children
QMap<int, QVariant> myCachedValues; //!< cached values, should be cleared by reset
mutable QMap<int, QVariant> myCachedValues; //!< cached values, should be cleared by reset
TreeModel_ItemBasePtr m_pParent; //!< the parent item
int m_iRow; //!< the item row position in the parent item
int m_iColumn; //!< the item column position in the parent item