X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_DataObject.cxx;h=ffaefe8310e87cec6bf41946c0397ce212f8b349;hb=9d814d61fd8f7557dc9da11d97a437097c1f5e21;hp=a201b3e6320de970b369cc2cc1e73644199a524c;hpb=141b5c32908e3f89f9d5cfaa46872274397d6b9d;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_DataObject.cxx b/src/HYDROGUI/HYDROGUI_DataObject.cxx index a201b3e6..ffaefe83 100644 --- a/src/HYDROGUI/HYDROGUI_DataObject.cxx +++ b/src/HYDROGUI/HYDROGUI_DataObject.cxx @@ -1,12 +1,8 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -// -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// +// Copyright (C) 2014-2015 EDF-R&D // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -22,27 +18,40 @@ #include "HYDROGUI_DataObject.h" -#include +#include +#include + #include + +#include #include #include +#include +#include +#include +#include + #include HYDROGUI_DataObject::HYDROGUI_DataObject( SUIT_DataObject* theParent, Handle(HYDROData_Entity) theData, - const QString& theParentEntry ) + const QString& theParentEntry, + const bool theIsInOperation ) : CAM_DataObject( theParent ), +#ifndef TEST_MODE LightApp_DataObject( theParent ), +#endif myData( theData ), myParentEntry( theParentEntry ), - myIsValid( true ) + myIsValid( true ), + myIsInOperation( theIsInOperation ) { } QString HYDROGUI_DataObject::entry() const { QString anEntry = HYDROGUI_DataObject::dataObjectEntry( modelObject() ); - if( isReference() ) + if( !refEntry().isEmpty() ) anEntry.prepend( myParentEntry + "_" ); return anEntry; } @@ -63,11 +72,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 ); @@ -101,7 +110,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 ) { @@ -122,7 +131,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; @@ -141,17 +150,25 @@ QPixmap HYDROGUI_DataObject::icon( const int theId ) const } else { - QString aNeedUpdate = ""; - if ( aDataObject->IsMustBeUpdated() ) + QString aNeedUpdate( aDataObject->IsMustBeUpdated( HYDROData_Entity::Geom_All ) ? "M_" : "" ); + + int anObjectKind = (int)aDataObject->GetKind(); + if ( anObjectKind == KIND_DUMMY_3D ) { - aNeedUpdate = "M_"; + Handle(HYDROData_DummyObject3D) anObject3D = + Handle(HYDROData_DummyObject3D)::DownCast( aDataObject ); + + Handle(HYDROData_Object) aFatherObj = anObject3D->GetObject(); + if ( !aFatherObj.IsNull() ) + anObjectKind = aFatherObj->GetKind(); } - anIcon = QObject::tr( QString("HYDRO_%1TYPE%2_ICO").arg( aNeedUpdate ).arg( (int)aDataObject->GetKind() ).toAscii() ); + + 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, @@ -179,13 +196,53 @@ bool HYDROGUI_DataObject::isValid() const return myIsValid; } +bool HYDROGUI_DataObject::renameAllowed( const int theColumnId ) const +{ + bool aRes = false; + if ( theColumnId == NameId && module()) + { + SUIT_Operation* anOp = module()->application()->activeStudy()->activeOperation(); + if ( anOp && anOp->inherits( "HYDROGUI_CalculationOp" ) ) + { + aRes = isInOperation(); + } + else + { + aRes = !anOp; + } + } + else + { + aRes = PARENT::renameAllowed( theColumnId ); + } + return aRes; +} + +void HYDROGUI_DataObject::updateBy( SUIT_DataObject* theObj ) +{ + HYDROGUI_DataObject* aDataObj = dynamic_cast( theObj ); + if( !aDataObj ) + return; + + myData = aDataObj->myData; + myParentEntry = aDataObj->myParentEntry; + myIsValid = aDataObj->myIsValid; + myIsInOperation = aDataObj->myIsInOperation; + myIcon = aDataObj->myIcon; + setModified( true ); +} + HYDROGUI_NamedObject::HYDROGUI_NamedObject( SUIT_DataObject* theParent, const QString& theName, - const QString& theParentEntry ) + const QString& theParentEntry, + const bool theIsInOperation ) : CAM_DataObject( theParent ), +#ifndef TEST_MODE LightApp_DataObject( theParent ), +#endif myName( theName ), - myParentEntry( theParentEntry ) + myParentEntry( theParentEntry ), + myIsInOperation( theIsInOperation ) { } @@ -199,7 +256,7 @@ QString HYDROGUI_NamedObject::entry() const QString HYDROGUI_NamedObject::name() const { - return myName; + return myName.toUpper(); } QPixmap HYDROGUI_NamedObject::icon( const int theId ) const @@ -209,12 +266,45 @@ 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 = PARENT::font( theId ); + if( theId == NameId ) + { + if ( dynamic_cast( parent() ) ) + { + aFont.setBold( true ); + } + } + return aFont; +} + +void HYDROGUI_NamedObject::updateBy( SUIT_DataObject* theObj ) +{ + HYDROGUI_NamedObject* aNamedObj = dynamic_cast( theObj ); + if( !aNamedObj ) + return; + + myName = aNamedObj->myName; + myParentEntry = aNamedObj->myParentEntry; + myIcon = aNamedObj->myIcon; + myIsInOperation = aNamedObj->myIsInOperation; + setModified( true ); } + + + + + HYDROGUI_DropTargetObject::HYDROGUI_DropTargetObject( SUIT_DataObject* theParent, const QString& theName, - const QString& theParentEntry ) -: HYDROGUI_NamedObject( theParent, theName, theParentEntry ), CAM_DataObject( theParent ) + const QString& theParentEntry, + const bool theIsInOperation ) +: HYDROGUI_NamedObject( theParent, theName, theParentEntry, theIsInOperation ), + CAM_DataObject( theParent ) { }