]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
add virtual method getObjectName() to check if a GEOM_Object already has a name
authorfps <fps@opencascade.com>
Thu, 25 Apr 2013 14:44:51 +0000 (14:44 +0000)
committerfps <fps@opencascade.com>
Thu, 25 Apr 2013 14:44:51 +0000 (14:44 +0000)
src/GEOMBase/GEOMBase_Helper.cxx
src/GEOMBase/GEOMBase_Helper.h

index 8fea8899a1412835239205a225a7c55a3a3b4c19..59d3f34c2746ec913a1b103dcbdd0280e25b4b32 100755 (executable)
@@ -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 ) {
           GEOM::GEOM_Object_var obj=*it;
           if ( publish ) {
-            QString aName = getNewObjectName();
-            if ( nbObjs > 1 ) {
-              if (aName.isEmpty())
-                aName = getPrefix(obj);
-              if (nbObjs <= 30) {
-                // Try to find a unique name
-                aName = GEOMBase::GetDefaultName(aName, extractPrefix());
+            QString aName = getObjectName(obj);
+            if (aName.isEmpty()) {
+              aName = getNewObjectName();
+              if ( nbObjs > 1 ) {
+                if (aName.isEmpty())
+                  aName = getPrefix(obj);
+                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 {
-                // Don't check name uniqueness in case of numerous objects
-                aName = aName + "_" + QString::number(aNumber++);
+                // PAL6521: use a prefix, if some dialog box doesn't reimplement getNewObjectName()
+                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() );
             // updateView=false
@@ -1002,6 +1005,15 @@ GEOM::GEOM_Object_ptr GEOMBase_Helper::getFather( GEOM::GEOM_Object_ptr theObj )
   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
 // Purpose  : Redefine this method to return proper name for a new object
index 5d32fd26813b7932fe442e87fadc14865d586480..9737fa7006e5338bd4c8184e593392d8890d7dcf 100755 (executable)
@@ -163,7 +163,8 @@ protected:
   // for <theObj> or a nil reference if <theObj> should be published
   // 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 void addSubshapesToStudy();