From: mzn Date: Fri, 29 Nov 2013 14:48:18 +0000 (+0000) Subject: Display invalid profiles names in OB in red color. X-Git-Tag: BR_hydro_v_0_4~123 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=9268f399e1312840117ab008a3232bd7fae34979;p=modules%2Fhydro.git Display invalid profiles names in OB in red color. --- diff --git a/src/HYDROGUI/HYDROGUI_DataModel.cxx b/src/HYDROGUI/HYDROGUI_DataModel.cxx index 675d2f48..ef8a9065 100644 --- a/src/HYDROGUI/HYDROGUI_DataModel.cxx +++ b/src/HYDROGUI/HYDROGUI_DataModel.cxx @@ -744,6 +744,13 @@ void HYDROGUI_DataModel::buildObjectTree( SUIT_DataObject* theParent, createZone( aGuiObj, aRegionZone, "", true ); } } + else if ( anObjectKind == KIND_PROFILE ) + { + Handle(HYDROData_Profile) aProfileObj = + Handle(HYDROData_Profile)::DownCast( aDataObj ); + + aGuiObj->setIsValid( aProfileObj->IsValid() ); + } } void HYDROGUI_DataModel::buildCaseTree( SUIT_DataObject* theParent, Handle(HYDROData_CalculationCase) theCase ) diff --git a/src/HYDROGUI/HYDROGUI_DataObject.cxx b/src/HYDROGUI/HYDROGUI_DataObject.cxx index bab5e039..c35afa88 100644 --- a/src/HYDROGUI/HYDROGUI_DataObject.cxx +++ b/src/HYDROGUI/HYDROGUI_DataObject.cxx @@ -22,7 +22,6 @@ #include "HYDROGUI_DataObject.h" -#include #include #include @@ -32,7 +31,8 @@ HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent, : CAM_DataObject( theParent ), LightApp_DataObject( theParent ), myData( theData ), - myParentEntry( theParentEntry ) + myParentEntry( theParentEntry ), + myIsValid( true ) { } @@ -70,6 +70,35 @@ QFont HYDROGUI_DataObject::font( const int theId ) const 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 = QColor( 255, 0, 0 ); // red + break; + case HighlightedText: + // text color for the highlighted item + aColor = QColor( 255, 255, 255 ); // white + break; + + default: + break; + } + } + + if ( !aColor.isValid() ) { + aColor = LightApp_DataObject::color( theRole, theId ); + } + + return aColor; +} + QString HYDROGUI_DataObject::dataObjectEntry( const Handle(HYDROData_Entity)& theObject, const bool theWithPrefix ) { @@ -85,6 +114,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 ) diff --git a/src/HYDROGUI/HYDROGUI_DataObject.h b/src/HYDROGUI/HYDROGUI_DataObject.h index 41a7bca4..72f31ed5 100644 --- a/src/HYDROGUI/HYDROGUI_DataObject.h +++ b/src/HYDROGUI/HYDROGUI_DataObject.h @@ -80,6 +80,11 @@ public: */ virtual QFont font( const int = SUIT_DataObject::NameId ) const; + /** + * Returns the object color. + */ + virtual QColor color( const ColorRole, const int = NameId ) const; + /** * Returns the model data object. */ @@ -100,10 +105,22 @@ public: */ static QString dataObjectEntry( const Handle(HYDROData_Entity)& theObject, const bool theWithPrefix = true ); + /** + * Sets the validity flag: if object is valid or not. + * \param theIsValid is true for valid objects, false for invalid + */ + void setIsValid( const bool theIsValid ); + + /** + * Returns the validity flag: is object valid or not + * \returns false if object is not valid + */ + bool isValid() const; protected: Handle(HYDROData_Entity) myData; ///< object from data model QString myParentEntry; + bool myIsValid; ///< indicates if the object is valid }; /**