]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Comparing mechanism for SUIT_DataOwner modified.
authorstv <stv@opencascade.com>
Tue, 29 Aug 2006 11:32:05 +0000 (11:32 +0000)
committerstv <stv@opencascade.com>
Tue, 29 Aug 2006 11:32:05 +0000 (11:32 +0000)
src/SUIT/SUIT_DataOwner.cxx
src/SUIT/SUIT_DataOwner.h

index 826bd89bfa439b15b6f134fd46b1cf126cf6f862..beb907d7a636ff71082653cc1ff98a43f45dff9b 100755 (executable)
@@ -36,7 +36,7 @@ SUIT_DataOwner::~SUIT_DataOwner()
 {
 }
 
-/*! operator== : compares two owners*/
+/*! Operator == compares two owners*/
 bool operator==( const SUIT_DataOwnerPtr& p1, const SUIT_DataOwnerPtr& p2 )
 {
   if ( !p1.isNull() && !p2.isNull() )
@@ -44,6 +44,20 @@ bool operator==( const SUIT_DataOwnerPtr& p1, const SUIT_DataOwnerPtr& p2 )
   return p1.isNull() && p2.isNull();
 }
 
+
+/*! Operator < allows to order suit data owners for map */
+bool operator<( const SUIT_DataOwnerPtr& p1, const SUIT_DataOwnerPtr& p2 )
+{
+  if ( p1.isNull() && p2.isNull() )
+    return false;
+  else if ( p1.isNull() )
+    return true;
+  else if ( p2.isNull() )
+    return false;
+
+  return p1->isLess( *p2 );
+}
+
 /*!
   \class SUIT_DataOwnerPtrList 
   implements value list with unique items (uniqueness is 
@@ -126,12 +140,12 @@ SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>
 */
 SUIT_DataOwnerPtrList::iterator SUIT_DataOwnerPtrList::append( const SUIT_DataOwnerPtr& x )
 {
-  if( mySkipEqual && myMap.contains( x ) ) //contains uses SUIT_DataOwnerPtr::operator==
+  if ( mySkipEqual && myMap.contains( x ) ) //contains uses SUIT_DataOwnerPtr::operator==
     return myMap[ x ];
 
   iterator it = QValueList<SUIT_DataOwnerPtr>::append( x );
 
-  if( mySkipEqual )
+   if ( mySkipEqual )
     myMap.insert( x, it );
 
   return it;
@@ -156,11 +170,3 @@ uint SUIT_DataOwnerPtrList::remove(const SUIT_DataOwnerPtr& x )
     myMap.remove(x);
   return QValueList<SUIT_DataOwnerPtr>::remove( x );
 }
-
-/*!
-  Operator < allows to order suit data owners for map
-*/
-bool operator<( const SUIT_DataOwnerPtr& p1, const SUIT_DataOwnerPtr& p2 )
-{
-  return p1.get()<p2.get();
-}
index bc2ef2615535a148e165754413b81e3352865bb7..2d364fd57d8baa459f40b85b3cb61901ee6f1c77 100755 (executable)
@@ -42,6 +42,7 @@ public:
   virtual ~SUIT_DataOwner();//!< destructor
   //! compare function
   virtual bool isEqual( const SUIT_DataOwner& ) const = 0;
+  virtual bool isLess( const SUIT_DataOwner& ) const = 0;
 };
 
 /*! \typedef SUIT_DataOwnerPtr