From: nds Date: Mon, 9 Nov 2020 03:24:03 +0000 (+0300) Subject: 0031350: Inspectors - property view in DFBrowser for DumpJson X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=50b39a3297b5361a3479167e59bb60b9470e227f;p=occt-copy.git 0031350: Inspectors - property view in DFBrowser for DumpJson (cherry picked from commit 19b5d8465313c119c9d2f344041e67883226ec61) --- diff --git a/src/CDM/CDM_MetaData.cxx b/src/CDM/CDM_MetaData.cxx index 160c2cdc88..1de7eef4ef 100644 --- a/src/CDM/CDM_MetaData.cxx +++ b/src/CDM/CDM_MetaData.cxx @@ -150,12 +150,12 @@ void CDM_MetaData::UnsetIsReadOnly() { //function : DumpJson //purpose : //======================================================================= -void CDM_MetaData::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const +void CDM_MetaData::DumpJson (Standard_OStream& theOStream, Standard_Integer) const { OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myIsRetrieved) - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myDocument) + OCCT_DUMP_FIELD_VALUE_POINTER (theOStream, myDocument) OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myFolder) OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myName) diff --git a/src/TDF/TDF_Attribute.cxx b/src/TDF/TDF_Attribute.cxx index c0eaf85b76..dedc1c9879 100644 --- a/src/TDF/TDF_Attribute.cxx +++ b/src/TDF/TDF_Attribute.cxx @@ -418,10 +418,14 @@ void TDF_Attribute::DumpJson (Standard_OStream& theOStream, Standard_Integer the TDF_Tool::Entry (Label(), aLabel); OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aLabel) - OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myTransaction) - OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, mySavedTransaction) - OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myFlags) + OCCT_DUMP_FIELD_VALUE_GUID (theOStream, ID()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, Transaction()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, UntilTransaction()) + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, IsValid()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, IsNew()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, IsBackuped()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, IsForgotten()) - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myNext.get()) - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myBackup.get()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myFlags) } diff --git a/src/TDataStd/TDataStd_AsciiString.cxx b/src/TDataStd/TDataStd_AsciiString.cxx index a5db33bd17..226ce3a8d5 100644 --- a/src/TDataStd/TDataStd_AsciiString.cxx +++ b/src/TDataStd/TDataStd_AsciiString.cxx @@ -212,5 +212,4 @@ void TDataStd_AsciiString::DumpJson (Standard_OStream& theOStream, Standard_Inte OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myString) - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_BooleanArray.cxx b/src/TDataStd/TDataStd_BooleanArray.cxx index 382b1ada5e..2f2268233f 100644 --- a/src/TDataStd/TDataStd_BooleanArray.cxx +++ b/src/TDataStd/TDataStd_BooleanArray.cxx @@ -339,5 +339,4 @@ void TDataStd_BooleanArray::DumpJson (Standard_OStream& theOStream, Standard_Int } OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myLower) OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myUpper) - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_BooleanList.cxx b/src/TDataStd/TDataStd_BooleanList.cxx index f398ce55b3..949bf061d2 100644 --- a/src/TDataStd/TDataStd_BooleanList.cxx +++ b/src/TDataStd/TDataStd_BooleanList.cxx @@ -323,5 +323,4 @@ void TDataStd_BooleanList::DumpJson (Standard_OStream& theOStream, Standard_Inte const Standard_Byte& aValue = aListIt.Value(); OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aValue) } - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_ByteArray.cxx b/src/TDataStd/TDataStd_ByteArray.cxx index c0277717bd..0a1264e516 100644 --- a/src/TDataStd/TDataStd_ByteArray.cxx +++ b/src/TDataStd/TDataStd_ByteArray.cxx @@ -326,5 +326,4 @@ void TDataStd_ByteArray::DumpJson (Standard_OStream& theOStream, Standard_Intege OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aValue) } OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myIsDelta) - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_ExtStringArray.cxx b/src/TDataStd/TDataStd_ExtStringArray.cxx index cbeb85c5bc..75e4fadf55 100644 --- a/src/TDataStd/TDataStd_ExtStringArray.cxx +++ b/src/TDataStd/TDataStd_ExtStringArray.cxx @@ -340,10 +340,12 @@ Handle(TDF_DeltaOnModification) TDataStd_ExtStringArray::DeltaOnModification //function : DumpJson //purpose : //======================================================================= -void TDataStd_ExtStringArray::DumpJson (Standard_OStream& theOStream, Standard_Integer /*theDepth*/) const +void TDataStd_ExtStringArray::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const { OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) + OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) + for (TColStd_Array1OfExtendedString::Iterator aValueIt (myValue->Array1()); aValueIt.More(); aValueIt.Next()) { const TCollection_ExtendedString& aValue = aValueIt.Value(); @@ -351,5 +353,4 @@ void TDataStd_ExtStringArray::DumpJson (Standard_OStream& theOStream, Standard_I } OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myIsDelta) - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_ExtStringList.cxx b/src/TDataStd/TDataStd_ExtStringList.cxx index 97faa89b4b..2caab46df1 100644 --- a/src/TDataStd/TDataStd_ExtStringList.cxx +++ b/src/TDataStd/TDataStd_ExtStringList.cxx @@ -372,15 +372,15 @@ Standard_OStream& TDataStd_ExtStringList::Dump (Standard_OStream& anOS) const //function : DumpJson //purpose : //======================================================================= -void TDataStd_ExtStringList::DumpJson (Standard_OStream& theOStream, Standard_Integer /*theDepth*/) const +void TDataStd_ExtStringList::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const { OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) + OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) + for (TDataStd_ListOfExtendedString::Iterator aListIt (myList); aListIt.More(); aListIt.Next()) { const TCollection_ExtendedString& aValue = aListIt.Value(); OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aValue); } - - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_Integer.cxx b/src/TDataStd/TDataStd_Integer.cxx index 5aefc683cb..795d393989 100644 --- a/src/TDataStd/TDataStd_Integer.cxx +++ b/src/TDataStd/TDataStd_Integer.cxx @@ -215,5 +215,4 @@ void TDataStd_Integer::DumpJson (Standard_OStream& theOStream, Standard_Integer OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myValue) - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_IntegerArray.cxx b/src/TDataStd/TDataStd_IntegerArray.cxx index 1bbf603417..9ccd6651ae 100644 --- a/src/TDataStd/TDataStd_IntegerArray.cxx +++ b/src/TDataStd/TDataStd_IntegerArray.cxx @@ -355,5 +355,4 @@ void TDataStd_IntegerArray::DumpJson (Standard_OStream& theOStream, Standard_Int } OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myIsDelta) - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_IntegerList.cxx b/src/TDataStd/TDataStd_IntegerList.cxx index 5c462dd03e..6702826dda 100644 --- a/src/TDataStd/TDataStd_IntegerList.cxx +++ b/src/TDataStd/TDataStd_IntegerList.cxx @@ -379,5 +379,4 @@ void TDataStd_IntegerList::DumpJson (Standard_OStream& theOStream, Standard_Inte const Standard_Integer& aValue = aListIt.Value(); OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aValue) } - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_Name.cxx b/src/TDataStd/TDataStd_Name.cxx index 279c14db1c..d4e102289d 100644 --- a/src/TDataStd/TDataStd_Name.cxx +++ b/src/TDataStd/TDataStd_Name.cxx @@ -205,5 +205,4 @@ void TDataStd_Name::DumpJson (Standard_OStream& theOStream, Standard_Integer the OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myString) - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_Real.cxx b/src/TDataStd/TDataStd_Real.cxx index e27807161f..3730544678 100644 --- a/src/TDataStd/TDataStd_Real.cxx +++ b/src/TDataStd/TDataStd_Real.cxx @@ -260,5 +260,4 @@ void TDataStd_Real::DumpJson (Standard_OStream& theOStream, Standard_Integer the OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myValue) OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myDimension) - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_RealArray.cxx b/src/TDataStd/TDataStd_RealArray.cxx index 7079fddcd9..c919ec21cc 100644 --- a/src/TDataStd/TDataStd_RealArray.cxx +++ b/src/TDataStd/TDataStd_RealArray.cxx @@ -351,5 +351,4 @@ void TDataStd_RealArray::DumpJson (Standard_OStream& theOStream, Standard_Intege } OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myIsDelta) - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_RealList.cxx b/src/TDataStd/TDataStd_RealList.cxx index ba792e222e..e7eb8a70a0 100644 --- a/src/TDataStd/TDataStd_RealList.cxx +++ b/src/TDataStd/TDataStd_RealList.cxx @@ -377,6 +377,4 @@ void TDataStd_RealList::DumpJson (Standard_OStream& theOStream, Standard_Integer const Standard_Real& aValue = aListIt.Value(); OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aValue) } - - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_ReferenceArray.cxx b/src/TDataStd/TDataStd_ReferenceArray.cxx index 6f66c1efa9..949f34b7a1 100644 --- a/src/TDataStd/TDataStd_ReferenceArray.cxx +++ b/src/TDataStd/TDataStd_ReferenceArray.cxx @@ -350,6 +350,4 @@ void TDataStd_ReferenceArray::DumpJson (Standard_OStream& theOStream, Standard_I TDF_Tool::Entry (anArrayIt.Value(), aLabel); OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aLabel) } - - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_ReferenceList.cxx b/src/TDataStd/TDataStd_ReferenceList.cxx index c341779d5f..8fa9610cc5 100644 --- a/src/TDataStd/TDataStd_ReferenceList.cxx +++ b/src/TDataStd/TDataStd_ReferenceList.cxx @@ -403,6 +403,4 @@ void TDataStd_ReferenceList::DumpJson (Standard_OStream& theOStream, Standard_In TDF_Tool::Entry (aListIt.Value(), aLabel); OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aLabel) } - - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDataStd/TDataStd_TreeNode.cxx b/src/TDataStd/TDataStd_TreeNode.cxx index 1e76f1f013..1d7ec79b22 100644 --- a/src/TDataStd/TDataStd_TreeNode.cxx +++ b/src/TDataStd/TDataStd_TreeNode.cxx @@ -730,6 +730,4 @@ void TDataStd_TreeNode::DumpJson (Standard_OStream& theOStream, Standard_Integer TDF_Tool::Entry (myLast->Label(), aLast); OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aLast) } - - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myTreeID) } diff --git a/src/TDataStd/TDataStd_UAttribute.cxx b/src/TDataStd/TDataStd_UAttribute.cxx index 5ce60a1af4..3e19a272ed 100644 --- a/src/TDataStd/TDataStd_UAttribute.cxx +++ b/src/TDataStd/TDataStd_UAttribute.cxx @@ -141,6 +141,4 @@ void TDataStd_UAttribute::DumpJson (Standard_OStream& theOStream, Standard_Integ OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) - - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID) } diff --git a/src/TDocStd/TDocStd_Document.cxx b/src/TDocStd/TDocStd_Document.cxx index f79a5e45e1..d453ddcdf2 100644 --- a/src/TDocStd/TDocStd_Document.cxx +++ b/src/TDocStd/TDocStd_Document.cxx @@ -910,6 +910,13 @@ void TDocStd_Document::DumpJson (Standard_OStream& theOStream, Standard_Integer OCCT_DUMP_BASE_CLASS (theOStream, theDepth, CDM_Document) OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myStorageFormat) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, IsSaved()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, IsChanged()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, IsEmpty()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, IsValid()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, GetAvailableUndos()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, GetAvailableRedos()) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, HasOpenCommand()) for (TDF_DeltaList::Iterator anUndoIt (myUndos); anUndoIt.More(); anUndoIt.Next()) { diff --git a/src/TNaming/TNaming_UsedShapes.cxx b/src/TNaming/TNaming_UsedShapes.cxx index a5e79d7e8a..1d4e45276d 100644 --- a/src/TNaming/TNaming_UsedShapes.cxx +++ b/src/TNaming/TNaming_UsedShapes.cxx @@ -196,18 +196,4 @@ void TNaming_UsedShapes::DumpJson (Standard_OStream& theOStream, Standard_Intege OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) - - for (TNaming_DataMapOfShapePtrRefShape::Iterator aMapIt (myMap); aMapIt.More(); aMapIt.Next()) - { - const TopoDS_Shape& aShape = aMapIt.Key(); - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &aShape) - - TCollection_AsciiString aLabel; - TDF_Tool::Entry (aMapIt.Value()->Label(), aLabel); - OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aLabel) - - const TopoDS_Shape& aRefShape = aMapIt.Value()->Shape(); - - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &aRefShape) - } } diff --git a/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.cxx b/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.cxx index 56728584d8..be20a26f0e 100644 --- a/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.cxx +++ b/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.cxx @@ -312,3 +312,75 @@ void XCAFDimTolObjects_DatumObject::SetDatumTargetNumber(const Standard_Integer { myDatumTargetNumber = theNumber; } + +//======================================================================= +//function : DumpJson +//purpose : +//======================================================================= +void XCAFDimTolObjects_DatumObject::DumpJson (Standard_OStream& theOStream, + Standard_Integer theDepth) const +{ + OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) + + if (!myName.IsNull()) + { + Standard_CString aName = myName->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aName) + } + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myModifierWithValue) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myValueOfModifier) + + if (!myDatumTarget.IsNull()) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myDatumTarget) + } + + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myPosition) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myIsDTarget) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myIsValidDT) + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myDTargetType) + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myAxis) + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myLength) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myWidth) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myDatumTargetNumber) + + if (myHasPlane) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPlane) + } + + if (myHasPnt) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPnt) + } + + if (myHasPntText) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPntText) + } + + if (!myPresentation.IsNull()) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPresentation) + } + + if (!mySemanticName.IsNull()) + { + Standard_CString aSemanticName = mySemanticName->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aSemanticName) + } + if (!myPresentationName.IsNull()) + { + Standard_CString aPresentationName = myPresentationName->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aPresentationName) + } + + for (XCAFDimTolObjects_DatumModifiersSequence::Iterator aModifIt (myModifiers); aModifIt.More(); aModifIt.Next()) + { + XCAFDimTolObjects_DatumSingleModif aModifier = aModifIt.Value(); + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aModifier) + } +} diff --git a/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.hxx b/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.hxx index b1eb5343ef..23ba4ac738 100644 --- a/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.hxx +++ b/src/XCAFDimTolObjects/XCAFDimTolObjects_DatumObject.hxx @@ -201,6 +201,9 @@ public: return myIsValidDT; } + //! Dumps the content of me into the stream + Standard_EXPORT void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const; + DEFINE_STANDARD_RTTIEXT(XCAFDimTolObjects_DatumObject,Standard_Transient) private: diff --git a/src/XCAFDimTolObjects/XCAFDimTolObjects_DimensionObject.cxx b/src/XCAFDimTolObjects/XCAFDimTolObjects_DimensionObject.cxx index f810bf9940..eb0e6d8bc6 100644 --- a/src/XCAFDimTolObjects/XCAFDimTolObjects_DimensionObject.cxx +++ b/src/XCAFDimTolObjects/XCAFDimTolObjects_DimensionObject.cxx @@ -472,3 +472,96 @@ void XCAFDimTolObjects_DimensionObject::RemoveDescription(const Standard_Integer myDescriptions = aDescriptions; myDescriptionNames = aDescriptionNames; } + +//======================================================================= +//function : DumpJson +//purpose : +//======================================================================= +void XCAFDimTolObjects_DimensionObject::DumpJson (Standard_OStream& theOStream, + Standard_Integer theDepth) const +{ + OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myType) + + if (!myVal.IsNull()) + { + for (Standard_Integer anId = myVal->Lower(); anId <= myVal->Upper(); anId++) + { + Standard_Real aValue = myVal->Value (anId); + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aValue) + } + } + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myQualifier) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myIsHole) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myFormVariance) + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myGrade) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myL) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myR) + + if (!myPath.IsNull()) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPath) + } + + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myDir) + if (myHasPoint1) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPnt1) + } + + if (myHasPoint2) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPnt2) + } + + if (myHasPlane) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPlane) + } + + if (myHasPntText) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPntText) + } + + if (!myPresentation.IsNull()) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPresentation) + } + + if (!mySemanticName.IsNull()) + { + Standard_CString aSemanticName = mySemanticName->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aSemanticName) + } + if (!myPresentationName.IsNull()) + { + Standard_CString aPresentationName = myPresentationName->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aPresentationName) + } + + for (NCollection_Vector::Iterator aDescIt (myDescriptions); aDescIt.More(); aDescIt.Next()) + { + if (aDescIt.Value().IsNull()) + continue; + Standard_CString aDescription = aDescIt.Value()->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aDescription) + } + + for (NCollection_Vector::Iterator aDescNameIt (myDescriptionNames); aDescNameIt.More(); aDescNameIt.Next()) + { + if (aDescNameIt.Value().IsNull()) + continue; + Standard_CString aDescriptionName = aDescNameIt.Value()->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aDescriptionName) + } + + for (XCAFDimTolObjects_DimensionModifiersSequence::Iterator aModifIt (myModifiers); aModifIt.More(); aModifIt.Next()) + { + XCAFDimTolObjects_DimensionModif aModifier = aModifIt.Value(); + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aModifier) + } +} diff --git a/src/XCAFDimTolObjects/XCAFDimTolObjects_DimensionObject.hxx b/src/XCAFDimTolObjects/XCAFDimTolObjects_DimensionObject.hxx index 2794b8dd76..58e1806df8 100644 --- a/src/XCAFDimTolObjects/XCAFDimTolObjects_DimensionObject.hxx +++ b/src/XCAFDimTolObjects/XCAFDimTolObjects_DimensionObject.hxx @@ -292,6 +292,9 @@ public: myDescriptionNames.Append(theName); } + //! Dumps the content of me into the stream + Standard_EXPORT void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const; + DEFINE_STANDARD_RTTIEXT(XCAFDimTolObjects_DimensionObject,Standard_Transient) private: diff --git a/src/XCAFDimTolObjects/XCAFDimTolObjects_GeomToleranceObject.cxx b/src/XCAFDimTolObjects/XCAFDimTolObjects_GeomToleranceObject.cxx index 88bd42fdcc..4eb160920f 100644 --- a/src/XCAFDimTolObjects/XCAFDimTolObjects_GeomToleranceObject.cxx +++ b/src/XCAFDimTolObjects/XCAFDimTolObjects_GeomToleranceObject.cxx @@ -277,3 +277,66 @@ Standard_Boolean XCAFDimTolObjects_GeomToleranceObject::HasAxis () const { return myHasAxis; } + +//======================================================================= +//function : DumpJson +//purpose : +//======================================================================= +void XCAFDimTolObjects_GeomToleranceObject::DumpJson (Standard_OStream& theOStream, + Standard_Integer theDepth) const +{ + OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myType) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myTypeOfValue) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myValue) + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myMatReqModif) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myZoneModif) + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myValueOfZoneModif) + + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myMaxValueModif) + if (myHasAxis) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myAxis) + } + + if (myHasPlane) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPlane) + } + + if (myHasPnt) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPnt) + } + + if (myHasPntText) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPntText) + } + + if (!myPresentation.IsNull()) + { + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPresentation) + } + + if (!mySemanticName.IsNull()) + { + Standard_CString aSemanticName = mySemanticName->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aSemanticName) + } + if (!myPresentationName.IsNull()) + { + Standard_CString aPresentationName = myPresentationName->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aPresentationName) + } + + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myAffectedPlane) + + for (XCAFDimTolObjects_GeomToleranceModifiersSequence::Iterator aModifIt (myModifiers); aModifIt.More(); aModifIt.Next()) + { + XCAFDimTolObjects_GeomToleranceModif aModifier = aModifIt.Value(); + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, aModifier) + } +} diff --git a/src/XCAFDimTolObjects/XCAFDimTolObjects_GeomToleranceObject.hxx b/src/XCAFDimTolObjects/XCAFDimTolObjects_GeomToleranceObject.hxx index 2a3db6c628..8bb6e1effa 100644 --- a/src/XCAFDimTolObjects/XCAFDimTolObjects_GeomToleranceObject.hxx +++ b/src/XCAFDimTolObjects/XCAFDimTolObjects_GeomToleranceObject.hxx @@ -214,6 +214,8 @@ public: return myAffectedPlane; } + //! Dumps the content of me into the stream + Standard_EXPORT void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const; DEFINE_STANDARD_RTTIEXT(XCAFDimTolObjects_GeomToleranceObject,Standard_Transient) diff --git a/src/XCAFDoc/XCAFDoc_ColorTool.cxx b/src/XCAFDoc/XCAFDoc_ColorTool.cxx index 7a9e5779a3..4388536ac4 100644 --- a/src/XCAFDoc/XCAFDoc_ColorTool.cxx +++ b/src/XCAFDoc/XCAFDoc_ColorTool.cxx @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -810,5 +811,12 @@ void XCAFDoc_ColorTool::DumpJson (Standard_OStream& theOStream, Standard_Integer OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myShapeTool.get()) + TDF_LabelSequence aLabels; + GetColors (aLabels); + for (TDF_LabelSequence::Iterator aColorLabelIt (aLabels); aColorLabelIt.More(); aColorLabelIt.Next()) + { + TCollection_AsciiString aColorLabel; + TDF_Tool::Entry (aColorLabelIt.Value(), aColorLabel); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aColorLabel) + } } diff --git a/src/XCAFDoc/XCAFDoc_Datum.cxx b/src/XCAFDoc/XCAFDoc_Datum.cxx index ce0e31e0a2..67ec506729 100644 --- a/src/XCAFDoc/XCAFDoc_Datum.cxx +++ b/src/XCAFDoc/XCAFDoc_Datum.cxx @@ -560,4 +560,7 @@ void XCAFDoc_Datum::DumpJson (Standard_OStream& theOStream, Standard_Integer the OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myName.get()) OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myDescription.get()) OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myIdentification.get()) + + Handle(XCAFDimTolObjects_DatumObject) anObject = GetObject(); + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, anObject.get()) } diff --git a/src/XCAFDoc/XCAFDoc_DimTolTool.cxx b/src/XCAFDoc/XCAFDoc_DimTolTool.cxx index f2f9045802..9935fb2847 100644 --- a/src/XCAFDoc/XCAFDoc_DimTolTool.cxx +++ b/src/XCAFDoc/XCAFDoc_DimTolTool.cxx @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -1102,5 +1103,39 @@ void XCAFDoc_DimTolTool::DumpJson (Standard_OStream& theOStream, Standard_Intege OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myShapeTool.get()) + TDF_LabelSequence aLabels; + GetDimensionLabels (aLabels); + for (TDF_LabelSequence::Iterator aDimLabelIt (aLabels); aDimLabelIt.More(); aDimLabelIt.Next()) + { + TCollection_AsciiString aDimensionLabel; + TDF_Tool::Entry (aDimLabelIt.Value(), aDimensionLabel); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aDimensionLabel) + } + + aLabels.Clear(); + GetGeomToleranceLabels (aLabels); + for (TDF_LabelSequence::Iterator aGeomToleranceLabelIt (aLabels); aGeomToleranceLabelIt.More(); aGeomToleranceLabelIt.Next()) + { + TCollection_AsciiString aGeomToleranceLabel; + TDF_Tool::Entry (aGeomToleranceLabelIt.Value(), aGeomToleranceLabel); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aGeomToleranceLabel) + } + + aLabels.Clear(); + GetDimTolLabels (aLabels); + for (TDF_LabelSequence::Iterator aDimTolLabelIt (aLabels); aDimTolLabelIt.More(); aDimTolLabelIt.Next()) + { + TCollection_AsciiString aDimTolLabelLabel; + TDF_Tool::Entry (aDimTolLabelIt.Value(), aDimTolLabelLabel); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aDimTolLabelLabel) + } + + aLabels.Clear(); + GetDatumLabels (aLabels); + for (TDF_LabelSequence::Iterator aDatumLabelIt (aLabels); aDatumLabelIt.More(); aDatumLabelIt.Next()) + { + TCollection_AsciiString aDatumLabel; + TDF_Tool::Entry (aDatumLabelIt.Value(), aDatumLabel); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aDatumLabel) + } } diff --git a/src/XCAFDoc/XCAFDoc_Dimension.cxx b/src/XCAFDoc/XCAFDoc_Dimension.cxx index f25f12b6ba..c0fac77ec0 100644 --- a/src/XCAFDoc/XCAFDoc_Dimension.cxx +++ b/src/XCAFDoc/XCAFDoc_Dimension.cxx @@ -471,4 +471,7 @@ void XCAFDoc_Dimension::DumpJson (Standard_OStream& theOStream, Standard_Integer OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) + + Handle(XCAFDimTolObjects_DimensionObject) anObject = GetObject(); + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, anObject.get()) } diff --git a/src/XCAFDoc/XCAFDoc_GeomTolerance.cxx b/src/XCAFDoc/XCAFDoc_GeomTolerance.cxx index 8e9c0ea743..33cc16f2d1 100644 --- a/src/XCAFDoc/XCAFDoc_GeomTolerance.cxx +++ b/src/XCAFDoc/XCAFDoc_GeomTolerance.cxx @@ -441,4 +441,7 @@ void XCAFDoc_GeomTolerance::DumpJson (Standard_OStream& theOStream, Standard_Int OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream) OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) + + Handle(XCAFDimTolObjects_GeomToleranceObject) anObject = GetObject(); + OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, anObject.get()) } diff --git a/src/XCAFDoc/XCAFDoc_GraphNode.cxx b/src/XCAFDoc/XCAFDoc_GraphNode.cxx index b07d59ca0c..277d994c58 100644 --- a/src/XCAFDoc/XCAFDoc_GraphNode.cxx +++ b/src/XCAFDoc/XCAFDoc_GraphNode.cxx @@ -499,7 +499,7 @@ void XCAFDoc_GraphNode::DumpJson (Standard_OStream& theOStream, Standard_Integer for (XCAFDoc_GraphNodeSequence::Iterator anIteratorFather (myFathers); anIteratorFather.More(); anIteratorFather.Next()) { const Handle(XCAFDoc_GraphNode)& aFather = anIteratorFather.Value(); - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, aFather.get()) + OCCT_DUMP_FIELD_VALUE_POINTER (theOStream, aFather) } for (XCAFDoc_GraphNodeSequence::Iterator anIteratorChild (myChildren); anIteratorChild.More(); anIteratorChild.Next()) @@ -507,6 +507,4 @@ void XCAFDoc_GraphNode::DumpJson (Standard_OStream& theOStream, Standard_Integer const Handle(XCAFDoc_GraphNode)& aChild = anIteratorChild.Value(); OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, aChild.get()) } - - OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myGraphID) } diff --git a/src/XCAFDoc/XCAFDoc_LayerTool.cxx b/src/XCAFDoc/XCAFDoc_LayerTool.cxx index 95bf9f55bf..57e4eb3d23 100644 --- a/src/XCAFDoc/XCAFDoc_LayerTool.cxx +++ b/src/XCAFDoc/XCAFDoc_LayerTool.cxx @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -632,5 +633,12 @@ void XCAFDoc_LayerTool::DumpJson (Standard_OStream& theOStream, Standard_Integer OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myShapeTool.get()) + TDF_LabelSequence aLabels; + GetLayerLabels (aLabels); + for (TDF_LabelSequence::Iterator aLayerLabelIt (aLabels); aLayerLabelIt.More(); aLayerLabelIt.Next()) + { + TCollection_AsciiString aLayerLabel; + TDF_Tool::Entry (aLayerLabelIt.Value(), aLayerLabel); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aLayerLabel) + } } diff --git a/src/XCAFDoc/XCAFDoc_Material.cxx b/src/XCAFDoc/XCAFDoc_Material.cxx index 3b8c887a87..6eef4f5c30 100644 --- a/src/XCAFDoc/XCAFDoc_Material.cxx +++ b/src/XCAFDoc/XCAFDoc_Material.cxx @@ -199,9 +199,27 @@ void XCAFDoc_Material::DumpJson (Standard_OStream& theOStream, Standard_Integer OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) - OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myName.get()) - OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myDescription.get()) + if (!myName.IsNull()) + { + Standard_CString aName = myName->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aName) + } + if (!myDescription.IsNull()) + { + Standard_CString aDescriptionName = myDescription->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aDescriptionName) + } + OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myDensity) - OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myDensName.get()) - OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myDensValType.get()) + + if (!myDensName.IsNull()) + { + Standard_CString aDensName = myDensName->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aDensName) + } + if (!myDensValType.IsNull()) + { + Standard_CString aDensValType = myDensValType->ToCString(); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aDensValType) + } } diff --git a/src/XCAFDoc/XCAFDoc_MaterialTool.cxx b/src/XCAFDoc/XCAFDoc_MaterialTool.cxx index f50676b6ac..57866ff380 100644 --- a/src/XCAFDoc/XCAFDoc_MaterialTool.cxx +++ b/src/XCAFDoc/XCAFDoc_MaterialTool.cxx @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -276,5 +277,12 @@ void XCAFDoc_MaterialTool::DumpJson (Standard_OStream& theOStream, Standard_Inte OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute) - OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myShapeTool.get()) + TDF_LabelSequence aLabels; + GetMaterialLabels (aLabels); + for (TDF_LabelSequence::Iterator aMaterialLabelIt (aLabels); aMaterialLabelIt.More(); aMaterialLabelIt.Next()) + { + TCollection_AsciiString aMaterialLabel; + TDF_Tool::Entry (aMaterialLabelIt.Value(), aMaterialLabel); + OCCT_DUMP_FIELD_VALUE_STRING (theOStream, aMaterialLabel) + } } diff --git a/src/gp/gp_Ax3.cxx b/src/gp/gp_Ax3.cxx index 93e6d35757..f99586d760 100644 --- a/src/gp/gp_Ax3.cxx +++ b/src/gp/gp_Ax3.cxx @@ -134,6 +134,9 @@ Standard_Boolean gp_Ax3::InitFromJson (const Standard_SStream& theSStream, Stan SetXDirection (aXDir); SetYDirection (anYDir); + if (!Direction().IsEqual (aDir, Precision::Confusion())) + return Standard_False; + theStreamPos = aPos; return Standard_True; } diff --git a/tools/DFBrowser/DFBrowser_Item.cxx b/tools/DFBrowser/DFBrowser_Item.cxx index 28f482ac3c..78a010eb62 100644 --- a/tools/DFBrowser/DFBrowser_Item.cxx +++ b/tools/DFBrowser/DFBrowser_Item.cxx @@ -31,7 +31,7 @@ #include #include -//#define USE_DUMPJSON +#define USE_DUMPJSON // ======================================================================= // function : hasAttribute @@ -77,24 +77,18 @@ void DFBrowser_Item::Init() int anAttributeId = 0; for (TDF_AttributeIterator anAttrIt (aParentLabel); anAttrIt.More(); anAttrIt.Next(), anAttributeId++) { - if (anAttributeId == aRowId) - anAttribute = anAttrIt.Value(); + if (anAttributeId != aRowId) + { + continue; + } + anAttribute = anAttrIt.Value(); + break; } SetAttribute (anAttribute); } else { int aCurrentId = aRowId - aNbAttributes; - TDF_ChildIterator aLabelsIt (aParentLabel); - TDF_Label aLabel; - for (int aLabelId = 0; aLabelsIt.More(); aLabelsIt.Next(), aLabelId++) - { - if (aLabelId < aCurrentId) - continue; - aLabel = aLabelsIt.Value(); - break; - } - if (!aLabel.IsNull()) - setLabel (aLabel); + aParentItem->InitChildLabels (aRowId, aCurrentId); } TreeModel_ItemBase::Init(); } @@ -123,30 +117,53 @@ int DFBrowser_Item::initRowCount() const // function : initValue // purpose : // ======================================================================= -QVariant DFBrowser_Item::initValue (const int theItemRole) const +QVariant DFBrowser_Item::initValue (const int theRole) const { if (!HasAttribute()) - return DFBrowser_ItemBase::initValue (theItemRole); - - if (theItemRole == DFBrowserPane_ItemRole_DisplayExtended || theItemRole == DFBrowserPane_ItemRole_ToolTipExtended) { - int aRole = theItemRole == DFBrowserPane_ItemRole_DisplayExtended ? Qt::DisplayRole : Qt::ToolTipRole; - QVariant aValue = DFBrowser_Module::GetAttributeInfo (GetAttribute(), GetModule(), aRole, Column()); - QString anAdditionalInfo = DFBrowser_Module::GetAttributeInfo (GetAttribute(), GetModule(), - DFBrowser_ItemRole_AdditionalInfo, Column()).toString(); - if (!anAdditionalInfo.isEmpty()) + // label item + return DFBrowser_ItemBase::initValue (theRole); + } + else + { + // attribute item + switch (theRole) { - if (theItemRole == DFBrowserPane_ItemRole_DisplayExtended) - anAdditionalInfo = TreeModel_Tools::CutString (anAdditionalInfo); - if (!anAdditionalInfo.isEmpty()) - aValue = QVariant (aValue.toString() + QString (" [%1]").arg (anAdditionalInfo)); - //if (aRole == Qt::ToolTipRole) - // aValue = wrapTextByWords(aValue.toString().toStdString(), INFO_LENGHT).c_str(); + case Qt::DisplayRole: + case Qt::ToolTipRole: + case Qt::DecorationRole: + case Qt::ForegroundRole: + case DFBrowserPane_ItemRole_DisplayShort: + case DFBrowser_ItemRole_AdditionalInfo: + { + if (Column() == 0) + return DFBrowser_Module::GetAttributeInfo (GetAttribute(), GetModule(), theRole, Column()); + else + return QVariant(); + } + case DFBrowserPane_ItemRole_DisplayExtended: + case DFBrowserPane_ItemRole_ToolTipExtended: + { + int aRole = theRole == DFBrowserPane_ItemRole_DisplayExtended ? Qt::DisplayRole : Qt::ToolTipRole; + QVariant aValue = DFBrowser_Module::GetAttributeInfo (GetAttribute(), GetModule(), aRole, Column()); + QString anAdditionalInfo = DFBrowser_Module::GetAttributeInfo (GetAttribute(), GetModule(), + DFBrowser_ItemRole_AdditionalInfo, Column()).toString(); + if (!anAdditionalInfo.isEmpty()) + { + if (theRole == DFBrowserPane_ItemRole_DisplayExtended) + anAdditionalInfo = TreeModel_Tools::CutString (anAdditionalInfo); + if (!anAdditionalInfo.isEmpty()) + aValue = QVariant (aValue.toString() + QString (" [%1]").arg (anAdditionalInfo)); + //if (aRole == Qt::ToolTipRole) + // aValue = wrapTextByWords(aValue.toString().toStdString(), INFO_LENGHT).c_str(); + } + return aValue; + } + default: + break; } - return aValue; } - - return DFBrowser_Module::GetAttributeInfo (GetAttribute(), GetModule(), theItemRole, Column()); + return QVariant(); } // ======================================================================= @@ -161,7 +178,9 @@ void DFBrowser_Item::initStream (Standard_OStream& theOStream) const #ifdef USE_DUMPJSON Handle(TDF_Attribute) anAttribute = GetAttribute(); if (!anAttribute.IsNull()) + { anAttribute->DumpJson (theOStream); + } #else (void)theOStream; #endif diff --git a/tools/DFBrowser/DFBrowser_ItemApplication.cxx b/tools/DFBrowser/DFBrowser_ItemApplication.cxx index 4fa7ec824c..599a5af27a 100644 --- a/tools/DFBrowser/DFBrowser_ItemApplication.cxx +++ b/tools/DFBrowser/DFBrowser_ItemApplication.cxx @@ -56,13 +56,13 @@ int DFBrowser_ItemApplication::initRowCount() const // function : initValue // purpose : // ======================================================================= -QVariant DFBrowser_ItemApplication::initValue (const int theItemRole) const +QVariant DFBrowser_ItemApplication::initValue (const int theRole) const { - if (theItemRole == Qt::DisplayRole || - theItemRole == Qt::EditRole || - theItemRole == Qt::ToolTipRole || - theItemRole == DFBrowserPane_ItemRole_DisplayExtended || - theItemRole == DFBrowserPane_ItemRole_ToolTipExtended) + if (theRole == Qt::DisplayRole || + theRole == Qt::EditRole || + theRole == Qt::ToolTipRole || + theRole == DFBrowserPane_ItemRole_DisplayExtended || + theRole == DFBrowserPane_ItemRole_ToolTipExtended) { return "TDocStd_Application"; } diff --git a/tools/DFBrowser/DFBrowser_ItemBase.cxx b/tools/DFBrowser/DFBrowser_ItemBase.cxx index e1d696b63e..faadb7e56f 100644 --- a/tools/DFBrowser/DFBrowser_ItemBase.cxx +++ b/tools/DFBrowser/DFBrowser_ItemBase.cxx @@ -96,12 +96,11 @@ int DFBrowser_ItemBase::initRowCount() const // function : initValue // purpose : // ======================================================================= -QVariant DFBrowser_ItemBase::initValue (const int theItemRole) const +QVariant DFBrowser_ItemBase::initValue (const int theRole) const { - switch (theItemRole) + switch (theRole) { case Qt::DisplayRole: - case Qt::EditRole: case Qt::ToolTipRole: return DFBrowser_Tools::GetLabelInfo (myLabel, false); case DFBrowserPane_ItemRole_DisplayExtended: @@ -150,3 +149,46 @@ bool DFBrowser_ItemBase::SetUseAdditionalInfo (const bool theValue) return aPreviousValue; } +// ======================================================================= +// function : InitChildLabels +// purpose : +// ======================================================================= +void DFBrowser_ItemBase::InitChildLabels (const int theChildId, const int theLabelId) +{ + TDF_Label aParentLabel = GetLabel(); + // items can exist only by items with not empty label + if (aParentLabel.IsNull()) + return; + + int aChildItem = theChildId; + TDF_ChildIterator aLabelsIt (aParentLabel); + TDF_Label aLabel; + for (int aLabelId = 0; aLabelsIt.More(); aLabelsIt.Next(), aLabelId++, aChildItem++) + { + if (aLabelId < theLabelId) + continue; + aLabel = aLabelsIt.Value(); + + TreeModel_ItemBasePtr aChild = Child(aChildItem, 0, true); + if (!aChild) + { + continue; + } + if (aChild->IsInitialized()) + { + continue; + } + DFBrowser_ItemBasePtr aChildItem = itemDynamicCast (aChild); + aChildItem->InitWithLabel (aLabel); + } +} + +// ======================================================================= +// function : InitWithLabel +// purpose : +// ======================================================================= +void DFBrowser_ItemBase::InitWithLabel (TDF_Label theLabel) +{ + setLabel (theLabel); + TreeModel_ItemBase::Init(); +} diff --git a/tools/DFBrowser/DFBrowser_ItemBase.hxx b/tools/DFBrowser/DFBrowser_ItemBase.hxx index c87ca1d081..81fefedbbc 100644 --- a/tools/DFBrowser/DFBrowser_ItemBase.hxx +++ b/tools/DFBrowser/DFBrowser_ItemBase.hxx @@ -59,6 +59,15 @@ public: //! \param theRole the item model role Standard_EXPORT virtual QVariant data (const QModelIndex& theIndex, int theRole) const Standard_OVERRIDE; + //! Iterates through the label and initialize all children in and after the given position + //! \param theChildId an index of this label child + //! \param theLabelId an index of the label + void InitChildLabels (const int theChildId, const int theLabelId); + + //! Inits the item by the label + //! \theLabel label for this item + Standard_EXPORT void InitWithLabel (TDF_Label theLabel); + protected: //! Sets the item label diff --git a/tools/DFBrowser/DFBrowser_ItemDocument.cxx b/tools/DFBrowser/DFBrowser_ItemDocument.cxx index 915b1d368f..441a41b94c 100644 --- a/tools/DFBrowser/DFBrowser_ItemDocument.cxx +++ b/tools/DFBrowser/DFBrowser_ItemDocument.cxx @@ -62,14 +62,14 @@ const Handle(TDocStd_Document)& DFBrowser_ItemDocument::getDocument() const // function : initValue // purpose : // ======================================================================= -QVariant DFBrowser_ItemDocument::initValue (const int theItemRole) const +QVariant DFBrowser_ItemDocument::initValue (const int theRole) const { - if (theItemRole == Qt::DisplayRole || - theItemRole == Qt::EditRole || - theItemRole == DFBrowserPane_ItemRole_DisplayExtended || - theItemRole == DFBrowserPane_ItemRole_ToolTipExtended) + if (theRole == Qt::DisplayRole || + theRole == Qt::EditRole || + theRole == DFBrowserPane_ItemRole_DisplayExtended || + theRole == DFBrowserPane_ItemRole_ToolTipExtended) return DFBrowser_Tools::GetLabelInfo (GetLabel()); - if (theItemRole == Qt::DecorationRole) + if (theRole == Qt::DecorationRole) return DFBrowser_Tools::GetLabelIcon (GetLabel()); return QVariant(); diff --git a/tools/DFBrowser/DFBrowser_TreeLevelViewModel.cxx b/tools/DFBrowser/DFBrowser_TreeLevelViewModel.cxx index 59c6a7f14f..8e33600606 100644 --- a/tools/DFBrowser/DFBrowser_TreeLevelViewModel.cxx +++ b/tools/DFBrowser/DFBrowser_TreeLevelViewModel.cxx @@ -95,8 +95,8 @@ QVariant DFBrowser_TreeLevelViewModel::data (const QModelIndex& theIndex, int th if (!aDBrowserItem) return QVariant(); - bool aPrevValue = aDBrowserItem->SetUseAdditionalInfo (false); - aValue = anItemBase->data (anIndex, theRole); + bool aPrevValue = aDBrowserItem->SetUseAdditionalInfo (false); + aValue = anItemBase->data (anIndex, DFBrowserPane_ItemRole_DisplayShort);/*anItemBase->data (anIndex, theRole);*/ aDBrowserItem->SetUseAdditionalInfo (aPrevValue); } else { // column = 1 diff --git a/tools/DFBrowser/DFBrowser_Window.cxx b/tools/DFBrowser/DFBrowser_Window.cxx index 01b100b189..455e06600c 100644 --- a/tools/DFBrowser/DFBrowser_Window.cxx +++ b/tools/DFBrowser/DFBrowser_Window.cxx @@ -33,8 +33,8 @@ #include #include #include -#include -#include +//#include +//#include #include #include #include @@ -101,7 +101,7 @@ const int DFBROWSER_DEFAULT_POSITION_Y = 60; const int DEFAULT_PROPERTY_PANEL_HEIGHT = 200; const int DEFAULT_BROWSER_HEIGHT = 800; -//#define USE_DUMPJSON +#define USE_DUMPJSON // ======================================================================= // function : Constructor @@ -163,7 +163,7 @@ DFBrowser_Window::DFBrowser_Window() this, SLOT (onLevelDoubleClicked (const QModelIndex&))); // property widget - QDockWidget* aPropertyPanelWidget = new QDockWidget (tr ("PropertyPanel"), myMainWindow); + QDockWidget* aPropertyPanelWidget = new QDockWidget (tr ("Properties additional"), myMainWindow); aPropertyPanelWidget->setObjectName (aPropertyPanelWidget->windowTitle()); aPropertyPanelWidget->setTitleBarWidget (new QWidget(myMainWindow)); aPropertyPanelWidget->setWidget (myPropertyPanel->GetControl()); @@ -171,7 +171,7 @@ DFBrowser_Window::DFBrowser_Window() // property view #ifdef USE_DUMPJSON - myPropertyPanelWidget = new QDockWidget (tr ("PropertyPanel (DumpJson)"), myMainWindow); + myPropertyPanelWidget = new QDockWidget (tr ("PropertyPanel"), myMainWindow); myPropertyView = new ViewControl_PropertyView (myMainWindow, QSize(DFBROWSER_DEFAULT_VIEW_WIDTH, DFBROWSER_DEFAULT_VIEW_HEIGHT)); myPropertyPanelWidget->setObjectName (myPropertyPanelWidget->windowTitle()); @@ -209,15 +209,15 @@ DFBrowser_Window::DFBrowser_Window() myMainWindow->splitDockWidget (aPropertyPanelWidget, aViewDockWidget, Qt::Vertical); #ifdef USE_DUMPJSON - myMainWindow->tabifyDockWidget (aDumpDockWidget, myPropertyPanelWidget); - myMainWindow->tabifyDockWidget (myPropertyPanelWidget, aViewDockWidget); + myMainWindow->tabifyDockWidget (myPropertyPanelWidget, aPropertyPanelWidget); + myMainWindow->tabifyDockWidget (aDumpDockWidget, aViewDockWidget); #else myMainWindow->tabifyDockWidget (aDumpDockWidget, aViewDockWidget); #endif myTreeView->resize (DFBROWSER_DEFAULT_TREE_VIEW_WIDTH, DFBROWSER_DEFAULT_TREE_VIEW_HEIGHT); - myThread = new DFBrowser_Thread (this); + //myThread = new DFBrowser_Thread (this); } // ======================================================================= @@ -470,7 +470,7 @@ void DFBrowser_Window::Init (const NCollection_List& QModelIndex aParentIndex = aModel->index (0, 0); setExpandedLevels (myTreeView, aParentIndex, 3/*levels*/); - myThread->ProcessApplication(); + //myThread->ProcessApplication(); myModule->SetInitialTreeViewSelection(); } @@ -481,7 +481,7 @@ void DFBrowser_Window::Init (const NCollection_List& void DFBrowser_Window::OpenFile (const TCollection_AsciiString& theFileName) { QApplication::setOverrideCursor (Qt::WaitCursor); - myThread->TerminateThread(); + //myThread->TerminateThread(); myTreeLevelLine->ClearHistory(); QItemSelectionModel* aSelectionModel = myModule->GetOCAFViewSelectionModel(); @@ -491,7 +491,7 @@ void DFBrowser_Window::OpenFile (const TCollection_AsciiString& theFileName) QModelIndex anIndex; aSelectionModel->select (anIndex, QItemSelectionModel::ClearAndSelect); } - ClearThreadCache(); + //ClearThreadCache(); myTreeLevelLine->ClearHistory(); @@ -539,7 +539,7 @@ void DFBrowser_Window::OpenFile (const TCollection_AsciiString& theFileName) QModelIndex aParentIndex = anOCAFViewModel->index (0, 0); setExpandedLevels (myTreeView, aParentIndex, 3/*levels*/); - myThread->ProcessApplication(); + //myThread->ProcessApplication(); myModule->SetInitialTreeViewSelection(); QApplication::restoreOverrideCursor(); } @@ -594,6 +594,7 @@ void DFBrowser_Window::setOCAFModel (QAbstractItemModel* theModel) myTreeView->setModel (theModel); QItemSelectionModel* aSelectionModel = new QItemSelectionModel (theModel); + myTreeView->setSelectionMode (QAbstractItemView::ExtendedSelection); myTreeView->setSelectionModel (aSelectionModel); connect (aSelectionModel, SIGNAL (selectionChanged (const QItemSelection&, const QItemSelection&)), @@ -611,18 +612,18 @@ void DFBrowser_Window::setOCAFModel (QAbstractItemModel* theModel) void DFBrowser_Window::onBeforeUpdateTreeModel() { myTreeLevelLine->ClearHistory(); - ClearThreadCache(); - myThread->ProcessApplication(); + //ClearThreadCache(); + //myThread->ProcessApplication(); } // ======================================================================= // function : ClearThreadCache // purpose : // ======================================================================= -void DFBrowser_Window::ClearThreadCache() -{ - DFBrowser_ThreadItemSearch::ClearValues (GetTreeLevelLine()->GetSearchLine()); -} +//void DFBrowser_Window::ClearThreadCache() +//{ + //DFBrowser_ThreadItemSearch::ClearValues (GetTreeLevelLine()->GetSearchLine()); +//} // ======================================================================= // function : TmpDirectory @@ -750,6 +751,25 @@ void DFBrowser_Window::onTreeViewSelectionChanged (const QItemSelection& theSele aDisplayer->ErasePresentations (View_PresentationType_Additional, false); aDisplayer->DisplayPresentation (findPresentation (aSelectedIndex), View_PresentationType_Main); + + + // update preview + NCollection_List aSelPresentations; + //QModelIndexList aSelectedIndices = myTreeView->selectionModel()->selectedIndexes(); + for (QModelIndexList::const_iterator aSelIt = aSelectedIndices.begin(); aSelIt != aSelectedIndices.end(); aSelIt++) + { + QModelIndex anIndex = *aSelIt; + if (anIndex.column() != 0) + continue; + + TreeModel_ItemBasePtr anItemBase = TreeModel_ModelBase::GetItemByIndex (anIndex); + if (!anItemBase) + continue; + + anItemBase->Presentations (aSelPresentations); + } + aDisplayer->UpdatePreview (View_DisplayActionType_DisplayId, aSelPresentations); + } // ======================================================================= diff --git a/tools/DFBrowser/DFBrowser_Window.hxx b/tools/DFBrowser/DFBrowser_Window.hxx index 17b2f21c4d..3ee6f9a5f4 100644 --- a/tools/DFBrowser/DFBrowser_Window.hxx +++ b/tools/DFBrowser/DFBrowser_Window.hxx @@ -35,7 +35,7 @@ class DFBrowser_DumpView; class DFBrowser_Module; class DFBrowser_PropertyPanel; -class DFBrowser_Thread; +//class DFBrowser_Thread; class DFBrowser_TreeLevelLine; class ViewControl_MessageDialog; @@ -109,7 +109,7 @@ public: DFBrowser_Module* GetModule() const { return myModule; } //! Clears thread cache - Standard_EXPORT void ClearThreadCache(); + //Standard_EXPORT void ClearThreadCache(); //! Returns tree level line control DFBrowser_TreeLevelLine* GetTreeLevelLine() const { return myTreeLevelLine; } @@ -220,7 +220,7 @@ private: ViewControl_PropertyView* myPropertyView; //!< property control to display model item values if exist View_Window* myViewWindow; //!< V3d view to visualize presentations/references if it can be build for a selected item DFBrowser_DumpView* myDumpView; //!< Text editor where "Dump" method output is shown - DFBrowser_Thread* myThread; //!< Threads manipulator, starting thread items, listens finalizing + //DFBrowser_Thread* myThread; //!< Threads manipulator, starting thread items, listens finalizing ViewControl_MessageDialog* myExportToShapeViewDialog; //!< dialog about exporting TopoDS_Shape to ShapeView plugin Handle(TInspectorAPI_PluginParameters) myParameters; //!< contains application, context, files that should be opened QString myOpenedFileName; //!< cached name of opened file between parent is set, apply it by parent setting and nullify diff --git a/tools/DFBrowserPane/DFBrowserPane_ItemRole.hxx b/tools/DFBrowserPane/DFBrowserPane_ItemRole.hxx index 2cdd55b690..252d75c461 100644 --- a/tools/DFBrowserPane/DFBrowserPane_ItemRole.hxx +++ b/tools/DFBrowserPane/DFBrowserPane_ItemRole.hxx @@ -25,6 +25,7 @@ enum DFBrowserPane_ItemRole DFBrowserPane_ItemRole_Decoration_40x40, //!< icon with greater size DFBrowserPane_ItemRole_DisplayExtended, // extended item information (with additional information) for Qt::DisplayRole DFBrowserPane_ItemRole_ToolTipExtended, // exteneded tool tip information for Qt::ToolTipRole + DFBrowserPane_ItemRole_DisplayShort, // extended item information (with additional information) for Qt::DisplayRole DFBrowserPane_ItemRole_LastTreeRole //! last enumeration value to use outside incremented };