[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdelibs/kabc
From:       Tobias Koenig <tokoe () kde ! org>
Date:       2004-11-12 17:42:32
Message-ID: 20041112174232.08B8216D39 () office ! kde ! org
[Download RAW message or body]

CVS commit by tokoe: 

Hmm, we need the 'reverse ordering' flag as well in the default sorting modes.


  M +1 -1      addresseelist.cpp   1.11
  M +23 -12    sortmode.cpp   1.2
  M +4 -2      sortmode.h   1.2


--- kdelibs/kabc/addresseelist.cpp  #1.10:1.11
@@ -231,5 +231,5 @@ void AddresseeList::sortByField( Field *
     return;
 
-  KABC::FieldSortMode *mode = new KABC::FieldSortMode( sActiveField );
+  KABC::FieldSortMode *mode = new KABC::FieldSortMode( sActiveField, !mReverseSorting );
 
   KABC::Addressee::setSortMode( mode );

--- kdelibs/kabc/sortmode.cpp  #1.1:1.2
@@ -26,11 +26,11 @@ using namespace KABC;
 
 NameSortMode::NameSortMode()
- : mNameType( FormattedName ), d( 0 )
+ : mNameType( FormattedName ), mAscendingOrder( true ), d( 0 )
 {
   mNameType = FormattedName;
 }
 
-NameSortMode::NameSortMode( NameType type )
-  : mNameType( type ), d( 0 )
+NameSortMode::NameSortMode( NameType type, bool ascending )
+  : mNameType( type ), mAscendingOrder( ascending ), d( 0 )
 {
 }
@@ -38,22 +38,29 @@ NameSortMode::NameSortMode( NameType typ
 bool NameSortMode::lesser( const KABC::Addressee &first, const KABC::Addressee &second ) const
 {
+  bool lesser = false;
+
   switch ( mNameType ) {
     case FormattedName:
-      return ( QString::localeAwareCompare( first.formattedName(), second.formattedName() ) < 0 );
+      lesser = QString::localeAwareCompare( first.formattedName(), second.formattedName() ) < 0;
       break;
     case FamilyName:
-      return ( QString::localeAwareCompare( first.familyName(), second.familyName() ) < 0 );
+      lesser = QString::localeAwareCompare( first.familyName(), second.familyName() ) < 0;
       break;
     case GivenName:
-      return ( QString::localeAwareCompare( first.givenName(), second.givenName() ) < 0 );
+      lesser = QString::localeAwareCompare( first.givenName(), second.givenName() ) < 0;
       break;
     default:
-      return false;
+      lesser = false;
       break;
   }
+
+  if ( !mAscendingOrder )
+    lesser = !lesser;
+
+  return lesser;
 }
 
-FieldSortMode::FieldSortMode( KABC::Field *field )
-  : mField( field ), d( 0 )
+FieldSortMode::FieldSortMode( KABC::Field *field, bool ascending )
+  : mField( field ), mAscendingOrder( ascending ), d( 0 )
 {
 }
@@ -63,6 +70,10 @@ bool FieldSortMode::lesser( const KABC::
   if ( !mField )
     return false;
-  else
-    return ( QString::localeAwareCompare( mField->value( first ), mField->value( second ) ) < 0 );
-}
+  else {
+    bool lesser = QString::localeAwareCompare( mField->value( first ), mField->value( second ) ) < 0;
+    if ( !mAscendingOrder )
+      lesser = !lesser;
 
+    return lesser;
+  }
+}

--- kdelibs/kabc/sortmode.h  #1.1:1.2
@@ -68,5 +68,5 @@ class KABC_EXPORT NameSortMode : public 
       @param type The name type.
      */
-    NameSortMode( NameType type );
+    NameSortMode( NameType type, bool ascending = true );
 
     /**
@@ -77,4 +77,5 @@ class KABC_EXPORT NameSortMode : public 
   private:
     NameType mNameType;
+    bool mAscendingOrder;
 
     class NameSortModePrivate;
@@ -92,5 +93,5 @@ class KABC_EXPORT FieldSortMode : public
       @param field The field.
      */
-    FieldSortMode( KABC::Field *field );
+    FieldSortMode( KABC::Field *field, bool ascending = true );
 
     /**
@@ -101,4 +102,5 @@ class KABC_EXPORT FieldSortMode : public
   private:
     KABC::Field *mField;
+    bool mAscendingOrder;
 
     class FieldSortModePrivate;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic