X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_DataObject.cxx;h=a201b3e6320de970b369cc2cc1e73644199a524c;hb=141b5c32908e3f89f9d5cfaa46872274397d6b9d;hp=bab5e03975076149e87011eed432c43cba875f6a;hpb=c374597f70481110faa82dc189353d689d66bc0c;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_DataObject.cxx b/src/HYDROGUI/HYDROGUI_DataObject.cxx index bab5e039..a201b3e6 100644 --- a/src/HYDROGUI/HYDROGUI_DataObject.cxx +++ b/src/HYDROGUI/HYDROGUI_DataObject.cxx @@ -22,9 +22,11 @@ #include "HYDROGUI_DataObject.h" -#include #include #include +#include +#include +#include HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent, Handle(HYDROData_Entity) theData, @@ -32,7 +34,8 @@ HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent, : CAM_DataObject( theParent ), LightApp_DataObject( theParent ), myData( theData ), - myParentEntry( theParentEntry ) + myParentEntry( theParentEntry ), + myIsValid( true ) { } @@ -65,11 +68,92 @@ QFont HYDROGUI_DataObject::font( const int theId ) const { Handle(HYDROData_Entity) aDataObject = modelObject(); if( !aDataObject.IsNull() && aDataObject->IsMustBeUpdated() ) + { aFont.setItalic( true ); + aFont.setBold( true ); + } } return aFont; } +QColor HYDROGUI_DataObject::color( const ColorRole theRole, const int theId ) const +{ + QColor aColor; + + if ( !isValid() ) { + switch ( theRole ) + { + case Text: + case Foreground: + case Highlight: + aColor = Qt::red; // red + break; + case HighlightedText: + // text color for the highlighted item + aColor = Qt::white; // white + break; + + default: + break; + } + } + + if ( !aColor.isValid() ) + { + Handle(HYDROData_Entity) aDataObject = modelObject(); + if( !aDataObject.IsNull() && aDataObject->IsMustBeUpdated() ) + { + switch ( theRole ) + { + case Text: + case Foreground: + case Highlight: + aColor = Qt::blue; // color for objects which need updating + break; + case HighlightedText: + // text color for the highlighted item + aColor = Qt::white; // white + break; + + default: + break; + } + } + } + + if ( !aColor.isValid() ) { + aColor = LightApp_DataObject::color( theRole, theId ); + } + + return aColor; +} + +QPixmap HYDROGUI_DataObject::icon( const int theId ) const +{ + SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); + if ( theId == NameId ) + { + QString anIcon; + Handle(HYDROData_Entity) aDataObject = modelObject(); + if( aDataObject.IsNull() ) + { + anIcon = QObject::tr( "HYDRO_TYPE0_ICO" ); // KIND_UNKNOWN + } + else + { + QString aNeedUpdate = ""; + if ( aDataObject->IsMustBeUpdated() ) + { + aNeedUpdate = "M_"; + } + anIcon = QObject::tr( QString("HYDRO_%1TYPE%2_ICO").arg( aNeedUpdate ).arg( (int)aDataObject->GetKind() ).toAscii() ); + } + + return aResMgr->loadPixmap( "HYDRO", anIcon ); + } + return LightApp_DataObject::icon( theId ); +} + QString HYDROGUI_DataObject::dataObjectEntry( const Handle(HYDROData_Entity)& theObject, const bool theWithPrefix ) { @@ -85,6 +169,16 @@ QString HYDROGUI_DataObject::dataObjectEntry( const Handle(HYDROData_Entity)& th return aEntryStr; } +void HYDROGUI_DataObject::setIsValid( const bool theIsValid ) +{ + myIsValid = theIsValid; +} + +bool HYDROGUI_DataObject::isValid() const +{ + return myIsValid; +} + HYDROGUI_NamedObject::HYDROGUI_NamedObject( SUIT_DataObject* theParent, const QString& theName, const QString& theParentEntry ) @@ -108,10 +202,19 @@ QString HYDROGUI_NamedObject::name() const return myName; } +QPixmap HYDROGUI_NamedObject::icon( const int theId ) const +{ + SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); + if ( theId == NameId ) + { + return aResMgr->loadPixmap( "HYDRO", QObject::tr( "PARTITION_ICO" ) ); + } + return LightApp_DataObject::icon( theId ); +} + HYDROGUI_DropTargetObject::HYDROGUI_DropTargetObject( SUIT_DataObject* theParent, const QString& theName, const QString& theParentEntry ) : HYDROGUI_NamedObject( theParent, theName, theParentEntry ), CAM_DataObject( theParent ) { } -