X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_DataObject.cxx;h=bab5e03975076149e87011eed432c43cba875f6a;hb=de7cf9bb0a7a41d6487013c87f4a54d0664cd303;hp=c1ff5a25008a4383774ac6ad7bdd369c08fdb270;hpb=d6aeef5b61d85b44493cd5d93ed9870cc513e68f;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_DataObject.cxx b/src/HYDROGUI/HYDROGUI_DataObject.cxx index c1ff5a25..bab5e039 100644 --- a/src/HYDROGUI/HYDROGUI_DataObject.cxx +++ b/src/HYDROGUI/HYDROGUI_DataObject.cxx @@ -22,24 +22,33 @@ #include "HYDROGUI_DataObject.h" +#include #include +#include HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent, - Handle(HYDROData_Object) theData ) + Handle(HYDROData_Entity) theData, + const QString& theParentEntry ) : CAM_DataObject( theParent ), LightApp_DataObject( theParent ), - myData( theData ) + myData( theData ), + myParentEntry( theParentEntry ) { - // unique identifier generated from pointer to this object, like: "HD_0x123457" - // "H" means "HYDRO", "D" means "data" to avoid conflicts with named objects - std::ostringstream aStream; - aStream << "HD_" << this; - myEntry = QString( aStream.str().c_str() ); } QString HYDROGUI_DataObject::entry() const { - return myEntry; + QString anEntry = HYDROGUI_DataObject::dataObjectEntry( modelObject() ); + if( isReference() ) + anEntry.prepend( myParentEntry + "_" ); + return anEntry; +} + +QString HYDROGUI_DataObject::refEntry() const +{ + if( !myParentEntry.isEmpty() ) + return HYDROGUI_DataObject::dataObjectEntry( modelObject() ); + return QString(); } QString HYDROGUI_DataObject::name() const @@ -49,32 +58,49 @@ QString HYDROGUI_DataObject::name() const return QString(); } -HYDROGUI_DataObject* HYDROGUI_DataObject::objectByEntry( const QString& theEntry ) +QFont HYDROGUI_DataObject::font( const int theId ) const { - static const QString aPrefixD( "HD_" ); - if ( theEntry.indexOf( aPrefixD ) != 0 ) - return NULL; // not HYDRO entry - - std::istringstream aStream( theEntry.toLatin1().constData() + 3 ); // start reading just after "HD_" - void* aPtr = 0; - aStream >> aPtr; + QFont aFont = LightApp_DataObject::font( theId ); + if( theId == NameId ) + { + Handle(HYDROData_Entity) aDataObject = modelObject(); + if( !aDataObject.IsNull() && aDataObject->IsMustBeUpdated() ) + aFont.setItalic( true ); + } + return aFont; +} - return ( HYDROGUI_DataObject* )aPtr; +QString HYDROGUI_DataObject::dataObjectEntry( const Handle(HYDROData_Entity)& theObject, + const bool theWithPrefix ) +{ + QString aEntryStr = QString::null; + if( !theObject.IsNull() ) + { + TCollection_AsciiString aLabEntr; + TDF_Tool::Entry( theObject->Label(), aLabEntr ); + aEntryStr = aLabEntr.ToCString(); + if( theWithPrefix ) + aEntryStr.prepend( HYDROGUI_DataObject::entryPrefix() ); + } + return aEntryStr; } HYDROGUI_NamedObject::HYDROGUI_NamedObject( SUIT_DataObject* theParent, - const QString& theName ) + const QString& theName, + const QString& theParentEntry ) : CAM_DataObject( theParent ), LightApp_DataObject( theParent ), - myName( theName ) + myName( theName ), + myParentEntry( theParentEntry ) { } QString HYDROGUI_NamedObject::entry() const { - // unique identifier generated from pointer to this object, like: "HD_0x123457" - // "H" means "HYDRO", "N" means "named" to avoid conflicts with data objects - return "HN_" + myName; + QString anEntry = HYDROGUI_DataObject::entryPrefix() + name(); + if( !myParentEntry.isEmpty() ) + anEntry.prepend( myParentEntry + "_" ); + return anEntry; } QString HYDROGUI_NamedObject::name() const @@ -82,11 +108,10 @@ QString HYDROGUI_NamedObject::name() const return myName; } -QString HYDROGUI_NamedObject::nameByEntry( const QString& theEntry ) +HYDROGUI_DropTargetObject::HYDROGUI_DropTargetObject( SUIT_DataObject* theParent, + const QString& theName, + const QString& theParentEntry ) +: HYDROGUI_NamedObject( theParent, theName, theParentEntry ), CAM_DataObject( theParent ) { - static const QString aPrefixN( "HN_" ); - if( theEntry.indexOf( aPrefixN ) != 0 ) - return QString(); // not HYDRO entry - - return theEntry.right( 3 ); } +