add virtual method getObjectName() to check if a GEOM_Object already has a name

This commit is contained in:
fps 2013-04-25 14:44:51 +00:00
parent 15854f5a98
commit f74d6b98cb
2 changed files with 27 additions and 14 deletions

View File

@ -862,21 +862,24 @@ bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction, b
for ( ObjectList::iterator it = objects.begin(); it != objects.end(); ++it ) { for ( ObjectList::iterator it = objects.begin(); it != objects.end(); ++it ) {
GEOM::GEOM_Object_var obj=*it; GEOM::GEOM_Object_var obj=*it;
if ( publish ) { if ( publish ) {
QString aName = getNewObjectName(); QString aName = getObjectName(obj);
if ( nbObjs > 1 ) { if (aName.isEmpty()) {
if (aName.isEmpty()) aName = getNewObjectName();
aName = getPrefix(obj); if ( nbObjs > 1 ) {
if (nbObjs <= 30) { if (aName.isEmpty())
// Try to find a unique name aName = getPrefix(obj);
aName = GEOMBase::GetDefaultName(aName, extractPrefix()); if (nbObjs <= 30) {
// Try to find a unique name
aName = GEOMBase::GetDefaultName(aName, extractPrefix());
} else {
// Don't check name uniqueness in case of numerous objects
aName = aName + "_" + QString::number(aNumber++);
}
} else { } else {
// Don't check name uniqueness in case of numerous objects // PAL6521: use a prefix, if some dialog box doesn't reimplement getNewObjectName()
aName = aName + "_" + QString::number(aNumber++); if ( aName.isEmpty() )
aName = GEOMBase::GetDefaultName( getPrefix( obj ) );
} }
} else {
// PAL6521: use a prefix, if some dialog box doesn't reimplement getNewObjectName()
if ( aName.isEmpty() )
aName = GEOMBase::GetDefaultName( getPrefix( obj ) );
} }
anEntryList << addInStudy( obj, aName.toLatin1().constData() ); anEntryList << addInStudy( obj, aName.toLatin1().constData() );
// updateView=false // updateView=false
@ -1002,6 +1005,15 @@ GEOM::GEOM_Object_ptr GEOMBase_Helper::getFather( GEOM::GEOM_Object_ptr theObj )
return GEOM::GEOM_Object::_nil(); return GEOM::GEOM_Object::_nil();
} }
//================================================================
// Function : getObjectName
// Purpose : Redefine this method to return proper name for the given object
//================================================================
QString GEOMBase_Helper::getObjectName(GEOM::GEOM_Object_ptr object) const
{
return QString::null;
}
//================================================================ //================================================================
// Function : getNewObjectName // Function : getNewObjectName
// Purpose : Redefine this method to return proper name for a new object // Purpose : Redefine this method to return proper name for a new object

View File

@ -163,7 +163,8 @@ protected:
// for <theObj> or a nil reference if <theObj> should be published // for <theObj> or a nil reference if <theObj> should be published
// as a top-level object. // as a top-level object.
virtual QString getNewObjectName() const; virtual QString getNewObjectName() const;
virtual QString getObjectName(GEOM::GEOM_Object_ptr object) const;
virtual bool extractPrefix() const; virtual bool extractPrefix() const;
virtual void addSubshapesToStudy(); virtual void addSubshapesToStudy();