# kabc Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# KABC::AddresseeList Class Reference

a QValueList of Addressee, with sorting functionality More...

`#include <addresseelist.h>`

Inheritance diagram for KABC::AddresseeList:

[legend]
Collaboration diagram for KABC::AddresseeList:

[legend]
List of all members.

## Public Member Functions

| AddresseeList (const AddresseeList &)
| AddresseeList (const QValueList< Addressee > &)
void | dump () const
| Debug output.
void | setReverseSorting (bool r=true)
| Determines the direction of sorting.
bool | reverseSorting () const
| Returns the direction of sorting.
void | sortBy (SortingCriterion c)
| Sorts this list by a specific criterion.
void | sortByField (Field *field)
void | sort ()
| Sorts this list by its active sorting criterion.
template<class Trait> void | sortByTrait ()
| Templated sort function.
SortingCriterion | sortingCriterion () const
| Returns the active sorting criterion, ie the sorting criterion that will be used by a sort call.

## Detailed Description

a QValueList of Addressee, with sorting functionality

This class extends the functionality of QValueList with sorting methods specific to the Addressee class. It can be used just like any other QValueList but is no template class.

An AddresseeList does not automatically keep sorted when addressees are added or removed or the sorting order is changed, as this would slow down larger operations by sorting after every step. So after such operations you have to call sort or sortBy to create a defined order again.

Iterator usage is inherited by QValueList and extensively documented there. Please remember that the state of an iterator is undefined after any sorting operation.

For the enumeration Type SortingCriterion, which specifies the field by the collection will be sorted, the following values exist: Uid, Name, FormattedName, FamilyName, GivenName.

Author:
  Jost Schenck jost@schenck.de

Definition at line 108 of file addresseelist.h.

## Member Function Documentation

void AddresseeList::dump | ( |  | ) | const

| Debug output. Definition at line 126 of file addresseelist.cpp. References QValueList< Addressee >::begin(), QValueList< Addressee >::const_iterator(), and QValueList< Addressee >::end().

void KABC::AddresseeList::setReverseSorting | ( | bool | r = true | ) | `[inline]`

Determines the direction of sorting.

On change, the list will not automatically be resorted.

Parameters:

  r | `true` if sorting should be done reverse, `false` otherwise

Definition at line 126 of file addresseelist.h.

bool KABC::AddresseeList::reverseSorting | ( |  | ) | const`[inline]`

Returns the direction of sorting.

Returns:
  `true` if sorting is done reverse, `false` otherwise

Definition at line 132 of file addresseelist.h.

void AddresseeList::sortBy | ( | SortingCriterion | c | ) |

Sorts this list by a specific criterion.

Parameters:

  c | the criterion by which should be sorted

Definition at line 155 of file addresseelist.cpp.

Referenced by sort().

void AddresseeList::sort | ( |  | ) |

| Sorts this list by its active sorting criterion. This normally is the criterion of the last sortBy operation or `FormattedName` if up to now there has been no sortBy operation. Please note that the sorting trait of the last sortByTrait method call is not remembered and thus the action can not be repeated by this method. Definition at line 173 of file addresseelist.cpp. References sortBy().

template<class Trait>
void AddresseeList::sortByTrait | ( |  | ) |

Templated sort function.

You normally will not want to use this but sortBy and sort instead as the existing sorting criteria completely suffice for most cases.

However, if you do want to use some special sorting criterion, you can write a trait class that will be provided to this templated method. This trait class has to have a class declaration like the following:

     class MySortingTrait {
       public:
         // eq returns true if a1 and a2 are equal
         static bool eq(KABC::Addressee a1, KABC::Addressee a2);
         // lt returns true is a1 is "less than" a2
         static bool lt(KABC::Addressee a1, KABC::Addressee a2);
     };

You can then pass this class to the sortByTrait method like this:

     myAddresseelist.sortByTrait<MySortingTrait>();

Please note that the sort method can not be used to repeat the sorting of the last `sortByTrait` action.

Right now this method uses the bubble sort algorithm. This should be replaced for a better one when I have time.

Definition at line 179 of file addresseelist.cpp.

References QValueList< Addressee >::begin(), QValueList< Addressee >::end(), and QValueList< Addressee >::iterator().

SortingCriterion KABC::AddresseeList::sortingCriterion | ( |  | ) | const`[inline]`

| Returns the active sorting criterion, ie the sorting criterion that will be used by a sort call. Definition at line 186 of file addresseelist.h.

The documentation for this class was generated from the following files:

- addresseelist.h
- addresseelist.cpp

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:29:30 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001