X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_DataObject.cxx;h=f68c26e692f4999d207bfd8e927c067ed1a6b0d1;hb=c16caee6b6e61dffbc739dce6639215b24a459d3;hp=e0183809bff9da876c0cd9f5bdcd50d93d4ed0e5;hpb=2cf9e838e652ae811d9b3931914771ad1836c6b8;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_DataObject.cxx b/src/HYDROGUI/HYDROGUI_DataObject.cxx index e0183809..f68c26e6 100644 --- a/src/HYDROGUI/HYDROGUI_DataObject.cxx +++ b/src/HYDROGUI/HYDROGUI_DataObject.cxx @@ -19,7 +19,11 @@ #include "HYDROGUI_DataObject.h" #include +#include #include +#include +#include +#include #include @@ -32,13 +36,16 @@ #include #include +#include HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent, Handle(HYDROData_Entity) theData, const QString& theParentEntry, const bool theIsInOperation ) : CAM_DataObject( theParent ), +#ifndef TEST_MODE LightApp_DataObject( theParent ), +#endif myData( theData ), myParentEntry( theParentEntry ), myIsValid( true ), @@ -49,7 +56,7 @@ HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent, QString HYDROGUI_DataObject::entry() const { QString anEntry = HYDROGUI_DataObject::dataObjectEntry( modelObject() ); - if( isReference() ) + if( !refEntry().isEmpty() ) anEntry.prepend( myParentEntry + "_" ); return anEntry; } @@ -70,11 +77,11 @@ QString HYDROGUI_DataObject::name() const QFont HYDROGUI_DataObject::font( const int theId ) const { - QFont aFont = LightApp_DataObject::font( theId ); + QFont aFont = PARENT::font( theId ); if( theId == NameId ) { Handle(HYDROData_Entity) aDataObject = modelObject(); - if( !aDataObject.IsNull() && aDataObject->IsMustBeUpdated() ) + if( !aDataObject.IsNull() && aDataObject->IsMustBeUpdated( HYDROData_Entity::Geom_All ) ) { aFont.setItalic( true ); aFont.setBold( true ); @@ -108,7 +115,7 @@ QColor HYDROGUI_DataObject::color( const ColorRole theRole, const int theId ) co if ( !aColor.isValid() ) { Handle(HYDROData_Entity) aDataObject = modelObject(); - if( !aDataObject.IsNull() && aDataObject->IsMustBeUpdated() ) + if( !aDataObject.IsNull() && aDataObject->IsMustBeUpdated( HYDROData_Entity::Geom_All ) ) { switch ( theRole ) { @@ -129,7 +136,7 @@ QColor HYDROGUI_DataObject::color( const ColorRole theRole, const int theId ) co } if ( !aColor.isValid() ) { - aColor = LightApp_DataObject::color( theRole, theId ); + aColor = PARENT::color( theRole, theId ); } return aColor; @@ -142,15 +149,25 @@ QPixmap HYDROGUI_DataObject::icon( const int theId ) const { QString anIcon; Handle(HYDROData_Entity) aDataObject = modelObject(); + Handle(HYDROData_Object) anObject; + Handle(HYDROData_ArtificialObject) anAObject = Handle( HYDROData_ArtificialObject )::DownCast(aDataObject); + Handle(HYDROData_NaturalObject) aNObject = Handle( HYDROData_NaturalObject )::DownCast(aDataObject); + + if (!anAObject.IsNull()) + anObject = anAObject; + if (!aNObject.IsNull()) + anObject = aNObject; + if( aDataObject.IsNull() ) { anIcon = QObject::tr( "HYDRO_TYPE0_ICO" ); // KIND_UNKNOWN } else { - QString aNeedUpdate( aDataObject->IsMustBeUpdated() ? "M_" : "" ); + QString aNeedUpdate( aDataObject->IsMustBeUpdated( HYDROData_Entity::Geom_All ) ? "M_" : "" ); int anObjectKind = (int)aDataObject->GetKind(); + bool IsUnsImmZone = false; if ( anObjectKind == KIND_DUMMY_3D ) { Handle(HYDROData_DummyObject3D) anObject3D = @@ -159,14 +176,49 @@ QPixmap HYDROGUI_DataObject::icon( const int theId ) const Handle(HYDROData_Object) aFatherObj = anObject3D->GetObject(); if ( !aFatherObj.IsNull() ) anObjectKind = aFatherObj->GetKind(); + anIcon = QObject::tr( QString("HYDRO_%1TYPE%2_ICO").arg( aNeedUpdate ).arg( anObjectKind ).toLatin1() ); } - - anIcon = QObject::tr( QString("HYDRO_%1TYPE%2_ICO").arg( aNeedUpdate ).arg( anObjectKind ).toAscii() ); + else if ( !anObject.IsNull() ) + { + bool IsSubm = anObject->IsSubmersible(); + QString anIcon1 = QObject::tr( QString("HYDRO_%1TYPE%2_ICO").arg( aNeedUpdate ).arg( anObjectKind ).toLatin1() ); + QString anIcon2; + if (IsSubm) + anIcon2 = QObject::tr( QString("HYDRO_SUBMERSIBLE16_ICO").toLatin1()); + else + anIcon2 = QObject::tr( QString("HYDRO_UNSUBMERSIBLE16_ICO").toLatin1()); + + QPixmap qpm1 = aResMgr->loadPixmap( "HYDRO", anIcon1 ); + QPixmap qpm2 = aResMgr->loadPixmap( "HYDRO", anIcon2 ); + QPixmap qpmD(32,16); + qpmD.fill(QColor(0,0,0)); + QPainter painter; + painter.begin(&qpmD); + painter.drawPixmap(0, 0, qpm1); + painter.drawPixmap(16, 0, qpm2); + painter.end(); + return qpmD; + } + else if (anObjectKind == KIND_BC_POLYGON) + { + Handle(HYDROData_BCPolygon) aBCObj = Handle(HYDROData_BCPolygon)::DownCast( aDataObject ); + int aBT = aBCObj->GetBoundaryType(); + if (aBT == 1) + anIcon = QObject::tr( QString("HYDRO_BC_POLYGON_TYPE1_ICO").toLatin1()); + else if (aBT == 2) + anIcon = QObject::tr( QString("HYDRO_BC_POLYGON_TYPE2_ICO").toLatin1()); + else if (aBT == 3) + anIcon = QObject::tr( QString("HYDRO_BC_POLYGON_TYPE3_ICO").toLatin1()); + else + anIcon = QObject::tr( QString("HYDRO_BC_POLYGON_TYPE_UNDEF_ICO").toLatin1()); + } + else + anIcon = QObject::tr( QString("HYDRO_%1TYPE%2_ICO").arg( aNeedUpdate ).arg( anObjectKind ).toLatin1() ); } return aResMgr->loadPixmap( "HYDRO", anIcon ); } - return LightApp_DataObject::icon( theId ); + return PARENT::icon( theId ); } QString HYDROGUI_DataObject::dataObjectEntry( const Handle(HYDROData_Entity)& theObject, @@ -211,7 +263,7 @@ bool HYDROGUI_DataObject::renameAllowed( const int theColumnId ) const } else { - aRes = LightApp_DataObject::renameAllowed( theColumnId ); + aRes = PARENT::renameAllowed( theColumnId ); } return aRes; } @@ -235,7 +287,9 @@ HYDROGUI_NamedObject::HYDROGUI_NamedObject( SUIT_DataObject* theParent, const QString& theParentEntry, const bool theIsInOperation ) : CAM_DataObject( theParent ), +#ifndef TEST_MODE LightApp_DataObject( theParent ), +#endif myName( theName ), myParentEntry( theParentEntry ), myIsInOperation( theIsInOperation ) @@ -262,12 +316,12 @@ QPixmap HYDROGUI_NamedObject::icon( const int theId ) const { return aResMgr->loadPixmap( "HYDRO", QObject::tr( "PARTITION_ICO" ) ); } - return LightApp_DataObject::icon( theId ); + return PARENT::icon( theId ); } QFont HYDROGUI_NamedObject::font( const int theId ) const { - QFont aFont = LightApp_DataObject::font( theId ); + QFont aFont = PARENT::font( theId ); if( theId == NameId ) { if ( dynamic_cast( parent() ) )